Skip to content

Add persistent workspace task panes to T27 OS - #13207

Merged
github-actions[bot] merged 7 commits into
Trinity-S-AI-DNA:masterfrom
dmitrii-f-t27:codex/t27os-workspaces-19
Nov 8, 2026
Merged

github-actions[bot] merged 7 commits into
Trinity-S-AI-DNA:masterfrom
dmitrii-f-t27:codex/t27os-workspaces-19

Conversation

@dmitrii-f-t27

@dmitrii-f-t27 dmitrii-f-t27 commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

Closes #13208

Closes dmitrii-f-t27#19

Workspace acceptance spec

Changes

  • Preserve the release toolchain and inherited PATH order while finding locally installed clients from a GUI launch.
  • Add persisted workspace bindings, stable task tabs, and two independently routed native terminal panes. Starting, restarting, and stopping a pane are explicit actions.
  • Add workspace-scoped PTY lookup, attach, and I/O while retaining the legacy SPAWN and LIST wire formats.

Verification

  • 279 focused t27b tests passed across workspace, protocol, window, PATH, and VT specs. Five workspace specs passed the t27c and Zig seal sequence. The conformance validator accepted all 111 vector files.
  • The native daemon matched 27 portable wire vectors. Lookup and reattach preserved pane IDs and process count. An older daemon refused the new requests and still returned the legacy LIST frame.
  • An isolated macOS run launched installed OpenCode from the native workspace UI with a system-only inherited PATH. Two bound projects preserved their pane IDs and processes across workspace switches and an app-only reopen. Two simultaneous panes passed input isolation, resize, scrollback, copy, and editor-return checks.
  • A binding-only native C-to-D rebind updated the saved row while all packed metadata stayed unchanged. An app-only reopen retained the new binding and unrelated live pane identities.
  • Provider login and paid model requests were outside the native acceptance run.

Dmitrii Fedorov (@dmitrii-f-t27)

@dmitrii-f-t27
dmitrii-f-t27 force-pushed the codex/t27os-workspaces-19 branch from 7cb1a9b to b1ff853 Compare November 7, 2026 01:29
@dmitrii-f-t27

dmitrii-f-t27 commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor Author

@gHashTag could you coordinate the upstream fixes for two baseline checks that block this PR? Both recur at head b1ff85388 against base f451395a3.

  • duplicate-bodies expects the bytes_eq group sizes [11, 3] and reports [12, 3]. All 15 files in those groups are byte-identical to the base, including specs/tri/t27b/timeout_terminal.t27. The exact base run reports the same counts.
  • scan scans the full tree and flags the existing developer-home literal in that same unchanged file. This PR adds no matching literal. The exact base run flags the same file.

Both issue-traceability checks now pass with upstream issue #13208. The workspace patch leaves the baseline files and branch checks unchanged.

A later Documented t27c subcommands exist run reports 71 dead tri mentions against the limit of 68. This patch changes no CLI command implementation or scanned documentation. The exact base run reports the same 68-to-71 failure.

Dmitrii Fedorov (@dmitrii-f-t27)

This was referenced Nov 7, 2026
This was referenced Nov 8, 2026
Conflicts (seal JSON only, no spec conflicts; all four specs auto-merged):
- .trinity/seals/t27os_T27osPtyClient.json: took the branch side to clear markers, then resealed pty_client.t27 with t27c seal --save (085f0d7 compiler).
- .trinity/seals/t27os_T27osPtyLogic.json: same, resealed pty_logic.t27.
- .trinity/seals/t27os_T27osPtyProto.json: same, resealed pty_proto.t27.
- .trinity/seals/t27os_T27osPtyServer.json: same, resealed pty_server.t27.
Also resealed glass_window and workspace_tasks (seals this branch changes vs master) so built_by is the 085f0d7 compiler. No --force needed. tri seals sync-twins wrote 0 files (498 consistent; 31 not computed, same class as master).

Refs #19
Refs Trinity-S-AI-DNA#13208
@dmitrii-f-t27
dmitrii-f-t27 marked this pull request as ready for review November 8, 2026 19:19
@dmitrii-f-t27

dmitrii-f-t27 commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor Author

Refreshed onto master 085f0d7 (merge 080fcf8). Only the four pty seal JSONs conflicted; they were regenerated with t27c built from 085f0d7, never hand-merged. Tests on the merged tree: workspace_tasks 9/9, pty_proto 12/12, pty_client 3/3, pty_logic 61/61, keys 115/115, t27b glass_window and pty_server 0 failed.

Native acceptance from workspace_tasks.t27 run in the app window (local build 7983 = master + this PR + #13339, launched from Finder): split a task and typed separately in both panes; the PATH fix found installed opencode and claude from a GUI launch; switched projects and back with both panes restored; closed and reopened the window: the same server and the same three pane processes reattached, no duplicate launch; closed an earlier task after stopping its panes explicitly, the later task survived. Binding fixture folders through the system folder dialog was not exercised; discovered spaces were used. The pane-table overlap with 12+ panes is fixed on master by #13351. Out of draft.

@gHashTag please merge when CI is green.

Dmitrii Fedorov (@dmitrii-f-t27)

@github-actions
github-actions Bot merged commit 5aa36ca into Trinity-S-AI-DNA:master Nov 8, 2026
38 checks passed
dmitrii-f-t27 added a commit to dmitrii-f-t27/t27 that referenced this pull request Nov 8, 2026
Conflicts (all generated seals, none hand-merged):
- .trinity/seals/t27os_T27osGlassWindow.json: took one side to clear markers, resealed with t27c seal --save
- .trinity/seals/t27os_T27osPtyLogic.json: same
- .trinity/seals/t27os_T27osPtyServer.json: same
specs/t27os/pty_logic.t27 auto-merged; verified both the P2 hunks (agent_first_profile in plan_pane_keys, load_mask_agent 537/25) and the Trinity-S-AI-DNA#13207 hunks (pane_command_path, task code) are intact.
Seal currency and coverage checks pass after reseal; sync-twins wrote nothing.

Refs Trinity-S-AI-DNA#13326
gHashTag added a commit that referenced this pull request Nov 9, 2026
Master brought #13207 (workspace task panes), which grew
glass_window.t27 by 803 lines; the spec merged cleanly. The one
conflict, the glass_window seal, takes master's copy until the lab
re-seals the merged spec. Merged spec: t27c test-report 128/128, 0
vacuous; t27b 128/128.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

T27 OS: workspace task panes and installed CLI discovery T27 OS: launch installed clients in project workspaces and persistent panes

1 participant