Repository navigation
T3 Code clone: update embedded runtime and client protocol - #740
Conversation
Request current pairing permissions, retain old-server scope fallback, tolerate new union variants, apply PR link updates and migrate provider and host settings. Stop the local supervisor after an occupied-home exit. Co-Authored-By: Codex <noreply@openai.com>
|
Real RPC before/after against the same isolated nightly server. Before uses the old client grant; after uses the current grant. The old-server fallback, masked host settings and occupied-home exit were also exercised against real server binaries. This image renders protocol output, not an application screenshot. |
Keep a start requested during bounded teardown waiting for the next server, rather than treating the previous SIGKILL as a failed startup. Co-Authored-By: Codex <noreply@openai.com>
|
Validation of the runtime bump and intentional-stop repair:
The real RPC before/after attachment above shows the original five-scope grant failing file browsing and settings writes against the new server; sixteen scopes succeed. It also exercises old-server The final native window attachment shows the isolated lane connected to its embedded |
## Request Update sidebar navigation and draft project selection to T3 Code `9c161462c9`. Waiting rows show elapsed waiting time, the settle shortcut advances, running-terminal indicators reveal the existing terminal, and the draft project picker supports search and keyboard selection. ## Changes and reasons - Keep queued runs subscribed; show Waiting with a dot-dashed icon and a timer from the completed run. - Settle and advance with the shortcut while keeping menu settle in place. Reorder around unsupported keyless rows without writing to them; allow Working rows to drag into composer context without shelf movement. - Show the machine for projectless threads across environments, center monograms, and use the project filter icon. Show matching PR numbers in sidebar/palette search. - Reveal the running terminal in its current panel/drawer and reuse server-created terminals when opening an empty drawer. - Add parent-thread header breadcrumbs, a searchable draft project combobox, and the No project palette entry beside the current project with its own shortcut. Show the current project's `chat.newLocal` shortcut. - Ignore stale new-thread actions for removed projects. Existing `client.ready`/`shellLive` routing already keeps thread links loading until the shell is authoritative; the new regression test covers this path. Scoped upstream changes (MIT): [e536bfd33b](pingdotgg/t3code@e536bfd33b) (#19617), [6edd44f405](pingdotgg/t3code@6edd44f405) (#19328), [db4d0a8e6e](pingdotgg/t3code@db4d0a8e6e) (#16291), [ff9eb8bd0c](pingdotgg/t3code@ff9eb8bd0c) (#17022), [46dd094905](pingdotgg/t3code@46dd094905) (#16841), [22ccf8a3df](pingdotgg/t3code@22ccf8a3df) (#12113), [0e7346ccd9](pingdotgg/t3code@0e7346ccd9) (#18740), [a908a7ac87](pingdotgg/t3code@a908a7ac87) (#14658), [5055de3ae4](pingdotgg/t3code@5055de3ae4) (#15666), [5722496b79](pingdotgg/t3code@5722496b79) (#16666), [b744bded01](pingdotgg/t3code@b744bded01) (#17664), [517188b3ca](pingdotgg/t3code@517188b3ca) (#16628), [f55c66b323](pingdotgg/t3code@f55c66b323) (#8513), [6c13016394](pingdotgg/t3code@6c13016394) (#14697), [4a90c1cf5d](pingdotgg/t3code@4a90c1cf5d) (#15293), [8f026485df](pingdotgg/t3code@8f026485df) (#19697), [11fd54fcbb](pingdotgg/t3code@11fd54fcbb) (#15864). ## Verification Verified source commit: `952157a851f236087f72fb4c08588c072f906faa`. Local checks use pinned Bun 1.4.2 and the task branch's committed content; evidence files remain outside Git. | Criterion | Reproduction | Result | |---|---|---| | Status, keepalive, parent links, PR search, terminal reuse, stale project actions, combobox keys, Working drag | `bun test --timeout 30000 examples/t3-code/tests/sidebar/navigation-upstream.test.ts` | 11 pass | | Existing settle shortcut, palette, reorder behavior and all app/tool regression tests | `bun test --timeout 30000 examples/t3-code` | 5272 pass, 0 fail, 367 files | | Types | `bun node_modules/typescript/bin/tsc --noEmit --strict --target ES2023 --module ESNext --moduleResolution bundler --skipLibCheck --lib ES2023,DOM examples/t3-code/app.ts` | Pass | | Source budgets and whitespace | `bun scripts/caps.mjs`; `git diff --check` | Pass | | Contract plan | `contract build examples/t3-code/app.contract` | Pass: 104590 nodes, 5932 slots, 24 derives, 75 resources, 9730 actions | | Native bundle and live before/after comparison | macOS, 1280×840, isolated offline fixture | Pass: signed bundle; search filtered to one empty-project result and Enter selected its draft | | Cargo data tests | Root profile injection, host-dev, 2 jobs | 25 pass, 0 fail |  The comparison is attached through GitHub; no evidence is committed. ## Risks and dependencies Passive sidebar PR summaries already use cached summary reads rather than `subscribeVcsStatus`, so they retain no remote VCS poller. `ActivityScopes` now also skips leases for explicit `includeRemote:false` subscriptions, covered by a regression test. New-server protocol support is supplied by #740; this PR adds no passive subscriptions and does not change older-server requests. No framework changes or identified framework blocker. Terminal assets and offline runtime staging pass, including all 11 Mach-O signatures and a live server start/stop on 16873. The signed native bundle passes (Cargo 759.6 s, shared Swift 19.1 s, app Swift 193.2 s). Both captured windows were inspected. ## Next action Review this draft against `daehyeon/t3-code-main` and reconcile any integration conflicts. No required task verification remains open. Prepared with Codex; continues work begun in the prior Claude session. Co-authored-by: Codex <noreply@openai.com>
## Request Composer and settings traits now show Fast or Ultrafast beside the reasoning label. Source control writer and review-guide models have trait pickers that preserve the other selected options, including project overrides. Subagent hover cards show the matching model’s effort and speed. ## Changes and reasons Adds unbound Increase Effort and Decrease Effort commands with wrapping levels and caret-preserving Ultrathink prompt edits. Exact model-name matches rank first, equal search matches keep catalog order, missing text-generation models prefer the provider’s cheap default, and ⌘Enter creates a project while an option is highlighted. Follows T3 Code `9c161462c9`, specifically `e22c880434` ([#16069](pingdotgg/t3code#16069)), `29366ea29a` ([#13056](pingdotgg/t3code#13056)), `e688034b5f` ([#18488](pingdotgg/t3code#18488)), `2993dfc069` ([#19928](pingdotgg/t3code#19928)), `ede3f2d6ba` ([#18494](pingdotgg/t3code#18494)), `45b5993a52` ([#19722](pingdotgg/t3code#19722)), and `446be6933f` ([#18901](pingdotgg/t3code#18901)). ## Verification Verified source commit: `e66ce91153f249f7c07968b1df76c1e083097861` (merge of the current integration branch). The native image and build below qualify the original implementation at `1fdc7f37966b6975d5b57d0e9a8d8aaecb950c55`; the later default/scope correction is covered by focused tests and the real-server check. | Acceptance | Result | Proof | | --- | --- | --- | | Traits speed labels and source control model traits | Pass in behavior tests | [Traits/settings cases](https://github.com/ccheever/exact2/blob/e66ce91153f249f7c07968b1df76c1e083097861/examples/t3-code/tests/composer/effort-and-models.test.ts) | | Effort steps wrap, preserve other traits, and retain the caret | Pass in behavior tests | [Effort cases](https://github.com/ccheever/exact2/blob/e66ce91153f249f7c07968b1df76c1e083097861/examples/t3-code/tests/composer/effort-and-models.test.ts) | | A refused native prompt edit preserves newer typing | Pass | [Editor boundary case](https://github.com/ccheever/exact2/blob/e66ce91153f249f7c07968b1df76c1e083097861/examples/t3-code/tests/composer/effort-and-models.test.ts) | | Subagent hover cards receive matching effort and speed only | Pass | [Timeline case](https://github.com/ccheever/exact2/blob/e66ce91153f249f7c07968b1df76c1e083097861/examples/t3-code/tests/composer/effort-and-models.test.ts) | | Exact-name ranking, position-independent ties, cheap text defaults | Pass | [Model cases](https://github.com/ccheever/exact2/blob/e66ce91153f249f7c07968b1df76c1e083097861/examples/t3-code/tests/composer/effort-and-models.test.ts) | | Highlighted-option ⌘Enter dispatch and hint | Pass | [Contract action and palette cases](https://github.com/ccheever/exact2/blob/e66ce91153f249f7c07968b1df76c1e083097861/examples/t3-code/tests/palette/palette.test.ts) | | Saving new effort bindings and review-guide settings to the new server | Pass with restart readback | Exact app `restCommand` planners issued 10 settings writes and two keybinding writes against isolated runtime `0.1.1-nightly.20261018.3302`. Both models retained effort/speed traits at environment and project scope; both effort bindings survived restart. | | Review guides default and scope | Pass | Defaults off; the toggle is disabled for project scope. A project toggle write is rejected before any RPC mutation. The review-guide model remains project-scoped. | The default/scope correction passes **244 focused composer/settings tests** (2,395 assertions), strict TypeScript, caps and whitespace checks. Upstream `packages/contracts/src/settings.ts` confirms the false default and excludes `reviewGuidesEnabled` from project-scoped keys. Original implementation verification completed: generated sources; all **5,274 Bun tests pass** across 367 files; strict TypeScript passes; the full Contract compiles to 105,001 nodes; caps pass; `git diff --check` passes. Terminal assets build. Offline runtime staging verifies the pinned archive, all 11 Mach-O signatures, the version, and a live server start/stop on isolated port 16862. The signed native macOS bundle builds successfully (Cargo 481.1 s, shared Swift 14.0 s, app Swift 156.2 s). All **25 Cargo data tests pass** in the host-dev profile. A live native drive opened Source Control settings, scrolled to the model settings, and captured the current window at 1280×840. The same isolated offline fixture and viewport were used for the baseline. The offline fixture has no text-generation providers; model option behavior is covered by the focused tests above.  The comparison is attached to this PR through GitHub; no evidence is committed. The integration merge preserves the runtime’s 16 standard client scopes and settings-write permission, the timeline’s linked-thread labels, and composer model options including boolean speed traits. Post-merge verification: **1,221 affected tests pass** across 80 files, strict TypeScript/caps/whitespace pass, and the full Contract compiles to 103,465 nodes (5,941 slots; 24 derives; 75 resources; 9,969 actions). Grouped keybindings, mobile store links, timeline handoff dividers and subagent hover traits are retained. Both the dedicated and aggregate project planners now reject review-guide enablement overrides. The exact app planner/new-server restart readback passed on `e66ce91153`; the final timeline-only reconciliation is `381870af4d`. No additional native build was run; the coordinator’s final integrated native proof will cover the combined source. ## Risks and dependencies #740 merged as `cf8ca5244e15f72b59bee08788f3be9014509622`. Its immutable archive was independently verified (SHA-256 `6bd4ba617d321f31ac0c4bffe154ab14bf9ed8d67a7c244dcbda4c5f9581c521`, 11 Mach-O signatures) and exercised through this PR’s exact app planners with actual RPC readback before and after a server restart. The fixture uses empty provider homes and no machine credentials. The guided-review task owns the guide tour itself; this PR supplies its model controls. No framework blocker was found. The shared settings menu and its option/palette declarations moved into two small Contract files so both settings pages can use the same controls without an import cycle. No Exact framework changes. ## Next action Review the default/scope correction and the persistence readback, then integrate this draft into `daehyeon/t3-code-main`. Prepared with Codex; continues work begun in the prior Claude session. --------- Co-authored-by: Codex <noreply@openai.com>
## Request Keep pull request links consistent across the list, linked rows, composer and workspace card. Match T3 Code `9c161462c9` for the scoped list/link updates. ## Changes and reasons - Exclude Scratch from the project filter, follow sidebar project order and bound refresh size by the largest host/repository read. - Add “Open pull requests in T3 Code” in Integrations. Modifier and middle clicks open the browser; ordinary clicks follow the saved preference. - Let linked rows open their context menu on right click, show Shift quick actions and drop a pull request chip into the composer. - Queue fast actions independently of the command gate. Dragging across Close buttons selects eligible rows within one group; Escape cancels, and the batch reports one result. - Share newer host state and timestamped thread snapshots across controls, keyed separately for each hosting server. Merged summaries stop polling. - Combine machine and workspace into one details row, remove its version warning and add the watch segment. Align the card’s labels and Git progress content with upstream compact controls. Upstream commits: `cb395ee13b` (#19179), `464fad9a43` (#19180), `00cdceb196` (#19854), `cd34df59a1` (#19719), `b67ac65b74` (#20102), `ab28039ef7` (#16627), `d8d037eae1` (#16612), `a4c9494b0e` (#15946), `7ffa2184a7` (#15851), `98bc998e73` (#19403), `ce6f8ce36e` (#18408), `4df84a7d03` (#16280), `21af72f7a5` (#19374), `7f3628e415` (#16823), `3da82d5d38` (#16235), `c77a7b7eeb` (#17748). ## Verification Integrated source head: `89d9f2728b` (merges `425e07be7b`). Native capture head: `ceb7831c7fa9978282fae183e5a262e53d8104ec`. Local checks use pinned Bun 1.4.2. | Criterion | Result | Proof | |---|---|---| | Project order, bounded reads, non-Git URL linking | Passed | Focused Bun tests | | Shared state, merged polling, queued actions and batch results | Passed | Injected RPC replies, including two pending writes before either reply | | Middle click, drag/drop target and sweep cancellation | Passed | Executed Contract actions and editor context insertion tests | | Changed PR, browser, details, settings and shared audits | Passed | 1,621 tests across 90 files; zero failures | | Integrated affected tests | Passed | 2,505 tests across 163 files, 9,892 assertions; full integrated Contract preflight produced a 33MB plan | | Host identity regression and affected callers | Passed | 1,068 tests across 59 files; distinct hosts with the same project/repository/PR number remain isolated | | Strict TypeScript | Passed | `bun node_modules/typescript/bin/tsc --noEmit --strict --target ES2023 --module ESNext --moduleResolution bundler --skipLibCheck --lib ES2023,DOM examples/t3-code/app.ts` | | Source budgets and whitespace | Passed | Staged `bun scripts/caps.mjs`; `git diff --cached --check` | | Full Contract compilation, terminal host and signed macOS bundle | Passed | Optimized compiler preflight; pinned offline runtime smoke; corrected native bundle completed | | Native fixture acceptance | Passed for captured controls | Four saved-tree assertions, visible context menu, Stop watching, and PR drag into composer | | Shift quick-action visibility and native sweep gesture | Unverified on native host | Agent key delivery bypasses the application modifier monitor; focused action tests cover queue, eligibility and Escape cancellation | ## Risks and dependencies - #740 provides the upstream server caching portion of `4df84a7d03`. Client refresh subscriptions already stop when the last PR reader closes (`pages-pr-refresh.ts`, covered by its tests). - #741 supplies the desktop 32px Keep full history control from `c77a7b7eeb`; this change owns the details-card metrics. Mobile metrics are outside this macOS task. - Native evidence uses synthetic loopback RPC data and isolated local homes. Live GitHub writes are outside this task’s verification scope. - The native agent cannot exercise the sidebar modifier monitor. This is recorded in `clone/issues/pr-list-links-native-modifier-monitor.md`; native Shift visibility and sweep behavior are not claimed as passed. - The linked-row after capture follows Stop watching, so its watch segment has already disappeared. ## Native evidence Captured and inspected at `ceb7831c7f`, before any integration merge. The same fixture supplied both sides.        ## Next action Coordinator review. Keep this PR a draft; native modifier-only acceptance remains a stated limitation. Prepared with Codex; continues work begun in the prior Claude session. --------- Co-authored-by: Codex <noreply@openai.com>
Usage can be filtered to selected providers across Cost, Tokens and Limits. Cached answers appear while slow sources finish, only pending figures dim, and the last answered window remains visible during a window change. Accounts with one email in different workspaces keep separate quotas; the final minute reads “Resets momentarily.” Task: `usage-page`. Base: `daehyeon/t3-code-main` (includes runtime #740 and the current settings integration). Reference: T3 Code `9c161462c9`. App files only; account reports pass through a typed adapter. No framework sources changed. | Acceptance | Result | Proof | | --- | --- | --- | | Provider filter applies to totals, charts, limits, notices and external links; preferences survive reload | Implemented | Usage pooled integration and preference tests; [native filter persistence](https://github.com/user-attachments/assets/89147ea1-88eb-4d01-9d4b-a9dc2e0d758f) | | Slow sources return cached data, then one `awaitRefresh: true` follow-up | Implemented; failed follow-up keeps cached values; older servers keep the single-read path | Progressive usage integration tests | | Previous window stays visible; only pending figures dim | Implemented, including per-provider chart/model/period flags and placeholder rows | Asynchronous progressive usage integration tests; deterministic native fixture responds immediately | | Header stays within the top bar at narrow widths; info icon and scanning status align | Implemented | [Native header at 760px](https://github.com/user-attachments/assets/988b5328-9eb3-48c6-b0fe-fee3164bb3db) | | Same email in two workspaces counts as two accounts | Implemented, including ambiguous hub reports and reset credit routing | Workspace account/pool tests | | Final minute reset wording | Implemented | Timestamp boundary cases | Upstream commits followed: - `13c5328dd0` [pingdotgg/t3code#16970](pingdotgg/t3code#16970): provider filter and persisted hidden set. - `85a41391e9` [#15552](pingdotgg/t3code#15552), `78089500e4` [#15655](pingdotgg/t3code#15655), `c116dacb83` [#15498](pingdotgg/t3code#15498), `73e097b8c8` [#17086](pingdotgg/t3code#17086): fixed-height header and alignment. - `8597558557` [#17147](pingdotgg/t3code#17147): cache-first refresh and loading presentation. - `0be20c86c2` [#17711](pingdotgg/t3code#17711): workspace-aware account identity. - `2625327090` [#17869](pingdotgg/t3code#17869): final-minute reset wording. Validation at current integrated head `e30fb66ec371d60254e615367cb55d0d374408e5` (includes `c8e2957778`): - Bun 1.4.2 frozen install and generation passed. Final affected Usage/menu/dialog/PR-page/timeline fixture checks passed 462/462; strict app TypeScript, caps and diff check passed. Full Contract preflight passed: 6168 slots, 104852 nodes. Earlier app data tests passed 25/25. - Signed native macOS bundle and terminal-host build passed at `f7566b9a3afe918964c8870c0719d95e850f9fed`. Usage feature sources are unchanged by the later integration merges; incoming app tasks are qualified by the coordinator’s combined native bake. Offline runtime 3302 staging passed its archive hash, 11 Mach-O signatures and scratch smoke. - Native BEFORE and AFTER drives passed with inspected window captures: [paired Limits views](https://github.com/user-attachments/assets/abdd7cae-5266-442c-8617-32e30382c0f4), [provider choices](https://github.com/user-attachments/assets/6103435e-2304-475b-be6d-927758069935), filter persistence across Limits → Cost, and the 760px header. Both drives closed the app. Cost has no recorded sessions in this fixture; its capture proves the retained selection, not nonzero cost arithmetic. Server-side cache-first sources and reported workspace IDs use the embedded runtime landed in [#740](#740). The client accepts older responses without `source.refreshing`, `awaitRefresh` support or workspace IDs; keep-last-window and figure dimming still work. No framework gaps identified. Evidence is [attached through GitHub](#751 (comment)) and is never committed. This PR remains draft for coordinator review. Prepared with Codex; continues work begun in the prior Claude session. --------- Co-authored-by: Codex <noreply@openai.com>
Connections now shows the sixteen effective session permissions, and pairing links preserve the exact selected permissions. Standard selects all sixteen; Read only selects environment, files, diagnostics and terminal reading. Empty grants remain empty. Controls and RPCs follow their individual grants for settings, provider management, environment maintenance, previews, diagnostics/usage, files, source control and terminals. A terminal reader observes existing sessions with `terminal.observe`; the existing native terminal bridge suppresses input and resize, and the app disables creation, split and close controls. Upstream commits followed: `19108aa7b4` (#20432), `e9c3d950f0` (#9785), `456930a09d` (#17370), `cc41482df0` (#9791), `57b2418d4f` (#9790), `7175edcff4` (#9789), `321c6f9d26` (#9788), `2eda8ac6a3` (#9787), `28ce9d1c17` (#9786), at reference `9c161462c9`. The new standard exchange grant, permissions-first decoding, legacy compatibility and Permission update notice (`365aa87982`) already landed in #740. Server-side session lifetime enforcement comes from that merged immutable runtime pin; this PR presents its session records and retains the existing expired-session handling. | Acceptance | Result | Proof | | --- | --- | --- | | All sixteen pairing choices and exact custom grants | Live tree verifies sixteen choices; exact-subset regressions pass | [Pairing](https://github.com/user-attachments/assets/222073b9-7a66-42e9-afeb-38f7c72a4fef) | | Effective session permissions, including empty grants | Native connected session shows sixteen rows; empty-grant projection tests pass | [Session](https://github.com/user-attachments/assets/04b19f03-2775-4122-8fd9-f308cd6e5ef1) | | Each operation requires its own permission | RPC categories tested separately; mixed provider/settings patches covered | [Permission tests](https://github.com/ccheever/exact2/blob/64ac78a9e9c3483e1ef67161e55297866fb9b3e9/examples/t3-code/tests/connections/auth-permissions.test.ts) | | Read-only observation and UI | Live Read only preset checks exactly four grants; native bridge blocks terminal writes and resize | [Read only](https://github.com/user-attachments/assets/8c74848a-7917-4d02-b70d-ff90492ca40c); terminal suite: 52 run, zero failures, one optional scale skip | | Legacy notice and session lifetime | Foundational runtime and decoding already merged in #740; lifetime fields displayed | [Runtime foundation](#740) | Native qualification at `64ac78a9e9`: 88 local-backend tests passed; the complete visible-window terminal suite ran 52 tests with zero failures and one optional scale skip. Terminal assets, immutable runtime staging and final signed bundle passed. Native before/after captures below show the same 1280×840 viewport and isolated homes/ports. The final AFTER run uses a fresh named agent store; its journal has no 3773 requests, and the client is connected to its own 16494 backend. Source validation across integration updates (final head `127f82df7f`, target `6daa324d1c`): - Frozen install and generated sources passed. Strict app TypeScript, caps and whitespace checks passed at the final head. Full optimized Contract preflight passed at the preceding `05ff4825c` integration snapshot (36,372,882 bytes). - After adopting merged prompt links, 274 directly affected prompt/auth/transport/client tests passed with zero failures and 1,248 assertions across 16 files. ClientError context fields and bridge propagation remain intact. - The broad suite after the first integration merge passed **5,859 tests, 126,393 assertions**, with one inherited Files help-tag failure. The target's separately published guard fixes that failure; after adopting it and the Usage/banner updates, **624 affected tests passed with zero failures, 18,273 assertions across 62 files**, including the help-tag check and permission regressions. The preceding connections/terminal/settings/provider sweep passed 1,012 tests. - The native evidence qualifies frozen feature source `64ac78a9e9`; no native bake was repeated solely for these app-task merges. The coordinator performs final combined native qualification. - The `environment:maintain` checks remain in both focused and fleet server-update paths; newer Usage queries retain their individual RPC permission checks.    Known differences: none identified. Permission-denial tests retain explicit restricted grants. Existing positive fixtures now state the permissions their scenario uses. Evidence is kept outside git. Prepared with Codex; continues work begun in the prior Claude session. --------- Co-authored-by: Codex <noreply@openai.com>
…764) Provider settings now follow the selected environment and project scope. Project switches write checkout overrides; reset restores environment inheritance. Model favorites, visibility, and order use atomic environment settings, with a migration that preserves explicit empty server lists. The page also shows live installer progress, supports built-in model names and blank secret replacement/clear fields, and adds local ACP executable arguments and Muse Code. The model picker explains CLI-gated models, workspace discovery refreshes stale scans, and Pi editor answers retain literal text and whitespace. Usage includes Pi and Antigravity quota presentation. Scoped upstream changes at `9c161462c9`: | Commit | Implementation | | --- | --- | | `8ac6846a0b` [#17879](pingdotgg/t3code#17879) | Project provider switches/reset, all checkout overrides, composer availability | | `ff3a04a8eb` [#16958](pingdotgg/t3code#16958) | Installer progress/status and failure details | | `7b57b723d3` [#17307](pingdotgg/t3code#17307) | CLI-required model notices and Provider settings link | | `a1830915ec` [#16750](pingdotgg/t3code#16750) | Five-minute workspace scan TTL and clock-skew request bound | | `f845895271` [#16816](pingdotgg/t3code#16816) | Environment model preferences, atomic writes, legacy migration | | `b9ad3daf8d` [#18461](pingdotgg/t3code#18461) | Continuation default true; execution supplied by runtime #740 | | `8653c8f09b` [#20446](pingdotgg/t3code#20446) | Blank configured secret fields, replacement and explicit clear | | `ffb4af8d5d` [#18840](pingdotgg/t3code#18840) | Rename built-in models without duplicate custom rows | | `d6f47ff972` [#17082](pingdotgg/t3code#17082) | Muse Code driver, settings and official mark | | `9afde1c6db` [#17848](pingdotgg/t3code#17848) | Pi usage labels/charts; scanning supplied by runtime #740 | | `716357cbba` [#17530](pingdotgg/t3code#17530) | Antigravity quota ordering/colors; quota data supplied by runtime #740 | | `7b09ac7e00` [#17424](pingdotgg/t3code#17424) | OpenCode Go/Zen provider labels; existing qualifier stripping retained | | `9d029a1df2` [#16021](pingdotgg/t3code#16021) | Local ACP source/executable/literal arguments; execution supplied by runtime #740 | | `e8f5850b82` [#17206](pingdotgg/t3code#17206) | Literal prefilled answers, including whitespace and intentional empty replies | Acceptance: | Behavior | Result | Proof | | --- | --- | --- | | Project enablement and inheritance | Native switch writes a project override; environment provider remains enabled | [Native before/after](https://github.com/user-attachments/assets/a20cc522-7779-434d-8475-6c9b2f51c166) | | Shared favorites, visibility/order and built-in rename | Official settings RPCs use atomic mutations; native favorite/rename/hide pass | [Native states](https://github.com/user-attachments/assets/c6bf2a8b-f4b3-452d-845f-8ef8dcdba057) | | Sensitive fields | Configured secret input is blank; explicit clear reaches the official server | Same native states | | Progress, Muse, local ACP | Native progress text captured; one update completes; command arguments preserve whitespace | Same native states | | Literal prefilled answers | Production AppKit component preserves original text, then restores normal parsing | [Composer fixture](https://github.com/user-attachments/assets/b18e28d8-1a46-4278-ba94-c2c1c4036aaf) | | CLI-gated models, skills TTL, usage labels and continuation default | Focused semantic tests pass; runtime behavior comes from merged #740 | Checks below | | Fine permissions | Settings-only and providers-only sessions admit the correct writes on focused and fleet environments | 10 focused tests / 88 assertions | Native validation is frozen at `30813752db`; the shared before bundle is `4e522ea9ba`. The official isolated runtime handles settings, project overrides, secret clear and local ACP persistence. Only the model catalog and installer lifecycle are synthetic. No provider login, installer or local command was executed. The registry lookup is unavailable in both captures; manual local ACP creation passes. The literal comparison uses the real AppKit composer in a focused fixture, not a Pi conversation. One initial AFTER attempt missed progress because its 30-second fixture had finished before inspection. One source-unchanged retry held progress until capture and passed all assertions. Both apps and the 94-test composer suite exited; the isolated server/proxy are stopped. Integration adopts `72c487618f`, including #763 permissions and terminal read-only behavior. Favorites/hidden/order/project overrides use `settings:write`; provider CRUD/configuration/auth/install retain `providers:manage`. Native pixels and Cargo results qualify the frozen feature snapshot; the subsequent integration and permission gates are qualified by the final source checks below, without another native bake. Validation: - Final integrated app Bun suite: `bun test --timeout 30000 examples/t3-code` — 5,966 passed, 0 failed; 128,214 assertions across 392 files (42.08 s). - The first default-5-second integrated run recorded five subprocess timeouts and one stale usage-provider count. The count now includes Pi; the final run above passes every case. - Fine-permission regression subset: 10 passed / 88 assertions; checks actual outgoing RPC admission and target environment. - Generator, strict app TypeScript, whitespace and staged caps pass. - Optimized full Contract preflight: 112,149 nodes / 36,798,271-byte plan. - Frozen native bundle built and signed successfully; packaged runtime manifest matches `0.1.1-nightly.20261018.3302` and pinned SHA-256. Offline staging, 11 Mach-O signatures, version and isolated ready smoke pass. - Frozen Rust library tests: 25 data + 28 macOS tests pass. Native AppKit composer suite: 94 tests, zero failures. - Native baseline and corrected AFTER driver assertions pass; attached screenshots were inspected. No Exact framework source changed. Provider logins and equipment-only checks are outside this task's scope. Prepared with Codex; continues work begun in the prior Claude session. Coordinator review: final copy repair at `6908c3a5c7c6a63cfb000cc94ee64a3da7cd2945` describes provider-instance management separately from settings-only favorites and project overrides. Independent source review and three evidence composites passed; 35 focused tests / 186 assertions, strict TypeScript and caps passed on this final head. The full 5,966-test result above qualifies `56f6c08cc5`; frozen native proof remains `30813752db`. --------- Co-authored-by: Codex <noreply@openai.com>
) Settings → General can install or remove the desktop `t3` command. The app writes an executable launcher in `<T3 home>/bin`, prefers a writable command directory already on PATH, preserves foreign commands, and warns when another `t3` runs first. Its launcher preserves arguments and `T3CODE_HOME` overrides and passes `T3CODE_CLI_PATH` to the bundled CLI and backend. Installed-backend admission and CLI availability share the exact distribution-only handler plus registered-scheme predicate. No unwritten resource marker is needed; ordinary development and `--release` builds retain the isolated home/port guard. Desktop bootstrap credentials derive from a native in-memory secret in twelve-hour HMAC windows. The server receives the secret through its stdin bootstrap envelope; fresh exchanges derive the current token after suspend. Diff previews preserve the project's cwd without retrying at the server's cwd. Project icon writes and the native picker admit `.icns`; server conversion is supplied by #740's immutable runtime. Upstream commits followed at `9c161462c9`: `0678e4e23d` (#16683), `73e87f683a` (#16676), `3bfbc37dbf` (#17351), `5afe18eaf9` (#16275), `cfbd1457ad` (#17724), `de49d637d4` (#17149). Their server-side portions come from the merged runtime pin. | Acceptance | Result | Proof | | --- | --- | --- | | Install/remove, PATH ordering and foreign command preservation | Native executable/filesystem fixtures pass | [Native tests](https://github.com/ccheever/exact2/blob/c9b1f2e41aa5bba81675683ab7adc49dda34ef45/examples/t3-code/macos/tests/local-backend/cli.swift) | | Launcher arguments, home override, CLI path and moved app | Real launcher subprocesses pass, including Unicode and shell metacharacters | Same native tests: three focused launcher cases pass at final source | | Installed backend and distribution-only CLI availability | One metadata predicate requires the exact handler and scheme; marker-only, incomplete and wrong metadata remain refused | [Policy](https://github.com/ccheever/exact2/blob/c9b1f2e41aa5bba81675683ab7adc49dda34ef45/examples/t3-code/modules/apple/T3LocalBackend.swift), sixteen native policy/launcher/inspection cases pass | | Twelve-hour rotation and secret envelope | Native known HMAC vector, boundary, secret separation, dynamic clock and stdin tests pass; real app connects to the official server | [Live connection](https://github.com/user-attachments/assets/5541c209-39f6-431b-ac82-b88eb71454cd) and native tests | | Project cwd remains authoritative | Actual client command makes one request and preserves its error | [Diff regression](https://github.com/ccheever/exact2/blob/c9b1f2e41aa5bba81675683ab7adc49dda34ef45/examples/t3-code/tests/diff/diff-opens-on-changes.test.ts) | | `.icns` project icons | Project-update validation and native picker admission pass | Native picker fixture and immutable server conversion from #740 | Validation: - Final integrated source `c9b1f2e41a` includes reviewed provider integration `4d312fec8f`. Generated assets, **891 affected tests with zero failures (5,431 assertions/72 files)**, strict app TypeScript, full Contract preflight (36,911,323 bytes), caps and whitespace passed. - All app Swift plus backend/media-preview inspection fixtures compiled at this final head. **Sixteen focused native policy/launcher/inspection tests passed** with temporary homes and metadata dictionaries. They cover complete/missing/wrong metadata, marker-only backend refusal, packaged defaults and explicit home/port overrides, virtual port exhaustion, launcher execution, and legacy inspection compatibility. No packaged app was launched against the real home/3773, no lane metadata was altered, and no OS scheme was registered. - Frozen feature snapshot `4c791b6bd`: full Bun suite **5,576 passed, zero failures, 125,211 assertions across 359 files**. Frozen install/generator, strict app TypeScript, optimized Contract preflight (34.4 MB plan), caps and boot passed. - Native local-backend/CLI suite: **94 passed, zero failures**, including six new CLI/bootstrap/icon cases. The subsequent `6af0045d5` adjustment changed only the launcher's internal shell variable to `t3_home`; all app Swift recompiled, three focused real launcher tests passed, and caps/whitespace passed. No full native rebake was needed for that variable rename. - Terminal assets, offline runtime staging and signed native bundle at `4c791b6bd` passed. The bundled 80,665,649-byte official archive independently hashes to `6bd4ba617d321f31ac0c4bffe154ab14bf9ed8d67a7c244dcbda4c5f9581c521`; staging verified eleven Mach-O signatures, the actual CLI version and isolated startup. - Matched native BEFORE/AFTER passed on their first attempts, at 1280×840 with fresh isolated stores and homes. The search entry changes from absent to present; AFTER connects to the real `0.1.1-nightly.20261018.3302` server at port 16498 with the new secret envelope. BEFORE uses the required baseline bundle at port 16499. Their 4,052/3,145-entry journals contain no 3773 requests. Both apps closed and their PIDs are gone.   The runtime version difference in the second pair belongs to #740; this PR's verified change is successful startup/authentication with the rotating secret envelope. Development bundles intentionally hide Install, so launcher mutations are qualified by native filesystem/subprocess fixtures rather than forcing distribution metadata into a lane build. Known differences: Exact ships the server as an executable rather than Electron's Node entry, so the launcher invokes the verified installed executable directly. The packaged-local-home blocker is resolved by the shared metadata predicate, using #758's approved distribution-only handler. Existing home/port overrides and defaults remain unchanged. A legacy `distribution.json` marker alone no longer admits backend/browser home access; it remains an additional Web Inspector-disable condition, preserving old release inspection behavior and production receipt handling. The resolution is recorded in `clone/issues/cli-and-tokens-packaged-local-home.md`. The existing isolated real-bootstrap images qualify frozen bundle `4c791b6bd`; the shared packaging predicate is separately qualified by the final-head pure policy tests, so no full bundle rebake was needed. No framework files change, and evidence stays outside git. Prepared with Codex; continues work begun in the prior Claude session. --------- Co-authored-by: Codex <noreply@openai.com>
## Request Source control settings now choose a GitHub account per host and store per-host tokens. GitCafe joins the supported clone and publish hosts. Pull-request controls follow host capabilities and item-specific permissions, including confirmed source-branch deletion after merge or close. ## Changes and reasons - Share host names, clone transport, publish placement and quick-action capabilities across consumers. New projects can publish to any ready host whose signed-in account identifies the repository owner; Bitbucket/Azure still use the existing publish dialog to supply a workspace/project. - Replace the separate Bitbucket form with host-defined fields, including GitCafe’s token. Saved secrets remain write-only; patches retain other hosts and redacted secrets. GitHub hosts can select a stored login, follow the active login, or be disabled; unavailable pins and environment overrides are explained. - Honor explicit edit/resolve permissions before login inference, report routed PR state back to the originating environment without delaying the read, and add a destructive confirmation for branch deletion. - Use the `t3` branch prefix and expose the scoped option to omit agent credits from merge messages. Follows T3 Code `9c161462c9`: `9ac8f33f16` (#16322), `4f63275ac7` (#17901), `65d33177b7` (#17681), `24238fee32` (#16192), `2afe87ea4b` (#16220), `9b40d37463` (#17774), `c3243f0508` (#17667), `a4c8745abe` (#17860), `7bc7328042` (#17746), `339179f50a` (#19257), `6d5ea190a4` (#17729), and `c8a603307c` (#17756). Each scoped change is represented by the settings, host definitions, PR consumers, or existing publish flow extended here. ## Verification Final source: `68fb851a38176de7e7251259bad92f3fe8444d7e`, integrated with `6d90af6f06`. Native pixels qualify frozen `3fb6925fdd89130dcea5dc24cbd244c662bf2b1b`. The new-project host picker sits beside the publish toggle. Integration retains model traits, grouped settings, PR search badges, inline merge confirmations, and the separate destructive branch-deletion dialog. All 5,984 app/tool tests pass, along with strict TypeScript, caps and Contract preflight. Selected background scope now supplies discovery, credentials, ordinary row values/providers/label/grants, fetch interval and checkout identity; it never falls back to the focused connection. Pinned Bun 1.4.2. | Acceptance | Result | Proof | |---|---|---| | Account grouping, pin reset, host enablement and stale-secret retention | Pass | [Host settings cases](https://github.com/ccheever/exact2/blob/68fb851a38176de7e7251259bad92f3fe8444d7e/examples/t3-code/tests/settings/source-control-hosts.test.ts) | | Write-only token fields, unchanged-secret blur, scoped merge-credit preference | Pass | [Settings and input cases](https://github.com/ccheever/exact2/blob/68fb851a38176de7e7251259bad92f3fe8444d7e/examples/t3-code/tests/settings/source-control-hosts.test.ts) | | Ready-host new-project targets and GitCafe/GitLab checkout commands | Pass | [Host and checkout cases](https://github.com/ccheever/exact2/blob/68fb851a38176de7e7251259bad92f3fe8444d7e/examples/t3-code/tests/settings/source-control-hosts.test.ts) | | Host-specific quick actions; item edit/resolve permission | Pass | [Quick-action cases](https://github.com/ccheever/exact2/blob/68fb851a38176de7e7251259bad92f3fe8444d7e/examples/t3-code/tests/pull-requests/pages-pr-quick.test.ts) | | Branch deletion requires closed/merged state, host capability and viewer permission | Pass | [Action and destructive-dialog cases](https://github.com/ccheever/exact2/blob/68fb851a38176de7e7251259bad92f3fe8444d7e/examples/t3-code/tests/pull-requests/pages-pr-actions.test.ts) | | Routed PR state reaches the origin without waiting for reporting | Pass | [Routing cases](https://github.com/ccheever/exact2/blob/68fb851a38176de7e7251259bad92f3fe8444d7e/examples/t3-code/tests/pull-requests/pages-pr-routing.test.ts) | | App/tool tests on initial implementation | 5,343 pass, 0 fail, 367 files | `bun test --timeout 30000 examples/t3-code` | | Final integrated app/tool suite | 5,984 pass, 0 fail, 394 files; 128,300 assertions | `bun test --timeout 30000 examples/t3-code` | | Selected environment ownership | Pass | Six regressions cover remote values/grants/checkout, offline focus, missing selection and owner cache; actual real-server `sourceControlPage` + `restCommand` probe reads gh 2.81.0 and writes Bob→Alice with `orchestration:read settings:write` only, zero focused transport calls and unchanged focused config. | | Strict TypeScript, caps, whitespace | Pass | App strict typecheck; caps; `git diff --check` | | Full Contract plan | Pass | 113,206 nodes; 6,363 slots; 30 derives; 79 resources; 10,671 actions | | Terminal assets and new runtime | Pass | Archive hash verified; 11 Mach-O signatures; isolated live startup on 16893 | | Actual new-server host settings persistence | Pass | [Real-server readback](#760 (comment)) on `4347bc735`, through the exact app `hostCredentialsCommand` at that source: selected account/enablement, two GitHub token hosts, GitCafe token, and Bitbucket email/API token survive restart; all secrets read back redacted. Discovery uses a synthetic local gh executable with two fixture accounts. | | App data Rust tests | 29 pass, 0 fail | Consumer workspace; host-dev; aarch64-apple-darwin | | Signed native bundle | Pass | Frozen `3fb6925fdd`; client `93fbc4677384330f3c8b5972`; deep codesign verified | | Native before/after and actual picker persistence | Pass at frozen `3fb6925fdd` | [Window comparison and restart readback](#760 (comment)): actual picker chooses Alice and restart retains it. | ## Risks and dependencies Depends on merged runtime foundation #740. No Exact framework changes or blocker found. The selected-page owner repair, palette help-tag and branch-dialog focus reconciliation after the frozen capture are covered by final tests/Contract and actual RPC readback; final combined native qualification remains coordinated separately. App account operations use isolated synthetic fixtures only; normal GitHub CLI use here publishes this PR.  Prepared with Codex; continues work begun in the prior Claude session. --------- Co-authored-by: Codex <noreply@openai.com>
…766) Storage can run cleanup on selected machines and explain each removed, kept or failed item. Worktree settings add a folder, local-change policy and zero-day settled-thread retention. Threads with pull requests can stay active; Stop ends a PR watch even before the first run. Project actions can run on settle, and scheduled tasks can accept signed webhooks with delivery details. Task: `storage-settle`. Base: `daehyeon/t3-code-main`, including landed runtime #740 and machine settings #750. Reference: T3 Code `9c161462c9`. App files only; framework sources are unchanged. | Scoped upstream change | Result | Proof | | --- | --- | --- | | `0caa95d6eb` [#17563](pingdotgg/t3code#17563), `fa1184d29e` [#19749](pingdotgg/t3code#19749): cleanup and orphan reports | Delete now uses each selected permitted transport; Last run shows per-item reasons, sizes, files and omitted results. Orphans retain full paths. | Focused rules/scope tests; [Real3302 RPC comparison](#766 (comment)) returned 0 removed, 1 kept, 0 failed | | `21bedfb175` [#15208](pingdotgg/t3code#15208), `65d390fc52` [#19437](pingdotgg/t3code#19437), `1024941575` [#16231](pingdotgg/t3code#16231): keep rules, settled retention, database notice, worktree location | Capability-gated controls preserve per-checkout inheritance. Database status streams show a copyable offline command when reclaimable space reaches 1 GiB without incremental vacuum; dismissal persists per machine. | Zero-day/mixed-scope/stale-target tests, database-threshold/dismissal tests; real server settings round-trip | | `bf8ffe81a6` [#14642](pingdotgg/t3code#14642): keep PR threads | Project-scoped Keep threads with a PR requires auto-settle and support on all selected machines. | Scope planner and settings tests | | `207f6a10b0` [#16204](pingdotgg/t3code#16204), `51f7f77f87` [#16095](pingdotgg/t3code#16095): PR watches and Stop | Never-run watched threads stay Working. Stop sends watch=false for each visible active PR. The runtime from #740 ends watches when threads settle. | Actual composer-command and sidebar projection regression tests | | `079e4bccdc` [#16290](pingdotgg/t3code#16290): actions on settle | Setup and settle roles remain independent. Settle-only actions stay reachable in Actions and never become the primary Run button, including a remembered selection. | Role transfer/import/primary-action tests; [Real server retained runOnSettle=true](#766 (comment)) | | `7dfb86a32b` [#15085](pingdotgg/t3code#15085), `ea4b44343d` [#15088](pingdotgg/t3code#15088): webhooks | Editor supports placeholders, signature fields, write-only existing secrets, age limits, URL copy/rotation confirmation. Deliveries show outcomes, redacted request, missing fields and rendered prompt. Both dialogs trap and restore focus. | Validation/round-trip/delivery tests; [Real signed-webhook fixture](#766 (comment)) rejected an unsigned POST with 401; [signed request](#766 (comment)) returned 202, verified the signature and rendered `{{body}}` | Final source: `d1c3ad34b964fd486fcd367fa37ce648b6303008`, including qualified app integration `70699d0379`. The two manual merge resolutions retain all three environment-wide keys (`worktreesDirectory`, `favorites`, `providerModelPreferences`), Storage's keep-PR default of false and the incoming restart-continuation default of true. All changes relative to that base are app files. - Generated inputs refreshed with pinned Bun 1.4.2. Final affected checks pass 539 tests / 4321 assertions across 35 files, strict app TypeScript, caps and diff checks. - The task-owned Contract compiler was rebuilt against this live SDK. Both existing ambient-analysis integration tests pass. Final merged app preflight passes: 6391 slots, 30 derives, 80 resources, 10731 actions, 118308 nodes, 49747 regions, 37815496 bytes. No deleted-worktree SDK path or ambient bypass is used. - Earlier broad validation on `9f4c6316b` passed 3807 tests / 41936 assertions across 256 files. Terminal-host build and offline 3302 staging passed, including archive hash, SHA256SUMS, 11 Mach-O signatures and scratch smoke. The coordinator owns the final combined suite/native qualification for incoming app tasks. - [Isolated real-server grants](#766 (comment)) confirm `settings:write` alone runs cleanup while `environment:maintain` alone is denied. Per-target UI/dispatch tests independently cover the same gate. The [signed request](#766 (comment)) returned 202, verified the signature and rendered `{{body}}`; the unsigned request returned 401. - The first native task-editor drive exposed five persistence-only fields leaking into the strict public resource shape. Repair `64876e527` projects only declared editor and webhook fields. Its exact-key regression derives the public fields from the actual Contract declaration and fails before the repair. Expanded repair checks passed 83 tests / 327 assertions; these regressions are included in final affected checks. The final directory guard `1b69d667df` keys the draft occurrence by scope, mixed state and saved path, matching pinned upstream’s input identity. An actual Contract/Runner probe importing the product StoragePanel reproduced stale display after switching machines, Reset, value replacement and mixed-state changes; an edit then targeted machine B with machine A’s stale path. The repaired source passes nine runtime assertions, including scope-only changes with matching paths and preserving an unsaved edit during an unrelated busy update. The coordinator independently reviewed the two-line patch and reran the probe with no findings. This guard is source-qualified after the frozen native `64876e527` proof; the final combined native bake will cover it. Native evidence is attached with exact snapshot qualifiers: | Phase | Source and result | | --- | --- | | Shared BEFORE | Clean `4e522ea9ba67c7599fc69f5013299ad8cca7f4ca`, built `2026-10-18T13:26:06.707Z`, independently verified from this bundle's Info.plist and executable. SHA-256 `ba0d0ba66bf413b6a5b0d599478c106de988ec8d74517d6fd5242556e5604320`. | | Storage AFTER | Signed `a8565502297a0c3ece4c35e087217ebdaede91f8` (Cargo data tests 29/29); [independent native comparison](#766 (comment)) proves the connected page, location, Any local files, 0-day settled retention and Delete now → Last run / 0 removed / 2 kept. | | Repaired webhook AFTER | Clean signed `64876e527242a7308b60896bcc7d158db20457ce`, executable SHA-256 `a0cd91f5fc8777cf5ba5aff459beaa25c057afcbf44dbf2980d59647bac59717`; [18 assertions and six inspected window captures](#766 (comment)) prove the real editor, signature/age/blank existing secret, Copy preserving its draft, Rotate → Cancel preserving the draft, and rejected/accepted delivery details with redaction, verified signature and rendered prompt. | The webhook drive used authored ArrowDown/Enter input for Actions/Edit/Deliveries and native taps/text elsewhere. A preceding pointer tap left the popup closed; pointer-menu acceptance is not claimed. Rotation was cancelled, so URL replacement was not exercised in this drive. Relative-age labels reflect the agent's virtual epoch versus fixture timestamps and were not asserted. The native source qualifiers above are retained after integration; the incoming app tasks were not rebaked in this lane. The isolated fixture uses port16771 and its own home under ignored target/. Its provider is the local ACP stand-in; no real provider account is used. Evidence files are attached through GitHub and are never committed. Prepared with Codex; continues work begun in the prior Claude session. --------- Co-authored-by: Codex <noreply@openai.com>
## Request Add the guided pull request review tour from T3 Code `1f6df6bf1f` ([upstream #18124](pingdotgg/t3code#18124)), following the pinned `9c161462c9` implementation. Readers can follow a change in reading order, discuss selected lines, and finish in the existing review composer. ## Changes and reasons - Add the responsive Guide tab, stop rail/picker, attention callouts, old/new excerpts, lettered notes, file accordions, reading progress, and keyboard navigation. - Keep generation, refreshes, completion watches, and notification open targets bound to the original environment. Retain the previous guide while rewriting and isolate tour diffs from Code's commit/whitespace scope. - Share pending review comments with Code, retain Guide when asking an agent, reveal files across paged diffs, and open review mode on Finish. - Add inherited project review-guide instructions with trimmed edits, reset, search, and untouched mixed-value handling. ## Verification Implementation: `4f833fc97d` after fixed integration `6418f138c1`. Native feature acceptance is frozen at `920d67a50da3e6e5cac0f9f2ff8cd173f6608030`; the integration retains Code Find controls beside Guide reveal/state/routing. No task behavior changed in the conflict resolution. | Criterion | Result | Evidence | |---|---|---| | Local TypeScript and source budgets | Pass: strict app TypeScript, caps, staged whitespace | Local checks | | Full Contract compilation | Pass: 152,837 nodes, 7,684 slots, 13,284 actions | Local standalone optimized compiler | | Real immutable 3302 generation | Pass: exact app handlers observed Running, retained the previous guide, decoded 3 normalized stops, and made zero focused-Local calls | [Actual RPC and restart readback](#781 (comment)) | | Actual server persistence | Pass: generated guide remained byte-identical after the owned runtime restarted | [Actual RPC and restart readback](#781 (comment)) | | Full Bun suite | Pass: 6,084 tests, 128,773 assertions across 403 files at c793; final Storage key union:322 affected Guide/settings tests, 2,746 assertions | Local checks | | Signed native build | Pass: frozen `920d67a5`, client `2bc0ad08d2bcf1280a67076d`; deep codesign verifies | Local signed bundle | | App data Rust tests | Pass: 39 tests after integration678 | The final declarative Storage union preserves this source; frozen native920d had28/29 due the centrally repaired stale icon assertion | | Native before/after acceptance | Pass: real old-side source/expansion, shared pending comment, platform J/K, Finish read3/Review mode, Ask unsent draft with Guide retained | [Native images and assertions](#781 (comment)) | The runtime fixture uses real local Git commits and the unmodified pinned runtime. Its provider and GitHub API responses are synthetic and confined to owned local processes. No machine credentials or real GitHub writes are used. ## Native evidence    ## Risks and dependencies Runtime #740 and source-control-hosts #760 are merged prerequisites. No framework or app-owned Swift changes. Native evidence qualifies frozen920d; final integration is separately covered by the complete source checks. No review was submitted and no question was sent. ## Next action Coordinator review of the final integration delta; keep this PR a draft. --------- Co-authored-by: Codex <noreply@openai.com>
## 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](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.  ## 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>


The macOS clone embeds T3 Code
0.1.1-nightly.20261018.3302and connects with the new permission and settings protocol. Pairing now requests all sixteen standard permissions and retries the legacy grant only when an older server rejects an unknown scope. Previously, a successful pairing with the new server could still reject file browsing and settings writes.The client reads explicit session permissions, keeps the old-server parent mapping, shows the re-pair notice, skips retired preview automation RPCs on
serverBrowserhosts, drops unknown turn-item and icon variants, and applies pull-request link updates to open threads. Provider settings use instance mutations, and Bitbucket writes preserve the complete source-control host map and its masked secrets. The supervisor stops restarting after exit 78, reports the unavailable-home error, allows five seconds for termination, and waits 32 minutes for a connected server update. A start requested during an intentional stop waits through teardown and starts immediately, without treating the old SIGKILL as a failed startup.Upstream reference is
9c161462c9; the runtime archive is release commitd0918f1659f4c19172796c8d1910ca6e4bc18b51.28ce9d1c17pingdotgg/t3code#9786,2eda8ac6a3pingdotgg/t3code#9787,321c6f9d26pingdotgg/t3code#9788,7175edcff4pingdotgg/t3code#9789,57b2418d4fpingdotgg/t3code#9790,cc41482df0pingdotgg/t3code#9791,365aa87982pingdotgg/t3code#10298,19108aa7b4pingdotgg/t3code#20432orchestration:operate, which is still a current permission.4cf8243f85pingdotgg/t3code#19337ac8e9453capingdotgg/t3code#153289f61ba6741pingdotgg/t3code#15907,ca3f9738c3pingdotgg/t3code#15951,5c03ced3bepingdotgg/t3code#161184d73e1d5cdpingdotgg/t3code#192482c1160783epingdotgg/t3code#17300,4f63275ac7pingdotgg/t3code#17901,d514a8c617pingdotgg/t3code#18505sourceControlHosts.570542662apingdotgg/t3code#16102,eeaac49a9dpingdotgg/t3code#19291,3417bc3856pingdotgg/t3code#193119d1ac46b34; Connections shows the pinned version at isolated lane port 164370.0.46-nightly.20261005.2667: new request rejected, legacy retry succeeds with the same credentialBefore/after protocol evidence uses the old client's five-scope request and the new client's sixteen-scope request against the same isolated new server. Both token exchanges succeed. Before,
filesystem.browseandserver.updateSettingsfail withEnvironmentAuthorizationError; after, both succeed. These changes affect the protocol rather than layout.Verification:
--jobs 2; final native bundle compiles the macOS app and Contract too.9d1ac46b34; the lane uses its own T3 home and port 16437. Validation details.Known differences: agent browser control on new servers falls back to the server browser, which the clone cannot display yet. The concrete framework gap is recorded in the coordinator's
clone/issues/browser-cdp.mdand blocks taskserver-browser-surface; this PR intentionally adds no CDP implementation or framework changes. The new source-control-host account management screen and complete per-permission UI gates belong to taskssource-control-hostsandauth-permissions.Prepared with Codex; continues work begun in the prior Claude session.