Repository navigation
Integrate remote sessions and native agent approval notifications - #50
Merged
Merged
Conversation
Adopt the published typed host protocol, history and turn lifecycle; bind browser and terminal control to authenticated endpoints and process generations. Preserve the existing native terminal and owner-authentication work while integrating it with current webapp hosting. 🤖 Built with SMT <smt@agora.build>
Limit serialized conversation data to 16 MiB and add native and browser regressions for messages containing many empty parts. 🤖 Built with SMT <smt@agora.build>
Bind native remote terminals to authenticated r5 targets, attachments and expiring control leases. Persist request recovery metadata before submissions, query receipts after reconnect without replay, and gate legacy browser chat when a socket upgrades. Add strict JSON/JCS decoding, shared Swift/JavaScript fixture coverage, lifecycle invariants and the Atem owner integration handoff. 🤖 Built with SMT <smt@agora.build>
Link the stacked draft review to its implementation commit and document the relay encryption-mode rejection so the Atem owner uses the published handoff for coordination. 🤖 Built with SMT <smt@agora.build>
Document the successful macOS, relay and webapp checks for the native implementation commit while retaining the local test-environment limits and joint host integration gate. 🤖 Built with SMT <smt@agora.build>
Record that PR 49 targets main and retains both commits from superseded PR 48, with live Atem integration still required before release. 🤖 Built with SMT <smt@agora.build>
Pin the r6.2 contract and shared fixtures, share one authenticated registry client per host, remove legacy outgoing paths, and handle per-attachment resets and family refusals without replay. Document lifecycle invariants, validation limits and the live host handoff. 🤖 Built with SMT <smt@agora.build>
… delivery Add durable device token registration, APNs/FCM provider adapters, native opt-in and transport reconciliation, and provisioning documentation. Keep host ingress, member fanout and approval decisions gated on authenticated host/membership proofs and the r7 contract. 🤖 Built with SMT <smt@agora.build>
Use a server-computed SHA-256 digest for token uniqueness so supported 4 KiB FCM tokens fit PostgreSQL indexes. Exercise persistence and reassignment at the maximum length in the isolated database test. 🤖 Built with SMT <smt@agora.build>
Integrate the r7 approval inbox and atomic, durable answers independently of APNs. Preserve separate in-app and offline push preferences and document the remaining offline delivery gates. Show session connection failures, allow an explicit retry of an unauthorized hello before any accepted welcome, and keep pairing-room sockets out of the online Atem registry. Validate with 879 Swift tests, 11 environment-dependent skips and no failures; provisioned local discovery shows both Genie sessions. 🤖 Built with SMT <smt@agora.build>
…on API Reconnect before retrying hello, fence sleep and stale sockets, and exercise approvals through the native client and durable journal. Document the account-trust review and proposed host push proof. 🤖 Built with SMT <smt@agora.build>
Record shared fixture provenance, attachment recovery coverage, and live disconnect and lease-expiry results. 🤖 Built with SMT <smt@agora.build>
Cancel WebKit clipboard defaults after xterm shortcuts, keep normal paste focused and unsubmitted, and replace toolbar Copy/Paste with a guarded Paste & Go action. Cover native Edit/context menus, bracketed paste, ownership limits and focus reports with actual WebKit regressions. Document attachment-composer follow-up #51 and current validation. 🤖 Built with SMT <smt@agora.build>
Release the previous session and subscribe to the selected process in viewing mode. Preserve selection through pending registry refreshes, ignore late attachments and retain View for explicit retry. Add switch and control-isolation regressions and update terminal docs. 🤖 Built with SMT <smt@agora.build>
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.
Astation discovers and controls Claude/Codex sessions through Atem's authenticated registry and reviews r7 approval requests in a native inbox. Recovery now opens a fresh transport instead of sending a second hello, and an opt-in local HTTP API lets scripts exercise the same session, approval and durable receipt paths without a mobile UI.
This consolidates closed #49 and native approval work against main. Protocol, host handoff and shared fixtures pin Atem #72 at 6edda2490f4a4b7634edb446f64aa02748e29fa2 (atem-session r7.1). No Atem checkout was edited or built.
Changes
Validation
For this revision:
Follow-up Work
Outstanding live acceptance checks, native structured chat/session APIs, multi-device trust and offline push integration are tracked in issue #52. Attachment support remains in issue #51. Browser/account-wide access and host push ingress remain gated in this implementation.
The joint session matrix separates automation from confirmed live results. Full terminal UI/local-input races, interrupt/stop, exact acceptance/disconnect timing, a delayed renewal reply and coordinated unpair/re-pair/verify remain live checks. Existing agents and pairings are retained.
Atem must stage permission-triggering Claude/Codex prompts for the live allow/deny/rule/race/expiry matrix. The local installed Atem is 0.6.9, older than the required PR #72 host. No live approval was answered during this check.
Account-wide enrollment, signed membership/freshness, multiple native controllers, secure browser/QR companions and live channel E2EE remain under the joint security gate. The #70 proposal cannot yet guarantee its stated 24-hour revocation bound against a removed manager signing an old head with fresh nonces. The review/proof documents require joint agreement before enabling those paths.
Offline APNs additionally needs an eligible push-enabled profile, provider credentials, authenticated host proof, authorized recipients and a durable revocation-aware outbox. The current free Personal Team profile has no APNs entitlement. In-app alerts work independently. Phone access, account-wide push and live APNs delivery are not claimed.
No production merge or deployment is included. Memory writes are refused for an account encryption-mode mismatch; the new attachment TODO was not found after the refusal. Use the hosted handoffs and follow-up issue #51 for durable coordination. Issue #51 covers images/audio/PDFs/other files in the separate composer; attachment implementation is outside this PR.
Handoffs
Generated with SMT smt@agora.build