Support Astation device authentication v2 - #15
Merged
Conversation
Generate matching HMAC proofs for loopback, LAN, and relay connections, persist the learned relay target, secure session storage, add permission tests, and replace stale connection documentation. 🤖 Built with SMT <smt@agora.build>
Secure existing session files before reading, refuse symbolic links and wrong ownership, and cover the v2 pairing path with a real WebSocket test.\n\n🤖 Built with SMT <smt@agora.build>
🤖 Built with SMT <smt@agora.build>
🤖 Built with SMT <smt@agora.build>
🤖 Built with SMT <smt@agora.build>
🤖 Built with SMT <smt@agora.build>
🤖 Built with SMT <smt@agora.build>
🤖 Built with SMT <smt@agora.build>
Contributor
Author
|
Manual review completed at exact head Resolved during review:
Validation:
No critical or high-severity findings remain. Repository-wide formatting drift and the documented LAN-WSS / relay-owner-auth production blockers predate this final follow-up and remain explicitly documented. GitHub Claude/Codex jobs are currently skipped by their workflow conditions; local Claude review was unavailable because that CLI is not logged in. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
atem_id, with invalid sessions falling back to pairing on the same socket--savechoice even when an older Astation always reports session-only credentialsatem pair0600under a0700config directory and refuse symlink-backed secret filesPractical coverage
0600and rejection at0644Verification
cargo test -- --test-threads=1 --format terse(699 passed)git diff --checkThe suite is run serially because four existing
agent_visualizetests share~/.agent/diagramsand can race under the default parallel runner. Repository-widecargo fmt --checkalso has pre-existing formatting drift outside this change.Coordinated rollout
Requires Agora-Build/Astation#13. Merge both repositories before releasing either client; Astation v2 intentionally rejects legacy session-ID-only authentication.
Remote first-time pairing now has two explicit approvals: the short relay-room code connects the peers, then the 8-digit device code authorizes and stores the durable identity-relay session.
Security status
Direct LAN remains plaintext
ws://. Proofs improve device authentication but do not encrypt initial pairing or application traffic. WSS certificate pinning is still required before treating direct LAN as production-ready.Generated with SMT smt@agora.build