Repository navigation
feat(terminal): add concurrent Local terminal foundation (ALL-141) - #352
Draft
allisoneer wants to merge 4 commits into
Draft
allisoneer wants to merge 4 commits into
allisoneer wants to merge 4 commits into
Conversation
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.
Model PTYs expose textual keys and shared preview cursors. This change adds a separate session-owned Local shell whose byte I/O, resize and sanitized replay support concurrent human and agent activity in the same workspace.
Launch uses the existing prepared authorization and selected backend, captures the environment outside the agent mutex, and rechecks configuration under lifecycle resource leases. Output is masked against its immutable credential snapshot before retention. Human input stays outside the model registry and uses a bounded pump; unconfirmed delivery is never silently resent. Human PTY collection releases the parent slave after spawn so Linux EOF can settle the collector.
Eight versioned HTTP operations expose create/list/status, observer attach/read/detach, literal input and resize through the existing typed client and admission middleware. Explicit termination retains its existing route. Finite POST reads carry independent decimal-string byte cursors and acknowledgements only after renderer processing; each observer retains one immutable pending frame. Gaps require an explicit reset, quotas and idle expiry bound observers, and disconnect does not kill the shell. The SDK supplies cancellation fencing, lost-ACK handling and bounded input receipts. Graceful shutdown explicitly settles owned terminals before persistence drains, including retained observer/service clones.
Draft: ALL-141 remains incomplete. Qualified renderer integration, terminal UI, browser fidelity/accessibility and full production-pane acceptance remain pending. Exact-pinned
@xterm/xterm@6.0.0(MIT, core and CSS only) awaits Allison's dependency/license approval. No renderer dependency has been adopted.Work map:
dev.Validation at the protocol checkpoint:
make test-e2epassed: 68 production-embedded journeys, including two terminal protocol journeys using the built SDK and real PTY/agent: shared files, terminal closure during an active agent, independent cancellation, stale-revision rejection, detach/reattach and honest process loss after restart. Their byte sink is a test adapter; these are not browser-renderer fidelity evidence.make test-durability, generated API contract, web lint/typecheck/format/build, production Rust clippy and source-size checks passed. Post-commitmake test-assetspassed without output drift. API and all generated web/client/presentation outputs are committed together.Final workspace gates, qualified renderer/pane E2E, one bounded independent final review, exact-head green CI and terminal-successful automated review remain acceptance work. No merge, deployment or publication is authorized.