Skip to content
This repository was archived by the owner on Nov 10, 2026. It is now read-only.

T3 Code clone: show Claude workflow phases and stop native tasks - #771

Merged
daehyeon-mun merged 6 commits into
daehyeon/t3-code-mainfrom
daehyeon/t3-up-lineage-workflows
Oct 18, 2026
Merged

daehyeon-mun merged 6 commits into
daehyeon/t3-code-mainfrom
daehyeon/t3-up-lineage-workflows

Conversation

@daehyeon-mun

@daehyeon-mun daehyeon-mun commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

Request

Claude workflows in Lineage show their named phases and member agents. Users can expand workflows and phases, open available member conversations, inspect reported model/status/output, and stop a workflow or native Claude task while its owner continues running.

Changes and reasons

  • Project workflow snapshots into coordinator and member records. Keep coordinator status authoritative when its child conversation has newer activity; phase counts, elapsed times and settled outcomes follow the reported members.
  • Preserve independent workflow/phase expansion and header pagination. Expanded rows are flattened before rendering, avoiding nested fixed-capacity loops. A running phase starts open; member hover cards use the window layer so scrolling cannot clip them.
  • Stop strongly identified live native tasks with subagent.stop, using the task's owner/run/task identifiers. Workflow Stop uses the dedicated orchestration.stopWorkflow write RPC. T3-owned child Stop continues to interrupt only the child with its queue held. Read-only controls and duplicate commands are gated; failures use the upstream toast titles.
  • Name t3_workflow_stop in the work log and count unique coordinator identifiers in grouped summaries.

Follows upstream T3 Code 9c161462c9: b9afba59f4 (#12598), workflow phases/members and stopWorkflow, and 8c777fbfad (#17826), stopping a native subagent without stopping its owner. Server behavior and schemas come from merged runtime #740; Lineage controls and layout come from merged #752. No framework source changes.

Verification

Final source 5e256bb82 includes fixed integration 6418f138c1. Native feature acceptance is frozen at a50a912169ce8c8ebe3e7c20aed08b75a4c5beda; the integration preserves the updated Details breakpoint and linked-prompt handling alongside workflow controls.

Acceptance Result Proof
Phase/member projection, attempts, usage, timing, terminal propagation and model metadata Pass Projection cases
Independent workflow/phase expansion, coordinator grouping/status and member availability Pass Consumer and Contract action cases
Native task Stop targets its task, workflow Stop targets its coordinator; read-only and refusals Pass Operation cases
Existing T3-owned child Stop and duplicate gate Pass Child Stop cases
Workflow Stop tool labels, requested effect, unique counts and effect priority Pass Work-log cases
Full app/tool Bun suite Pass 6,073 tests, 401 files, 128,801 assertions at final5e256; pinned Bun1.4.2, timeout120s
Strict TypeScript, caps and whitespace Pass App strict typecheck; final caps and staged whitespace pass
Full Contract preflight Pass 122,148 nodes; 6,486 slots; 31 derives; 81 resources; 10,922 actions
New embedded runtime staging Pass Immutable archive SHA-256 verified; 11 Mach-O signatures; isolated startup
Actual new-runtime native-task/workflow Stop Pass Real server and synthetic CLI through exact app shellCommand: task cancelled while workflow/owner run stayed running, then workflow cancelled while owner stayed running. No run.interrupt sent. Actual readback.
App data Rust tests 29 pass, 0 fail Consumer workspace; host-dev; aarch64-apple-darwin
Signed native bundle Pass Frozen a50a912169; client 1c54876d6bc8e29b68d346c0; deep codesign verifies
Live native before/after, phase/member controls and navigation Pass Inspected original window captures and asserted child-thread selection. Native images and attempt
Native Stop button acceptance Pass Unique seed77119031; fresh accepted Stop UUID, actual SDK stop_task for both current tasks, cancelled targets while owner remains running. Native readback.

Native comparison

Before/after at the same 1280×840 window size and fixture: the flat workflow row becomes named phases with reported member counts and navigable agent rows. Original pixels are unchanged apart from the label band. Both native Stop buttons subsequently passed the unique-seed operation proof linked below.

Workflow phases and member agents before and after

Native operation proof

The unique-seed native drive completes Stop acceptance at the frozen source. The earlier attempts reused seed1 and collided with an older thread.visit receipt; the retained trace diagnosis and successful fresh UUID establish an apparatus cause. No product repair, database reset or rebuild was needed.

Final integration is separately covered by the complete source checks. Keep this PR a draft for coordinator review.

Known differences

No product behavior difference identified. Contract refuses rem inside CSS min(); this uses the existing min(${28 * rem}px, 55dvh) expression to preserve upstream sizing. No framework change is required.

daehyeon-mun and others added 4 commits October 19, 2026 00:57
Preserve member usage and timing, dynamic phase plans, and native Stop eligibility for the workflow controls.

Co-Authored-By: Codex <noreply@openai.com>
Preserve workflow coordinator state, expandable phases and member metadata. Route native task and workflow Stop to their dedicated operations, and name workflow stops in the work log.

Co-Authored-By: Codex <noreply@openai.com>
@daehyeon-mun

Copy link
Copy Markdown
Collaborator Author

Actual new-server Stop verification passed on source ebd27452c8f215ab1929822f70810e147619dedd.

The immutable 0.1.1-nightly.20261018.3302 server ran on isolated loopback port 16896 with its own homes and a synthetic Claude CLI process. The CLI answered the real SDK initialization/control protocol and emitted workflow phases, member agents and an independent native task; no provider account, machine credentials, SDK module mock or database patch was used.

The exact app shellCommand entry point used actual server projection/readback and dispatched:

  1. subagent.stop for the independent task's owner/run/task identifiers. The task became cancelled; the workflow and owner run remained running.
  2. orchestration.stopWorkflow for the workflow coordinator, as a write. The coordinator became cancelled; the owner run remained running.

No run.interrupt operation was sent. The server's workflow snapshot retains reported member states; the exact app projection settled its live/queued members to cancelled, retaining the already completed member: cancelled, completed, cancelled, cancelled.

This is real-runtime operation proof through the app functions. The frozen native UI before/after drive and native button acceptance remain pending behind the current source-control-hosts native lane.

Co-Authored-By: Codex <noreply@openai.com>
@daehyeon-mun

Copy link
Copy Markdown
Collaborator Author

Frozen macOS UI evidence at a50a912169ce8c8ebe3e7c20aed08b75a4c5beda, signed client 1c54876d6bc8e29b68d346c0, against isolated real runtime 0.1.1-nightly.20261018.3302 and a synthetic Claude SDK process. Images are original window captures at 1280×840 logical points.

The baseline shows the flat workflow row. The implementation shows named Read/Write phases, reported counts and member rows, plus a hover card with model, status and reported output. Phase collapse/expansion and member navigation were asserted in the same native drive; opening “Inspect parser” selected its actual child thread ID, then the owner was selected again.

Native Stop acceptance is pending. The independent-task Stop attempt did not settle its target within 10 seconds; the owner and workflow remained running. The server command receipts and synthetic provider journal contain no new Stop operation. The capture helper discarded the tap reply, so a returned platform refusal has not yet been distinguished from a callback/command issue. Workflow Stop was not attempted after this failure. Existing real-server app-function Stop proof remains separately linked; it does not replace native button acceptance.

All recorded apps/drivers exited and the GUI was released. No app source changed for this attempt. The draft remains blocked on the bounded native Stop continuation.

Baseline flat workflow row

Expanded workflow phases and member rows

Native member hover card

@daehyeon-mun

Copy link
Copy Markdown
Collaborator Author

Before/after at the same 1280×840 window size and fixture: the flat workflow row becomes named phases with reported member counts and navigable agent rows. Original pixels are unchanged apart from the label band; native Stop acceptance remains pending as recorded above.

Workflow phases and member agents before and after

@daehyeon-mun

Copy link
Copy Markdown
Collaborator Author

Native Stop diagnostic: repeated agent command ID

Frozen app source: a50a912169ce8c8ebe3e7c20aed08b75a4c5beda. No app source change, GUI launch or fixture mutation was needed for diagnosis.

The native Stop reached the official server. Its command ID 722290eb-708b-4eff-9cfc-cacc098e1bf9 was already accepted as thread.visit, receipt sequence 284 at 2026-10-18T18:03:58.069Z. The latest native Stop uses that same ID, and the server returns Success through its existing-receipt path. There is no new dispatch.once for this Stop, no new Stop receipt, and no observed stand-in stop_task for the current native task.

Checked trace file: target/lane/envs/second/t3home/userdata/logs/server.trace.ndjson.1:

  • Lines 8535, 8543 and 8545: prior thread.visit using this ID; dispatch.once, dispatch.withReceipt, and WebSocket RPC all succeed.
  • Lines 10878 and 10880: an earlier native subagent.stop repeats the same ID and returns Success through dispatch.withReceipt/WebSocket RPC.
  • Lines 16689 and 16691: latest native subagent.stop repeats it again and returns Success; no matching dispatch.once.

Exact’s agent entropy deliberately repeats per launch seed (data/src/crypto.rs:154, js/src/lib.rs:349, js/src/prelude.js:189). The app mints command UUIDs from that entropy (examples/t3-code/src/transport/transport-wire.ts:309). An independent RFC8439 ChaCha20 reconstruction of seed1’s TypeScript stream matches this UUID at byte offset56; the other persisted native visit UUID matches offset40. Reusing the same default seed against the same persistent official-server database explains this acceptance failure.

The native journal’s182-byte projection request and432-byte command request fit the corresponding actual Request envelopes; its85-byte reply fits Success {sequence:284}. Those sizes first suggested final dispatch, but the server trace and receipt are the conclusive evidence.

Next acceptance: preserve source/server and run with unique agent seed 77119031. Require a new accepted subagent.stop receipt and current task’s stand-in stop_task. This is an apparatus reset; no product repair or rebuild is indicated by this diagnosis.

The companion JSON lists exact checked line numbers/timestamps and only bounded nonsecret metadata. Raw state, credentials, WebSocket tickets and private projection bodies are excluded.

@daehyeon-mun

Copy link
Copy Markdown
Collaborator Author

Native Stop acceptance passed with unchanged frozen app source a50a912169ce8c8ebe3e7c20aed08b75a4c5beda, signed client 1c54876d6bc8e29b68d346c0, existing isolated3302 server, and unique recorded agent seed 77119031. Both button presses were delivered through the macOS platform path with their layout, input reply and immediate command state preserved.

Native action Target after actual server readback Other work Owner run
Independent native task Stop cancelled Workflow remained running running
Workflow Stop cancelled Previously stopped independent task remained cancelled running

The server accepted a fresh subagent.stop receipt, UUID 27d1f535-af1d-464b-8f3b-c6e2b7e75ef8, at 2026-10-18T18:32:29.189Z. The actual synthetic Claude SDK process received two stop_task controls and recorded the current native task native-fixture-16db9f5b-77a6-4c17-9b6e-e7ded71bf584 and workflow task workflow-fixture-16db9f5b-77a6-4c17-9b6e-e7ded71bf584 as stopped.

This resolves the earlier apparatus failure: repeated seed1 reused a UUID already accepted as thread.visit; the server correctly replayed its prior receipt. The retained trace diagnosis establishes that the previous correct Stop reached the server. No app repair, database reset or rebuild was used. The unique-seed drive exited0, its app PID26286 is absent, and the GUI was released. Phase/member/navigation images remain qualified at the same frozen source.

Preserve the updated Details breakpoint and linked-prompt handling alongside workflow controls.

Co-Authored-By: Codex <noreply@openai.com>
@daehyeon-mun
daehyeon-mun marked this pull request as ready for review October 18, 2026 18:37
@daehyeon-mun
daehyeon-mun merged commit 9bf2b4b into daehyeon/t3-code-main Oct 18, 2026
2 checks passed
expo-tuft Bot pushed a commit that referenced this pull request Oct 28, 2026
## Request

Claude workflows in Lineage show their named phases and member agents.
Users can expand workflows and phases, open available member
conversations, inspect reported model/status/output, and stop a workflow
or native Claude task while its owner continues running.

## Changes and reasons

- Project workflow snapshots into coordinator and member records. Keep
coordinator status authoritative when its child conversation has newer
activity; phase counts, elapsed times and settled outcomes follow the
reported members.
- Preserve independent workflow/phase expansion and header pagination.
Expanded rows are flattened before rendering, avoiding nested
fixed-capacity loops. A running phase starts open; member hover cards
use the window layer so scrolling cannot clip them.
- Stop strongly identified live native tasks with `subagent.stop`, using
the task's owner/run/task identifiers. Workflow Stop uses the dedicated
`orchestration.stopWorkflow` write RPC. T3-owned child Stop continues to
interrupt only the child with its queue held. Read-only controls and
duplicate commands are gated; failures use the upstream toast titles.
- Name `t3_workflow_stop` in the work log and count unique coordinator
identifiers in grouped summaries.

Follows upstream T3 Code `9c161462c9`: `b9afba59f4` (#12598), workflow
phases/members and stopWorkflow, and `8c777fbfad` (#17826), stopping a
native subagent without stopping its owner. Server behavior and schemas
come from merged runtime #740; Lineage controls and layout come from
merged #752. No framework source changes.

## Verification

Final source `5e256bb82` includes fixed integration `bf8fc606fb`. Native
feature acceptance is frozen at
`a50a912169ce8c8ebe3e7c20aed08b75a4c5beda`; the integration preserves
the updated Details breakpoint and linked-prompt handling alongside
workflow controls.

| Acceptance | Result | Proof |
|---|---|---|
| Phase/member projection, attempts, usage, timing, terminal propagation
and model metadata | Pass | [Projection
cases](https://github.com/ccheever/exact2/blob/a50a912169ce8c8ebe3e7c20aed08b75a4c5beda/examples/t3-code/tests/details/lineage-workflows.test.ts)
|
| Independent workflow/phase expansion, coordinator grouping/status and
member availability | Pass | [Consumer and Contract action
cases](https://github.com/ccheever/exact2/blob/a50a912169ce8c8ebe3e7c20aed08b75a4c5beda/examples/t3-code/tests/details/lineage-workflows.test.ts)
|
| Native task Stop targets its task, workflow Stop targets its
coordinator; read-only and refusals | Pass | [Operation
cases](https://github.com/ccheever/exact2/blob/a50a912169ce8c8ebe3e7c20aed08b75a4c5beda/examples/t3-code/tests/shell/lineage-native-stop.test.ts)
|
| Existing T3-owned child Stop and duplicate gate | Pass | [Child Stop
cases](https://github.com/ccheever/exact2/blob/a50a912169ce8c8ebe3e7c20aed08b75a4c5beda/examples/t3-code/tests/shell/lineage-stop-subagent.test.ts)
|
| Workflow Stop tool labels, requested effect, unique counts and effect
priority | Pass | [Work-log
cases](https://github.com/ccheever/exact2/blob/a50a912169ce8c8ebe3e7c20aed08b75a4c5beda/examples/t3-code/tests/timeline/timeline-tool-calls.test.ts)
|
| Full app/tool Bun suite | Pass | 6,073 tests, 401 files, 128,801
assertions at final5e256; pinned Bun1.4.2, timeout120s |
| Strict TypeScript, caps and whitespace | Pass | App strict typecheck;
final caps and staged whitespace pass |
| Full Contract preflight | Pass | 122,148 nodes; 6,486 slots; 31
derives; 81 resources; 10,922 actions |
| New embedded runtime staging | Pass | Immutable archive SHA-256
verified; 11 Mach-O signatures; isolated startup |
| Actual new-runtime native-task/workflow Stop | Pass | Real server and
synthetic CLI through exact app shellCommand: task cancelled while
workflow/owner run stayed running, then workflow cancelled while owner
stayed running. No run.interrupt sent. [Actual
readback](#771 (comment)).
|
| App data Rust tests | 29 pass, 0 fail | Consumer workspace; host-dev;
aarch64-apple-darwin |
| Signed native bundle | Pass | Frozen `a50a912169`; client
`1c54876d6bc8e29b68d346c0`; deep codesign verifies |
| Live native before/after, phase/member controls and navigation | Pass
| Inspected original window captures and asserted child-thread
selection. [Native images and
attempt](#771 (comment))
|
| Native Stop button acceptance | Pass | Unique seed77119031; fresh
accepted Stop UUID, actual SDK stop_task for both current tasks,
cancelled targets while owner remains running. [Native
readback](#771 (comment)).
|

## Native comparison

Before/after at the same 1280×840 window size and fixture: the flat
workflow row becomes named phases with reported member counts and
navigable agent rows. Original pixels are unchanged apart from the label
band. Both native Stop buttons subsequently passed the unique-seed
operation proof linked below.

![Workflow phases and member agents before and
after](https://github.com/user-attachments/assets/f8ee7e19-d22d-4c37-b36b-939fde0baf4a)


## Native operation proof

The [unique-seed native
drive](#771 (comment))
completes Stop acceptance at the frozen source. The earlier attempts
reused seed1 and collided with an older `thread.visit` receipt; the
[retained trace
diagnosis](#771 (comment))
and successful fresh UUID establish an apparatus cause. No product
repair, database reset or rebuild was needed.

Final integration is separately covered by the complete source checks.
Keep this PR a draft for coordinator review.

## Known differences

No product behavior difference identified. Contract refuses `rem` inside
CSS `min()`; this uses the existing `min(${28 * rem}px, 55dvh)`
expression to preserve upstream sizing. No framework change is required.

---------

Co-authored-by: Codex <noreply@openai.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant