Repository navigation
Fork workspace backlog: stable reconciliation, attention, TWS and tags #1
Description
Fork workspace backlog
This issue is the canonical backlog for the fork's local-first multi-machine
workspace. It tracks maintainer work in this fork, not an upstream feature
proposal. Stable upstream v0.0.42 reconciliation is accepted; its direct
implementation dependents can now become ready.
Goal and boundaries
One web/desktop/mobile frontend connects to independently authoritative
environments. Environments own native provider sessions, credentials,
filesystem and durable state. Reuse upstream connection ownership, canonical
repository grouping and scoped routes; do not build another orchestrator.
Add environment-owned current attention, one frontend inbox, optional
frontend notifications, TWS secondary grouping and thread tags. Server-only
machines remain notification-silent. Relay/APNs/FCM are optional delivery,
never state authority.
Current baseline
- Latest published source fix:
fix/copilot-turn-lifecycleat
1af644681d931d77fdbda8a014d7c28fdd9ffdab. [COP-OBS-01] Keep Copilot turns working until native work completes #20 is complete: Copilot remains
working through tool/model iterations until root native session.idle.
This is the TWS/attention integration product plus the three-file lifecycle
fix (adapter, tests and provider guide). All six complete maintained roots
were reanchored on a clean first-landing history and verify. Product bytes
match the tested integration exactly. Prior branches are preserved; no main
merge, PR or release. Refreshed [PKG-01] Prepare native fork preview packages for macOS and Windows/WSL #17 packages now include this fix:
0.0.42-preview.20261003.2, buildbc9eeb9a6f5e3fe2e6d58d9c1b14d5ed93d6c2be.
This revision corrects the WSL account-home probe identified by receiving-host
feedback; confirmation of installed Windows/WSL behavior remains pending. - Preserved original branch:
phase1/foundation,2f39e594d205367367d00178ded4c3394ed073bc. - Original upstream: stable v0.0.38,
c0995d2eaf8ec787b3318ed1169ae266ed1529f8. - Accepted working baseline:
reconcile/v0.0.42-phase0,
02abd6f050e22cb872dafa64806cba698beab7c5, on immutable upstream v0.0.42.
No merge into the preserved original branch or live-data upgrade was performed. - Approved reconciliation target on 2026-09-22: stable v0.0.42,
719a76ca1dbf5490f1aa33ffb9966301e02be9a9, published September 16.
The exact stable v0.0.41 tag/release remains absent; the maintainer approved
replacing that waiting gate with v0.0.42. - Isolated local branch:
reconcile/v0.0.42-phase0, metadata-only seed
3b351b8fc8415dd07b8466f93a4fef6ed28669ae, followed by reachable retirement
satisfaction atb0b7a42934c39980bf25ab9d6740ae2e8c532477. - First retained root,
copilot-cli-provider, landed at
2489aedd76d8fddff4cb3df527df70e3eb4312cc. session-searchlanded at3ddfad118e062959f6cabbe0c4bee1f791081578.
A separate Copilot SDK notice child landed at
f6851c504353c0c02d5e18a1d152b6fcde390244, restoring the strict web build.
The foundation/migration bridge landed at
70d71759385de7a2b62b4d552f0290eebd33b804.
Payload pruning landed ate4aaa9051dddc497739b54d0cca374c6029800aa.
WSL executable/cache readiness landed at
578a2add493d2654a153310aa4827eab6c7aa8b6.
Exact generated-stage closure landed at
fc01e75770e4b92c4a72d29cc58d612894a5a995, with its complete canonical
patch re-attested at77e0b48ab79995ec3d18ed1c28733ecb4ef5044e.
The three packaging roots are now superseded bycopilot-runtime-packaging,
genuinely replayed and landed at8400fe53cd5208d033b01a07f347b8b3a104ab0a.
Consolidation tip was6f4f49189cad1ac4dd9fb817053760248e1f092f.
All five maintained roots verify; the DAG has zero violations. Source bytes
and all 66 historical packaging artifact files are unchanged by consolidation.
The two overlap findings are resolved. The tool gap is reported separately in
verify: define overlap verification and consolidation for independently landed features tesserapatch#25 after duplicate review.
Packaged testing then found/fixed search dismissal from button focus at
06fb8876807cd02fce21e49295515ad2f0aebfd7; all five
maintained roots verify. Foundation keeps search as approved soft ordering.
Rebuilt Mac/Linux arm64 native runtime and SDK/CLI continuity gates pass;
Mac integrated approval, restart/native resume, search and PTY also pass.
The first Windows receiving run stopped on two fixture portability failures
before packaging (222 passed, two failed, seven capability skips). These are
repaired at current clean product tip
02abd6f050e22cb872dafa64806cba698beab7c5, without changing runtime or pins.
All five roots still verify; the nine-file gate passes on Mac/Linux.
Native Windows/WSL passed a fresh no-skip receiving run through the published branch
validation/v0.0.42-platform-qualificationat
1c2caea6195f4a88b2641525d197fe671ece30f1. Rustup PATH fixes are included.
Receiving run20260926T133913Z-ab83c2passed 20 automated, 14 integrated
and 6 cleanup gates. The whole Windows app is 59/80 files; both real T3
environments preserve native sessions after restart and recover from the
intentionally invalid WSL configuration.
The maintainer accepted the measured cost as one over-budget stable
reconciliation: 35 versus 33 carried primary-family files, but 12 versus
six conflict paths. Thresholds are unchanged; Orca re-evaluation stays at
three consecutive over-budget updates or another documented trigger.
No PR or workflow was created.
The validatedphase1/foundationbranch remains untouched.- Applicability research target:
4a4c6dd2adc350a68ba18bb28b24b5a7e4660dab. - Prior Phase 1 work is complete; that does not qualify a future stable port.
Ready implementation
ATT-01 / #3 is implemented locally on phase2/current-attention at
6cc650d507d3ff80e23919d687fbc2920497da5f (source bbbaf1c50).
It extends the existing Foundation root with fork migration 46 and replayable
current approval/input state, leaving the audit and clients unchanged.
All five maintained roots verify; no push, PR or live database upgrade.
The accepted stable qualification remains at 02abd6f, not this new slice.
ATT-02 / #4 is implemented locally on phase2/thread-awareness at
d701ac195d8f7eb35f750e47747bebc073dac545 (source 21de9d720).
It adds accepted provider lifecycle evidence, fork migration 47, scoped
failure/disconnect items and bounded thread summaries in the same Foundation
root. Native callback requests resolve by matching lifecycle; message-mode
questions remain answerable. Client-only connection loss is not canonical
provider loss. All five roots verify; no live data, push or PR.
ATT-03 / #5 is implemented locally on phase2/attention-sync at
5d5c9380b411848940057f31610c105f10d30392 (runtime source 490cf0292).
It adds the authenticated owned snapshot/replay/live stream, fork migration48,
bounded derived delivery state, signed scope-bound cursors, explicit recovery
and a shared client staging reducer. All five roots verify. No UI,
environment aggregation, notifications, push or PR.
ATT-04 / #6 is implemented locally on phase2/attention-aggregation at
c87189e978856b8fd6043f42e296d2cf312cb6cc (source ddb58554b).
It adds one shared registry-owned attention workspace, independent scoped
caches, atomic fences, explicit partial/stale counts, deterministic filtering/
ordering, authorization/removal eviction and advisory-only relay hints.
Web/desktop and mobile export lazy shared state; inbox UI remains #7/#15.
The full 71-path Foundation root and all five maintained roots verify.
No provider/server changes, live data, notifications, push or PR.
ATT-05 / #7 is implemented locally on phase2/attention-inbox at
d7d039d261191ecb035f2f0582d6dc4cdffe4422 (UI source baf051d96).
It adds the virtualized web/desktop inbox, persistent actionable-thread badge,
scoped filters/navigation, current/legacy/Settings/palette/custom-binding entry
points and reversible device-local seen revisions capped at 2000.
The new separate attention-inbox tpatch root retains all 16 paths; all six
maintained roots verify. Parent canonical intent is unchanged.
An approved isolated browser pass covered 2402 items with 14 rendered rows,
one attention stream, no pre-navigation thread detail, persisted seen state
and offline/reconnect behavior. No live data, OS notification changes, push or PR.
ATT-06 / #8 is implemented locally on phase2/attention-notifications at
d24e4a527c895426889df2a2beb74acd02a25d58.
The existing notification coordinator now consumes replay-safe canonical
eligibility with client-local category/mute/quiet-hour policy, static payloads,
visible delivery failures and scoped offline retry routing. Legacy detection
is exclusive fallback for explicitly unsupported environments.
The maintainer approved consolidating ATT-05 + ATT-06 into the 30-path
attention-notifications root after the old inbox parent/replay-anchor gate
became ambiguous. Historical inbox artifacts remain superseded, not rewritten
to pretend their old verification passed. A genuine full recipe replay at
0e412959124074776c7ed926f9081636eb582c6e established exact product equality.
Foundation retains its complete 73-path shared-state intent; all six maintained
roots verify and the DAG has zero violations. Final focused run: 241 tests.
Approved browser checks used controlled transport/notification stubs, not real
OS alerts or provider turns. No live data, push or PR.
TWS-01 / #9 is implemented locally on phase2/tws-context at
982929e9323f00ded5c7ca943f22a0bcef669a6f.
TWS is an optional integration, off by default per environment, with an
Integrations switch and complete disabled bypass. It adds typed public topology
normalization, coalesced read-only refresh, scoped coverage, revision-safe
logical/execution context and fork migration 49. Client grouping/tags remain
later slices. Foundation retains all 98 paths; client attention was genuinely
replayed on the updated parent, preserving prior branches instead of merging
obsolete source anchors. All six maintained roots verify; DAG: zero violations.
Focused gates, scoped typechecks/lint/build and approved isolated settings
verification passed. No live data, TWS mutation, provider turns, push or PR.
The attention and tag discovery specs are complete. This preparation turns
them into bounded implementation issues and tightens synchronization and TWS
lifecycle semantics. A ready specification is not implemented product code.
Pre-tag preparation completed on 2026-09-14: scoped issues published, protocol
and TWS lifecycle decisions tightened, and target-independent retained-root
intent prepared. All seven existing root/fixture bundles remain intact; no
recipes or lifecycle states were regenerated. The readiness addendum in #2
records stable-target SDK, migration, stale-search-recipe and dependency caveats.
Linked implementation slices and their dependencies are maintained below.
Refreshed native preview packages for #17 are ready at build commit
bc9eeb9a6f5e3fe2e6d58d9c1b14d5ed93d6c2be, branch
build/fork-native-preview-20261003-r2, version 0.0.42-preview.20261003.2.
They use fixed product 1af644681 plus the isolation overlay and its WSL
home-resolution repair.
Mac arm64 DMG/ZIP and isolated native UI/restart/singleton checks passed.
Build-only CI run 37094906868 produced the Windows x64 installer and its
hash-matched Linux x64 WSL archive. Renewed budget used: Linux 2/2, Windows 2/2.
Latest downloads and checksums are in #17; Actions artifacts expire 2026-10-17.
The prior batches remain preserved, not relabeled. The 20261003.1 receiving
test failed before WSL registration because its home probe returned no path.
The revised probe uses stdin rather than nested quotes in Windows argv and
does not weaken the Linux-profile isolation guard.
#17 remains open/blocked only on receiving-host installed Windows GUI and WSL
interaction. No release, signing, provider turns, live-state writes or feature
work were performed by the unattended packaging task.
Complete the receiving-host checks in #17 first. #10 is the next feature slice;
#11 and #15 are also unblocked but remain queued rather than parallel work
in progress.
| Slice | Issue | Hard blockers |
|---|---|---|
| M-002: stable reconciliation and retained-root ports | #2 | Completed; accepted with one over-budget result |
| COP-OBS-01: truthful Copilot working/completion | #20 | Completed and published on fix/copilot-turn-lifecycle |
| PKG-01: isolated native preview packages | #17 | Artifacts ready; receiving-host Windows/WSL gates pending |
| ATT-01: current approval/input projection | #3 | Completed locally |
| ATT-02: lifecycle awareness/failure semantics | #4 | Completed locally |
| ATT-03: gap-free paginated snapshot/live stream | #5 | Completed locally |
| ATT-04: shared environment aggregation | #6 | Completed locally |
| ATT-05: web/desktop inbox and badges | #7 | Completed locally |
| ATT-06: frontend local notifications | #8 | Completed locally |
| TWS-01: typed topology refresh and thread association | #9 | Completed locally |
| TWS-02: secondary repository/thread grouping | #10 | Ready; #9 complete |
| TAG-01: tag contracts/storage/commands | #11 | Ready; #2 complete |
| TAG-02: web/desktop tag surfaces | #12 | #11 |
| TAG-03: mobile tag surfaces | #13 | #11 |
| TAG-04: derived TWS tags and source lifecycle | #14 | #11; #9 complete |
| MOB-01: mobile foreground/optional relay alignment | #15 | Ready; #6 complete |
| A-009: native provider capability vs T3 exposure inventory | #16 | None for research; queued, not in progress |
Recommended execution queue: native preview packages, TWS grouping, manual tags on
all clients, derived tags, optional mobile delivery alignment. Independent
dependency branches are not permission to expand work in progress.
Requested proposals, separate from implementation
Unapproved requests live off the runnable stack. Research does not advance
tpatch lifecycle or authorize implementation. Existing #18/#19/#21 requests
retain baseline 982929e9323f00ded5c7ca943f22a0bcef669a6f.
New #22/#23 requests independently use shipped source
bc9eeb9a6f5e3fe2e6d58d9c1b14d5ed93d6c2be; neither branch includes the other
proposal.
| Request | Issue | Branch / current finding |
|---|---|---|
| Narrow-window send shortcuts | #18 | request/composer-narrow-viewport-submit-override; existing request retained |
| NET-01: optional NetBird private-network integration | #19 | request/netbird-mesh-connectivity; requested, manual direct pairing already possible |
| COP-CTX-01: effective context tier and compaction controls | #21 | Same provider research branch; requested, lower default runtime budget and explicit long tiers measured |
| DESK-01: Windows menu/title-bar usability | #22 | request/windows-titlebar-menu; requested, native reproduction/root-cause decision still required |
| UI-01: configurable chat content width | #23 | request/chat-content-width; requested, preserve Standard and evaluate Wide/Full width |
The provider follow-up branch was an explicitly approved exception to one
request/<slug> branch per proposal. #20 was subsequently approved and delivered
as a fixup of the existing provider root on the separate clean replay branch;
its standalone request is superseded. #21 remains requested. Both investigations
feed #16 without declaring the full inventory done. NetBird and narrow-window
shortcuts remain requested. No main merge, PR, release or new platform
qualification accompanies these changes.
The request-branch workflow
standardizes baseline recording, one independently decidable slug/issue,
metadata-only requested state, and explicit adoption into the current stack
after approval. The workflow is recorded on the request branch, not silently
merged into the runnable product.
Identification customization research
Source-backed viability findings are recorded in a comment on this issue.
Two independent candidates are viable but are not yet registered or approved
for implementation:
- Sidebar app build-channel artwork: a customizable static image with a
readable authoritative Stable/Dev/Nightly/Preview badge. Current artwork is
partly primary-server-version-driven and maps Preview to Nightly; clarify
client versus server channel semantics before extending it. - Active chat environment cue: persistent scoped name/type/connection state
for Windows, WSL or a remote host, optionally with a subtle accent. Reuse
existing Run on selection and environment presentation; do not add another
connection registry or make decoration determine routing.
Custom themes currently do not accept arbitrary sidebar artwork. Device-local
appearance assets/accents are the recommended first scope; cross-device shared
art needs a separate storage/permission decision. These candidates do not
change #22/#23's requested state or consume a new build budget.
Stable v0.0.42 audit update
- Upstream now implements opt-in in-app/system notifications, sounds, scoped
click routing and browser/desktop notification badges. [ATT-06] Extend upstream notifications with canonical attention policy #8 extends that
implementation; it must not introduce a second notification coordinator.
These badges count pending notifications, not canonical open attention; [ATT-05] Add the web and desktop attention inbox #7
remains needed for the actionable inbox/count. - Packaging now includes standalone Node single-executable CLI archives.
Windows WSL embeds the Linux archive verbatim. All retained Copilot packaging
roots must cover that path as well as desktop sidecars, including SSH/update
installs. Old Windows-built Node-tree assumptions no longer hold. - Upstream migrations 44/45 collide with the fork's audit/binding migrations.
The landed bridge preserves original fork records int3code_fork_migrations,
runs the collided upstream work and commits both histories atomically.
Unknown history/schema stops startup. No live database has been upgraded. - Current upstream adds Antigravity to the provider coverage matrix. Provider
compatibility is distinct from which model is used to implement this fork.
Tightened decisions
- [ATT-03] Synchronize bounded attention snapshots and live deltas #5 defines subscribe-before-watermark, immutable-key pagination, a completion
fence, revision-safe overlap, typed resets and slow-consumer limits. The
100-row limit is per message, not an invisible cap on an environment. - [TWS-01] Refresh read-only topology and authoritative thread context #9 distinguishes logical feature context from execution-node evidence and
adds the missing refresh/association layer. Project membership, repository
identity or branch name alone never auto-assign a feature. - [TAG-04] Derive TWS tags with explicit stale and revoked states #14 requires two distinct complete negative observations before source-loss
revocation. Failed/partial observations remain stale; explicit T3 context
removal revokes immediately. No timer-based CLI polling. - [TAG-01] Store environment-owned manual thread tags #11 reserves archived manual keys, preserves assignments on archive/restore
and separates manual/derived namespaces. [ATT-04] Aggregate attention across connected environments #6 distinguishes actionable-thread
badge count from individual request count.
Backlog discipline
- This tracker is the entry point; child issue bodies own scope and acceptance
criteria. GitHub issue state and status labels own current execution state.
Session files are research/draft snapshots, not another live backlog. status:blockedmeans a release/dependency gate remains;status:ready
means all gates are satisfied;status:in-progressmeans work has started.
Close an implementation issue only when its acceptance criteria are met.
Closing a specification is not the same as delivering its implementation.- Priorities are P0 for stable reconciliation and attention core; P1 for
notification, TWS, tags and mobile delivery. These are priorities, not dates. - Work in progress is one implementation slice by default. Independent
research may run in parallel; do not accumulate speculative product patches. - Before a work session, read this tracker, the active child and its blockers.
Update the child after a meaningful decision or landing; include exact source
and tpatch lineage where applicable. - New ideas go in the deferred table first. Promote only after a bounded
problem statement, upstream reuse decision, acceptance criteria,
dependencies and surface/provider coverage are recorded. - Tpatch owns request and implementation/reconciliation lineage, not product
priority. Register unapproved proposals as requested on isolated
request/<slug>branches (or an explicitly approved related-provider
research branch). GitHub issues are the cross-branch backlog. No fake
recipe/landing or lifecycle advancement is needed to record a request.
Adopt only approved requests into the then-current implementation stack.
Existing implemented roots keep complete intent artifacts; do not generate
old-source recipes or merge all request branches together. - Revisit stable-tag availability at the next maintenance session. No polling
daemon, automatic upstream rebase or scheduled watcher is implied. - No PR is created without an explicit request. Browser/computer-use runs
still require permission. Keep application state and unrelated Gradle caches
untouched.
Coverage common to every implementation issue
Web and desktop share web presentation; Electron-only behavior belongs in the
shell. Mobile uses shared client state where appropriate and native controls.
Wire contracts belong in packages/contracts; client aggregation belongs in
packages/client-runtime. Preserve local, direct, SSH, relay and tunnel modes,
multiple devices and independently disconnected environments.
Provider-independent features must not branch on a provider name. For
provider-derived lifecycle state, decide capability/event mapping for Codex,
Claude, Cursor, Grok, OpenCode, Antigravity and fork Copilot. Unsupported signals stay unknown
or explicitly unsupported, never inferred from prompt text.
Deferred backlog
These IDs retain the earlier product backlog identity. They are not authorized
for implementation by being listed here.
| ID | Priority | Scope / promotion condition |
|---|---|---|
| H-001 | P1 | GitHub Issues adapter, RPC and UI using the retained work-item contracts. |
| H-002 | P1 | Azure Boards adapter, RPC and UI; project containers are not repository identity. |
| H-003 | P2 | Hosting-linked tags after a hosting adapter and manual tags exist. |
| A-001 | P1 | Background-task registry, counts and panel after current provider capability audit. |
| A-002 | P1 | Custom agents with explicit provider capability/degradation rules. |
| A-003 | P2 | Mid-session Copilot skill controls/RPC/UI; old applied records are not working implementation evidence. |
| A-004 | P2 | Rich resources including image/audio rendering; bounded on-demand payloads. |
| A-005 | P2 | Tool summaries and full result expansion without full-history transfer. |
| A-006 | P2 | Usage, limits and cost only where providers expose trustworthy data. |
| A-007 | P2 | System-generated turns and external triggers; ownership/permission design first. |
| A-008 | P2 | Re-spec command/model discovery, internal-model controls, effort presentation and compatibility notices against adopted stable/SDK behavior. |
| A-009 | P1 | #16 inventories native CLI, SDK/protocol, adapter, contracts and client exposure with a terminology crosswalk; informs provider enhancement priorities. |
| TAG-003 | P2 | Hosting/provider/branch-derived tags; no inferred or standalone worktree tags in the MVP. |
| E-001 | P2 | Image/vision input parity across supported clients/providers. |
| E-002 | P3 | Voice input. |
| E-003 | P2 | Native mobile/tablet quality beyond the scoped MVP surfaces. |
| E-004 | P2 | Capability-scoped extension/subprocess surface; required later, not a mandatory coordinator. |
Already completed preparation: M-001 pinned-main applicability, M-003 legacy
classification, M-004 tpatch upgrade, F-001 federation/routing discovery.
The retained-root semantic port remains M-002, not a replay of all historical
tpatch records.
Activity
6 remaining items
jdbencardinop commentedon Oct 29, 2026
Added #32 as a backlog-only request to distinguish environments through client aliases and/or server-advertised display names without changing hostnames, routes, pairings or environment identity. No tpatch registration or implementation.
jdbencardinop commentedon Oct 29, 2026
Stable reconciliation and open-issue evaluation — October 29, 2026
Assessment only. No issues closed, no reconciliation or product fixes applied. The complete upstream commit ledger was collected; capability groups below are not a claim that every patch or platform was tested.
Fork upstream lock/base: v0.0.42,
719a76c.
Published corrected preview source:
bc9eeb9.
Root checkout is preserved phase1/foundation at 2f39e59, not the mobile
or published preview baseline. Other machines' actual frontend builds are
not established by their backend version or by this Mac's installed app.
Latest stable verified by GitHub release and tag: v0.1.3, published Oct 27,
d2c4403.
Intervening stable releases: v0.0.43, .44, .45, v0.1.0, .1, .2, .3.
Full compare reports 3,866 upstream commits; all 3,866 unique commit subjects
were collected through pagination. The first compare response's file list is
capped at 300 and was NOT used as a complete changed-file inventory.
Release notes and complete stable source tree were inspected. This is a
grouped capability/maintenance inventory, not a claim to have reviewed or
visually tested all 3,866 patches.
Main observed at dac8b11 is 267 commits beyond
stable and excluded from stable claims. Complete release bodies and commit
ledger are retained in private session artifacts.
continuation controls, limited state and resume-at-reset, child ownership,
lineage, result delivery and background-task stop/recovery. These are no
longer main-only: V2 first shipped in v0.1.0.
attachments, forks and context merge-back, provider/account/model switching.
Provider changes use lossy portable context; not equivalent to native resume.
tools, PR watches, scheduled interval/fixed-time/webhook tasks and filters,
private secret requests. v0.1.2 adds t3 thread start/send/show/list. Newer
stable tools use consolidated action schemas; don't hardcode old tool lists.
features, Pi, Muse Code, OpenCode 2, Vercel fx; Cursor official SDK; expanded
native command/config/model/auth handling. No native GitHub Copilot SDK
provider package is supplied by the stable source; generic Copilot ACP is
not a replacement approved by the maintainer.
names, worktree placement/submodule/setup retry controls, thread details
and lineage, multi-model new-thread starts. Some multi-environment concepts
already existed in the fork; only added behavior is new.
thread state at end of timeline, larger Settings/Usage modals, chat widths
Comfortable 48rem/Wide 72rem/Full, richer composer/shortcuts, thought/status
row support, improved fold/tool/question rendering, indexed message search,
thread find and diff find, keyboard focus/navigation and minimap fixes.
MCP Apps currently documented via Codex; Mermaid/math, audio, SVG, PDF paths,
office/archive/SQLite/image/font/EPUB/notebook previews. These don't implement
Copilot Canvas rendering or every provider's native multimodal input.
popups/uploads/downloads/control ownership, mobile PiP, browser host setup
for Ubuntu libraries/AppArmor, broader device hosts/foldable/3D controls.
Not proof of native desktop computer-use in our Copilot SDK integration.
requirement, native navigation/iPad/Duo/foldable changes, searchable settings,
PR browsing/reviews/actions/offline caches, durable offline drafts/uploads,
voice/microphone selection, code rendering and scrolling improvements.
GitLab/Forgejo handling; GitHub direct API rather than CLI-per-call; account
selection/token setup, guided reviews, per-item permissions, labels/reactions,
PR watch/merge/check synchronization and batching.
routes, correct generic VPN labeling, richer permission views, OAuth MCP,
guest links (beta, T3 Connect required), mobile notification/widget updates.
Self-hosted push without T3 Connect is still not the delivered path.
boot/supervisor/error propagation/connect fixes, cross-platform providers,
exclusive state-directory ownership, desktop command installation, t3 doctor,
parser/highlighter changes, React Compiler across clients, reduced shell/
thread payloads, paged/lazy history, terminal and usage cache improvements.
telemetry goes to ingest.t3.codes/PostHog with hashed identifiers; explicit
product telemetry opt-out exists. OTLP custom receiver controls, self-hosted
tracing possibilities, changed packaging/build toolchains and strict checks.
The official migration copies state.sqlite once into statev2.sqlite. V1/V2
diverge thereafter; they are not continuously synchronized. In the stock same-
home migration, settings, attachments and workspace files remain shared.
Use isolated copied homes and workspaces for qualification, not just a second
database filename in the live profile.
Copied T3 homes do not isolate provider-owned storage. Qualify provider homes,
credentials and runtimes explicitly; never start OpenCode 1.x and 2.x against
one shared provider database (2.x converts it). Record the exact target release's
recommended/minimum provider versions before running provider checks rather
than inheriting an old release's version assumptions.
Legacy transcript migration preserves user/assistant text, supported attachments
and thread metadata, but does not recreate native provider session identity,
old provider runs, checkpoints/diffs, activities/tool calls, approvals or
proposed plans. First continuation starts a new provider session with a
budgeted handoff. The internals/user docs differ slightly in how they describe
the excerpt/handoff budget; both explicitly deny native session continuity.
This conflicts with treating migration as transparent Copilot resume.
V1 and V2 clients/servers reject mismatched orchestration protocol versions.
The renewed iPhone app remains V1. A new V2 backend cannot replace either live
server until compatible fork web/desktop/mobile clients are qualified.
Native Copilot driver, session ownership and completion, packaging/license,
TWS bindings, fork migrations, attention audit/current state, and search root
overlap all require semantic reconciliation. Do not retire roots on title
similarity. New upstream thread find searches messages/plans; our maintained
session search also covers activity/tool text.
Preserve the fork's separate migration ledger and its legacy 44/45 bridge.
Test the actual copied migration lineage, including migration names as well
as IDs. Stable upstream warns that reusing its migration IDs can skip a
required migration or reject startup; a high fork ID is not a reserved range.
Old Mac is Intel: upstream still has no standalone macOS x64 t3 binary; retain
source-built server deployment rather than assume managed SSH/download/update
supports it. Preserve separate preview identity and update isolation.
#1 umbrella: keep current; old phase/dependency wording needs refresh after
the target decision, not automatic closure.
#10 TWS grouping: fork-specific, port foundation first, then UI on V2.
#11 tags storage: fork-specific; redesign against V2 commands/projection.
#12 web/desktop tags: after #11; new UI increases old-base churn.
#13 native tags: after #11 and native V2 baseline.
#14 derived TWS tags: preserve stale/revoked identity rules; #9/#11 context.
#15 mobile canonical attention: relay updates do not satisfy independent
authoritative attention semantics; requires new state and notification mapping.
#16 capability inventory: this evaluation informs it but is not full per-
provider runtime proof; prerequisite scope for native Copilot V2.
#17 packaging: artifact creation/home probe fixed; full current installed
Windows/WSL PTY/restart/fallback gate still pending. Old passes are not v0.1.3.
#18 narrow viewport submit: upstream send-shortcut controls are related, not
proof that <=639px guard is removed. Reproduce physical keyboard narrow window
and software-keyboard behavior before deciding residual fix.
#19 NetBird integration: direct pairing exists; stable now distinguishes VPN
addresses and manages several routes. Native NetBird discovery still separate.
#21 Copilot tier/compaction: typed SDK functionality still needs native adapter
UX; ACP model options are not proven equivalence.
#22 Windows title/menu/drag: zoom inset/tooltip/title overlay fixes upstream
are relevant but do not prove Alt menu and blank-header dragging fixed.
#23 chat width: upstream implements the requested three modes (different
Standard/Comfortable label only). Strong adopt-and-validate/retire candidate.
#24 Copilot intent phrase: upstream live thought row is a reuse target, not
proof assistant.intent is consumed by a native Copilot provider.
#25 self-hosted notification architecture: still a decision; do not assume
APNs/FCM/T3 Connect solves self-hostable/minimal-cost requirements.
#26 Copilot usage/limits: SDK quota/usage available; stable global scanners list
other providers, not native Copilot. Retain this backlog and reuse new UX.
#27 bottom fold affordance: issue contains a reported live reproduction.
Keep fold membership unchanged; no identified stable second-control feature.
Must record own before/after and scroll behavior on target baseline.
#28 client-only and ownership: high-priority upstream-coverage candidate.
localEnvironmentEnabled already exists even in our audited fork source, so
the deployed Windows build/premise needs checking. v0.1.3 additionally has
serverOwnership.ts, a lifetime exclusive SQLite ownership lock and conservative
legacy-owner checks. Prove client-only startup/reversal and independent server
survival on Windows/WSL; do not induce competing writers in live data.
#29 Herdr: not delivered by generic external MCP or ACP session import.
Read-only external-owner discovery remains separate; upstream PR25476 is closed
unmerged and not Copilot shared-ownership support. Keep no automatic resume.
#30 skills: screenshot report is empty $ picker, not absent popover; slash
behavior still unverified. Existing fork already handles skills_loaded/list,
but filters instance-wide snapshot to personal/plugin/builtin user-invocable
skills. Verify effective skill origin/cwd/home, symlinks and thread-specific
exposure; don't globally publish project skills or trust stale granular
tpatch status as proof no implementation shipped. Native Copilot remains ours.
#31 file-pill paths: strong exact upstream fix candidate. PR21497 merged
a81961d Oct19; stable uses workspaceRelativePath,
preserves line/column, and hides relative copy for outside-workspace targets.
Original ambiguous prose still requires absolute path output by the agent.
Upstream clipboard/screenshot evidence is not our own fork reproduction.
#32 newly requested machine display aliases/advertised names, without hostname,
environment ID, path or credential changes. Backlog-only, no tpatch yet.
No issue closed. Reports #30/#31 reference screenshots in originating chats but
do not attach them to the issues; exact frontend build is not established.
Remote WSL/Ubuntu reproduction is pending, not successful: this Mac's NetBird
is disconnected and this task did not launch remote GUI repro sessions.
Issue #27 lists stale bun-wide validation commands; use actual scoped tooling.
Some listed blockers (#2/#6/#9) are already closed and are backlog bookkeeping,
not evidence their completed foundations are absent.
Baseline evidence FIRST, then reconcile in isolation, then fix residuals on the
new baseline. Do not implement every fix against V1 and redo it for V2.
Before choosing a live cutover, perform a native Copilot V2 + migration design/
qualification spike preserving required continuity, own fork tables and
unsupported history visibility. No automatic switch to ACP.
Exception: an urgent, independently reproducible old-base defect may justify a
small scoped tpatch hotfix while V2 work is blocked, especially #31 using the
verified upstream implementation, or #30 if native skill discovery is blocking
daily use. Capture old-base reproduction before either approach. Adopt
upstream-equivalent #23/#28 behavior rather than grow duplicate roots.
Suggested order after approval:
Restore network access deliberately; collect exact frontend/backend/OS/
provider versions and before evidence for feat(desktop): add client-only mode and guard backend ownership #28, Copilot skills picker reports no skills despite skills available to the agent #30, Investigate file-pill relative-path base: copied paths include the current directory name #31, [DESK-01] Restore Windows menu access and predictable title-bar dragging #22, feat(web): allow send shortcuts in narrow windows #18, Mirror the "Worked for …" fold control at the bottom of settled turns #27.
Qualify native SDK V2, one-way migration on safe copies, and cross-client
compatibility; port selected roots and packaging in dependency order.
Verify likely upstream coverage [UI-01] Add Standard, Wide and Full width chat layouts #23/feat(desktop): add client-only mode and guard backend ownership #28/Investigate file-pill relative-path base: copied paths include the current directory name #31 and carry only remaining deltas.
Implement residual prioritized issues as tpatch features; save before/after
and behavioral evidence at each integrated pass and review.
Defer custom panes extensions/Herdr/notifications/TWS tags until foundations
and critical user-facing defects are reliable. Computer use remains deferred.
Required evidence/review gate for subsequent fixes
Each issue must have: exact source/build/runtime/environment; repeatable
fixture; observed before failure and capture; focused regression assertion;
after capture using the same scenario; reverse/reconnect/negative cases where
relevant; independent OpenAI/MAI review of code AND evidence. For timing use
video + lifecycle receipts, not just screenshots. No extra provider inference
or paid services just to make screenshots. Review feedback loops until no
actionable findings; blocked evidence remains blocked and cannot be waived by
unit tests or a reviewer who only saw code. Preserve credentials/live state;
keep evidence private or upload only sanitized approved issue evidence.
Assessment review: an independent GPT-6.1 Sol review identified provider-store
isolation and explicit fork migration-ledger/legacy-bridge coverage as missing
details. Both are now included above. The review did not perform visual/runtime
qualification and is not a substitute for the future product review gates.
https://github.com/pingdotgg/t3code/releases/tag/v0.1.3
https://github.com/pingdotgg/t3code/releases/tag/v0.1.0
pingdotgg/t3code@v0.0.42...v0.1.3
https://github.com/pingdotgg/t3code/blob/d2c440312e5f39d59827ed466838a623516454d6/docs/internals/legacy-orchestration-migration.md
https://github.com/pingdotgg/t3code/blob/d2c440312e5f39d59827ed466838a623516454d6/docs/user/thread-migration.md
https://github.com/pingdotgg/t3code/blob/d2c440312e5f39d59827ed466838a623516454d6/docs/user/outside-agents.md
https://github.com/pingdotgg/t3code/blob/d2c440312e5f39d59827ed466838a623516454d6/docs/user/html-renders.md
https://github.com/pingdotgg/t3code/blob/d2c440312e5f39d59827ed466838a623516454d6/docs/user/providers-acp.md
https://github.com/pingdotgg/t3code/blob/d2c440312e5f39d59827ed466838a623516454d6/docs/user/remote-access.md
https://github.com/pingdotgg/t3code/blob/d2c440312e5f39d59827ed466838a623516454d6/apps/server/src/serverOwnership.ts
pingdotgg#21497
pingdotgg#11594
pingdotgg#25476
https://github.com/tesseracode/t3code/issues
Prepared with GPT-6 Astra in GitHub Copilot CLI; independent assessment review by GPT-6.1 Sol. Visual/runtime gates remain pending where explicitly noted.
jdbencardinop commentedon Oct 29, 2026
Overnight scope approved: add #33 (Copilot import/history versus stopped/live ownership decisions) to the evaluation; audit exact preview/mobile replay and unmerged branches; repair missing already-shipped tpatch intent; document main-as-integration branching policy; reconcile maintained roots to pinned stable v0.1.3 in isolation; fix only prioritized locally reproducible residuals. Fresh native Copilot sessions and best-effort transcripts are acceptable, with backups preserved. Work-branch pushes and candidate packages only: no main promotion, tags/releases or live upgrades. OpenAI/MAI visual/runtime checks and reviews approved; build-only CI limit4 attempts per target. Windows/WSL/Ubuntu hosts unavailable tonight: Mac repro first and a receiving-host validation runbook; unavailable gates stay blocked, not passed. Computer-use experiment remains deferred.
jdbencardinop commentedon Oct 29, 2026
Replay audit, branch inventory and #33
The v0.0.42 preview's application changes are fully accounted for. Seven maintained roots reproduce the mobile source
aeb0b48220d2cb83698e2298a163261f75ec5681; the first six reproduce desktop/server previewbc9eeb9a6f5e3fe2e6d58d9c1b14d5ed93d6c2be. The isolated preview overlay, workflow and WSL-home repair are already insidecopilot-runtime-packaging, not unrecorded product changes.One administrative gap was found and repaired:
.gitignoredid not replay the.tpatch/local/exclusion. New maintained roottpatch-local-capture-ignorecloses it. All eight roots now apply strictly, in order, from upstream719a76ca1dbf5490f1aa33ffb9966301e02be9a9; every tracked path and file mode outside administrative.tpatch/metadata matches. Replayed Git tree:bedeaa133db69da791799fc4ee08b7c843bac8ba. This does not claim byte equality for historical lifecycle logs. Audit branch:audit/v042-replay-closure-20261029ate3bc7d48dc3e61e30e648d62a03a333f40b0a172.The branch inventory covered 74 refs / 56 distinct tips: 44 archive-only recommendations, 11 retained tips and one application integration candidate. No branches were removed. Ahead/behind counts are not missing-feature counts: historical TWS, attention, lifecycle and packaging slices are already semantically replayed.
build/fork-native-preview-20261003-r2build/fork-mobile-devices-20261003mainrequest/chat-content-widthrequest/copilot-chat-activity-intentrequest/netbird-mesh-connectivityrequest/self-hosted-notification-deliveryrequest/windows-titlebar-menurequest/composer-narrow-viewport-submit-overridevalidation/v0.0.42-platform-qualificationApproved policy is persisted on
tpatch/fork-maintenance-policy(230fe51db), indocs/internals/fork-maintenance.md, and recorded as its own maintained root.mainis integration, not automatic deployment; no permanentdev. Feature branches aretpatch/<slug>targeting main or the explicitly activereconcile/<immutable-stable-tag>. Release branches are temporary; immutablefork-v<upstream-version>-<sequence>tags require approval. Historical branches are not force-pushed or deleted as housekeeping.#33 is now part of the inventory. It separates read-only history, a new conversation with provenance, stopped-session ownership transfer, live foreign ownership, and uncertain/crashed ownership. Relaxed V1-to-V2 migration requirements do not authorize live-session attachment or unsafe concurrent native resume. #29/#33 remain design work, not automatic migration features.
Before evidence and current candidate status
overnight-repro-workspace/runbooks/check.txt:1instead ofrunbooks/check.txt:1; menu and pasted-value screenshots captured.$shows no skills and/only/model.The v0.1.3 candidate remains in progress, not release-ready. Native Copilot, Foundation, packaging and search require genuine semantic V2 ports; conflict evidence is retained. Attention UI/policy adaptation is also in progress. No candidate has yet passed integrated visual/reviewer gates. Main, live installations, device apps and user data are unchanged.
Migration remains opt-in: preserve an immutable backup of T3 state and the relevant provider storage, rehearse only with isolated copies, retain best-effort transcripts/provenance, accept fresh native sessions, and upgrade compatible clients/server together. Do not point the existing V1 mobile app at a promoted V2 environment without a compatible client. Computer use, releases, main promotion and live upgrades remain deferred.
jdbencardinop commentedon Oct 29, 2026
Integrated v0.1.3 candidate: source and remaining gates
Candidate source is
c8e6c994671540f90f03b4281cf51097b2580072onreconcile/v0.1.3-fork. All eight maintained roots strictly replay from immutable v0.1.3 with zero tracked-file or mode residual outside administrative.tpatch/metadata. The old mobile polyfill is upstream-satisfied: client contracts now load without Segmenter, while the server still enforces the two-grapheme limit.Independent review found a real run-attention bug involving multiple root provider turns in one run. It was fixed, reproduced by a failing-then-passing regression, and independently rechecked across continuation/failure/retry scenarios. No further significant source issue was reported in that correction.
Actual local results so far:
.2built with the exact SDK/CLI/Koffi dependency closure. It is a candidate, not a release or live upgrade.runbooks/check.txt:1, without the erroneous workspace basename.Two limitations remain explicit: native permission responses currently show an unconfirmed-delivery warning despite successful execution (under investigation), and tpatch's unchanged-child verifier still selects an obsolete historical anchor after a parent fix. Supported unapply/reapply produced a genuine new anchor; direct Git checks prove the corrected parent and child compose exactly, but the failing tpatch verifier is not reported as passed.
check:changedwas inspected, not run: it expands these fork metadata/build changes to repository-wide checks, contrary to the overnight scope. Focused tests, owning typechecks, lint, direct replay and actual builds are reported separately. Work-branch publication and build-only CI are for candidate evaluation only; main promotion, tags/releases, live upgrades and computer use remain prohibited. The four-attempt-per-target CI budget remains in force.jdbencardinop commentedon Oct 29, 2026
Migration and receiving-host qualification runbook
This is a candidate-only procedure. No live installation, main branch, release tag or published update has been promoted.
What was rehearsed
A consistent snapshot of the disposable v0.0.42 fixture was migrated by the actual V2 server startup: 3 threads and 8 messages remained 3 threads and 8 messages. The separate
t3code_fork_migrationsledger contains 44–50. The copied provider store was byte-for-byte unchanged and the importer created zero native provider threads; no provider ran during migration.This proves the exercised database/transcript path, not every historical schema, attachment, Git checkpoint, saved credential, connection identity, TWS binding or native session migration. Existing focused migration tests cover additional 44/45 bridge cases. The user-approved policy accepts fresh native sessions and best-effort historical text, not unsafe attachment to another live owner.
Safe cutover, only after approval
cpof the database alone is not a snapshot. Keep provider storage separately. Never point a rehearsal at live T3 or provider storage.Linux/Ubuntu receiving host
--versionbefore starting an isolated server.--base-dir; disable providers until their homes and project clones are isolated. Validate cold startup, restart, pairing, persisted threads and one authorized native session continuation.Windows/WSL receiving host
T3CODE_FORK_PREVIEW_HOMEto an owned test profile before launching and track the spawned process.~/.t3-fork-preview. Use a disposable WSL distribution/account for rehearsal; do not connect the candidate to the current live distribution/account.Evidence required
For each exercised case record the exact build/source, environment, command and result. Pair screenshots with behavior assertions; use a short video plus persisted events for timing/Working behavior. The independent reviewer must inspect the evidence. Keep Windows/WSL/Ubuntu, native mobile pairing and other unrun gates explicitly pending.
The build-only CI ceiling is four attempts per Linux x64 and Windows x64 target, including new dispatches/reruns. No automatic retry or release workflow is authorized.
jdbencardinop commentedon Oct 29, 2026
New stable release discovered during final checks
Upstream released v0.1.4 during this work, at
2026-10-29T07:44:41Z:783581d461dc72cdd8f78fc8abb4ad536dfc4547.The approved candidate remains pinned to v0.1.3; I did not silently move its base while qualifying it.
Compared with v0.1.3, this is 261 commit subjects and 2,012 changed files (including broad refactors), not a version-string-only update. Relevant additions include:
The release notes are the full upstream inventory:
https://github.com/pingdotgg/t3code/releases/tag/v0.1.4
These are released upstream capabilities, not features already validated in our v0.1.3 candidate. In particular, the new desktop boot checks and mobile fixes are relevant to the remaining qualification work; they are not proof that our Keychain or simulator-tool blockers are fixed.
Recommendation: keep the completed v0.1.3 source reconciliation and evidence as the controlled baseline, then assess/apply the v0.1.4 delta in a separate approved reconciliation before production promotion. Reuse the maintained root intent, not old branch merges. The current
mainis not an ancestor of this reconstructed candidate, so promotion also needs an explicitly approved ancestry-preserving transition—not a blind merge of obsolete main code or a force push.jdbencardinop commentedon Oct 29, 2026
Reconciliation, replay audit and branch inventory — final handoff
The approved v0.1.3 source candidate is published, but it is not a production promotion. Main, the installed v0.0.42 preview, both phone apps and live user data remain unchanged.
Candidate:
reconcile/v0.1.3-fork, commit5ce5d79bbdbf17b1d50a0f2a9ee7bda9651c1170, based on immutable upstreamd2c440312e5f39d59827ed466838a623516454d6.Important latest-release update: v0.1.4 appeared during the task. It is pinned at
783581d461dc72cdd8f78fc8abb4ad536dfc4547; it was evaluated but not silently substituted for the approved v0.1.3 target. Its 261 commits / 2,012 changed files include relevant desktop boot gates and mobile fixes. Release addendum.1. Exact replay and missing intent
The original audit found no unrecorded application/build change in the installed preview lineage:
bc9eeb9a6f5e3fe2e6d58d9c1b14d5ed93d6c2be.aeb0b48220d2cb83698e2298a163261f75ec5681..gitignoredid not replay.tpatch/local/. The newtpatch-local-capture-ignoreroot closes it.copilot-runtime-packaging.The final v0.1.3 candidate also reconstructs exactly, including file modes, by strictly applying these eight canonical patches from the immutable upstream base:
copilot-cli-providersession-searchcopilot-sdk-license-noticecopilot-runtime-packagingphase1-foundationattention-notificationstpatch-local-capture-ignorefork-maintenance-policyEvery
git apply --cached --checkand application passed. There are zero residual tracked paths outside.tpatch/administrative history. Replayed tree:1f1ec3c996e84a9716e938b488eb81181a2b98d5.This is a maintained-root replay, not permission to replay every superseded historical feature directory. Historical lifecycle logs and generated build/signing transforms are not claimed to be byte-identical source.
The mobile polyfill was retired through the supported tpatch review/confirmation path: upstream V2 moved grapheme-count validation out of client snapshot decoding. A fresh contracts import with
Intl.Segmenterabsent passed, and the real server planner still accepted two Unicode graphemes and rejected three. No obsolete polyfill was added to V2.Remaining tpatch tooling limitation
The installed verifier selects older historical anchors for dependent roots after parent corrections, even after a genuine supported unapply/reapply and a new exact landing. It has no explicit-baseline override. Four current roots pass
tpatch verify; the dependent license, packaging, Foundation and attention checks remain blocked by parent-baseline evidence. These failures are not reported as passes.Independent Git replay proves the final combined source exactly, and a separate corrected-parent reverse check plus child forward check passed at the actual new attention anchor. The failed attempts and limitation are retained in feature artifacts; no generation manifests or successful reconciliation evidence were fabricated. Doctor reported zero errors, with historical drift/warnings retained rather than “fixing” obsolete patches.
2. Branch inventory and adopted policy
The audit snapshot covered 74 refs / 56 distinct tips: 44 archive-only recommendations, 11 retained tips and one useful application integration candidate. That candidate was the already-installed mobile Hermes fix. Historical TWS, attention, Copilot lifecycle and packaging branches were already semantically represented; they were not missing merge queues.
Six request branches contained requests rather than implementations: width, activity intent, NetBird, self-hosted notifications, Windows title-bar/menu, and narrow-window submission. Validation-only tooling was retained as evidence, not merged as product code. No historical branch was deleted, renamed or force-pushed.
The approved policy is persisted and recorded in fork-maintenance.md:
mainis integration, not automatic deployment; no permanentdev.tpatch/<slug>targets main or the explicitly active reconciliation.reconcile/<stable-tag>uses an immutable stable base.This task's implementation branches are integrated into the candidate by ancestry or explicit full-root landing. Main remains
870f7a1975f429f5465730bf73c8169d81faf347; the installed preview branch remainsbc9eeb9a6…. The initial main-to-candidate promotion needs an approved ancestry-preserving transition, not a blind merge of obsolete main code.3. What was fixed and independently reviewed
The semantic V2 ports retain native Copilot SDK integration, activity search, isolated packaging, attention audit/current state/inbox/client policy, read-only TWS/context and neutral work-item contracts.
The implementer/reviewer loop found and corrected:
Regressions failed before their fixes. The independent reviewer then found no significant issues in the corrected deltas. No false success receipt, encryption fallback or OS permission bypass was introduced.
4. Evidence and qualification
.5DMG/ZIP built; final source/provenance and SHA256SUMS retained.5debugger remained unresponsive; the preceding build's sampled main thread was blocked in Keychain access. No OS consent was granted. The stock-profile read is fixed, but the remaining hang's cause is not independently establishedFinal build-only CI: 40864041241, both targets successful at
5ce5d79…. Three of four attempts per target were used. The first Windows run built its installer but correctly refused a self-containment probe under checkoutnode_modules; CI temp paths were moved outside the checkout, without weakening the check.The Linux/Windows artifacts and their generated manifests/checksums are available from that run. Mac and simulator artifacts remain on the build Mac; they were not published as releases. The attempted local download of the large CI artifacts was stopped; the remote artifacts were verified available.
Focused suites, owning typechecks and scoped lint passed.
check:changedwas inspected but not run because it expands these fork metadata changes to repository-wide checks, contrary to the overnight scope. No repository-wide pass is claimed.Issue evidence
The reviewer inspected these captured states. Missing platform evidence was not treated as passed.
5. Current open-issue disposition
All 24 open issues were inventoried; none was closed merely because a candidate exists.
6. Migration recommendation
The real copied-state rehearsal preserved 3 threads / 8 messages, retained the separate fork migration ledger 44–50, left the copied provider store unchanged and imported zero native provider threads. This is best-effort transcript migration, not a promise to preserve every native session, attachment, credential, identity or checkpoint.
The migration and receiving-host runbook covers immutable backups, isolated workspace/provider copies, disabled automations, fresh native sessions, coordinated V2 clients and rollback to the untouched V1 home. An isolated Windows profile does not isolate an existing WSL account; use a disposable distribution/account for rehearsal.
Recommended next controlled step: evaluate/reconcile the newly released v0.1.4 delta and resolve the remaining native/host gates before approving main or live deployment. Computer use, larger backlog features, releases, PRs and live upgrades remain deferred.
Implementation and review used GPT-6.1 Sol agents; integration and runtime verification used GPT-6 Astra through GitHub Copilot CLI.
jdbencardinop commentedon Oct 29, 2026
v0.1.4 reconciliation: source coverage and qualification scope
Frozen inputs
bc9eeb9a6f5e3fe2e6d58d9c1b14d5ed93d6c2be(
0.0.42-preview.20261003.2).aeb0b48220d2cb83698e2298a163261f75ec5681.5ce5d79bbdbf17b1d50a0f2a9ee7bda9651c1170.783581d461dc72cdd8f78fc8abb4ad536dfc4547.reconcile/v0.1.4-fork. No main promotion or live upgrade.Shipped roots and v0.1.3 coverage
copilot-cli-providersession-searchcopilot-sdk-license-noticecopilot-runtime-packagingphase1-foundationattention-notificationsmobile-hermes-segmentationtpatch-local-capture-ignorefork-maintenance-policyThe accepted independent v0.1.3 replay contains eight maintained roots and exactly
matches the candidate outside administrative
.tpatch/, including file modes.This is stronger evidence of complete recorded source than counting historical
feature folders. It does not establish semantic completeness by itself; the
v0.1.4 port audits retained behavior and historical absorption separately.
The inherited registry contains 45 historical/requested/applied/retired records,
not 45 independent patches to replay. Older attention, TWS and packaging roots
are grouped by superseding maintained roots. Requested features are not silently
implemented. Older applied skill-control records require an explicit coverage
audit against the maintained native root rather than a second legacy replay.
Reviewed fixes and issue evidence
phase1-foundationcopilot-cli-providercopilot-cli-providercopilot-cli-providercopilot-runtime-packagingEach reviewed fix is present in its owner's complete canonical patch, not a
separate patch per bug. The new reconciliation does not treat old screenshots as
proof of the new candidate; affected scenarios are repeated after integration.
Approvals are not command/skill menus
T3's
$menu selects a skill from the chosen environment and provider./offers T3 commands, supported provider commands and optionally skills. Those
menus are distinct from approval requests for an agent's shell/file/tool action.
A selected skill does not bypass permission policy for its subsequent actions.
The v0.1.3 native adapter exposes one-time approval rather than account-wide
permission-rule editing. That does not disable
$or/. It also does not meanevery interactive Copilot CLI slash command is exposed through the SDK adapter:
native manual compaction, rollback and native forks were explicitly unsupported.
Automatic compaction and portable handoffs are different, supported capabilities.
Newer SDK APIs are being researched; the reconciliation has not silently upgraded
the pinned SDK/runtime.
Checks intentionally omitted
The prior reconciliation did not run the whole-repository
vp check,vp run -r testorvp run -r typecheck. The roottestandtypecheckscriptsexpand to recursive repository checks, so their root aliases were not substitutes.
Repository-wide lint, format and unused-code sweeps were not claimed either.
The report instead records focused tests, owner-scoped types/lint and candidate
build/runtime checks. Missing installed-host and native-client evidence remained
unverified. v0.1.4 retains that distinction and will use its scoped changed checks.
Documented simulator-tool remedy
The installed Xcode framework is at
/Applications/Xcode.app/Contents/SharedFrameworks/SimulatorKit.framework;the old
Contents/Developer/Library/PrivateFrameworkslocation is absent.This matches the upstream diagnosis in
getsentry/MobileBuildMCP#453.
Its maintainer identifies AXe 1.8.0 as the fix, also included in XcodeBuildMCP
2.7.0. The project was subsequently renamed MobileBuildMCP in 2.7.1.
This is a tooling compatibility problem, not a need to modify the Xcode bundle
or weaken OS protections. An explicit compatible AXe override is documented for
the pinned 2.6.2 server. Installation and actual native validation are not yet
claimed. Android SDK inventory also confirms the configured
Pixel_10AVD;no emulator or physical Android device was running at inventory time.
The verifier issue is now recorded as
tesseracode/tesserapatch#26.
The accepted v0.1.3 replay was not rerun. The v0.1.4 policy requires its own
internal exact-replay record and preserves failed verifier evidence rather than
claiming the tool passed.
jdbencardinop commentedon Oct 29, 2026
v0.1.4 receiving-host handoff — pause-gated, not a bulk install script
Prepared read-only from published candidate source and GitHub Actions metadata/logs.
No receiving-host command below has been executed by this preparation task.
Operator protocol: first choose Windows native, Windows → WSL, or
Ubuntu headless. Send only that host's first preflight block, inspect its
result, and agree the next step. Do not paste this document as one script.
Every PAUSE is mandatory. An existing path, unknown owner, denied inspection,
version/hash mismatch, or unexpected startup is a stop, not permission to repair,
rename, delete, uninstall, migrate, or kill anything.
1. Immutable identity and present qualification
16d428db823f17c18ec16a79e1ec12ae4ba795c1.0.1.4-preview.20261029.1.783581d461dc72cdd8f78fc8abb4ad536dfc4547.123638858812, completed2026-10-29T18:11:24Z.123640116999, completed2026-10-29T18:26:07Z.three remain per target. This runbook authorizes no dispatch or rerun.
Keychain availability confirmed. Client-only OFF persisted after a real
relaunch; the old owned local listener at 3774 disappeared, the remote
connection at 16534 remained, and the original user backend at 3773 stayed
healthy. These are Mac/operator results, not Windows/WSL/Ubuntu passes.
and the Android standalone Release emulator passed a Metro-off cold boot
and received a message from a fresh free Replay server. Neither result
qualifies a physical phone or another receiving host. Physical-phone,
Windows, WSL and Ubuntu handoff/qualification remain pending.
--versionand headlessservesuccess with nosystem Node/npm on its executable PATH. Windows packaging reported
64 packaged application files / 21 sidecar natives, including the real
self-containment/native-load gates. Installed receiving-host behavior,
native menus, profile isolation, and WSL cold/warm repair remain to be tested.
Actual downloadable objects
fork-preview-linux-x64t3-0.1.4-preview.20261029.1-linux-x64.tar.gzf22013478222f68af8ad16103127e061e799383293d633ae1650fc33be5e34effork-preview-windows-x64T3-Code-Fork-Preview-0.1.4-preview.20261029.1-x64.exefd1370507672fdcdf66ea39db8b6ee06b1af47d9ecb25017aac72ed4fe932716Each artifact also contains
manifest.jsonandSHA256SUMS. Do not acceptthe payload by filename alone. Check manifest provenance, the checksum file,
the actual payload hash, and the pinned CI-log hash above.
GitHub's outer Actions ZIP identities are different from payload identities:
116c93965b32a29e5872fb8376b88a799b0c288b83a0adcdd3d9d1384416e42989f384a3703c7287f1b2cfe0e3beff634e2461125966f127110de452be1b85c9Artifacts were unexpired when inspected; retention ends around
2026-11-12 18:11Z/18:25Z. If unavailable, pause; do not substitute a different
run or spend another build attempt.
gh run downloadextracts the outer ZIP;its output files must be checked using the payload hash, not the ZIP hash.
If downloading the ZIP in a browser, verify its ZIP digest before extracting,
then still verify the inner manifest/checksums. These are unsigned previews,
not signed releases; no independently signed manifest is being claimed.
2. Source-confirmed flags, defaults, and the WSL danger boundary
Desktop
T3CODE_FORK_PREVIEW_HOME, an environmentvariable inherited by the launched preview executable.
~/.t3-fork-preview.T3CODE_HOMEto that home, uses<home>/electronforChromium,
<home>/userdatafor T3 state, and an isolated compile cache.Setting only
T3CODE_HOMEis not the desktop preview override.T3CODE_PORT, dev-server and remote-server-entryoverrides. Do not promise a desktop port using those variables.
--windows,--no-wsl,--profile, or--home-dirswitch wasfound. Do not invent/use one.
--wsl-runtimeis a build-time option.localEnvironmentEnabled=true,wslBackendEnabled=false,wslOnly=false.Thus its Windows primary starts; WSL does not automatically start.
Availability probing is not the same as starting a WSL T3 backend.
wslOnlyandwslBackendEnabledare true and WSL is available. Additional WSL startup requires
wslBackendEnabled=trueandwslOnly=false.<preview-home>/userdata/desktop-settings.json. The three booleans aboveare real schema fields, not guessed launch flags. The guarded fresh-profile
setup below explicitly starts Windows with WSL off.
<preview-home>/bin/t3.cmdon Windows. This is profile-local, not permissionto replace a global
t3; use only the explicit qualified executable paths below.WSL backend → Off. Disabling WSL clears WSL-only and, if necessary,
relaunches on Windows. Do not edit an unknown live profile to force this.
It suppresses both primary and additional WSL backend startup.
Re-enable it in Settings to reverse. Settings search is reliable even where
documentation calls the containing page “Environments” and internal routes
use
/settings/connectionsor/settings/access.Critical WSL warning — Windows profile override does NOT isolate Linux state
Even with a new Windows
T3CODE_FORK_PREVIEW_HOME, desktop-managed preview WSL uses:The desktop selects a distro, not an arbitrary Linux
-uuser. It launchesusing that distro's default account. Merely creating another Linux user does
not isolate the desktop unless that is the actual default account used.
The account database supplies the backend data home; runtime installation uses
the WSL shell's HOME. If HOME and the account home differ, pause.
If any old fork uses this Linux home, enabling the new candidate can open and
migrate its state or replace/prune its runtime cache. An idle process list,
different Windows profile, different port, or new installer does not authorize
that migration. Require a fresh dedicated distro/default account, or an
explicitly approved stopped backup + migration plan first. No automatic
profile rename/deletion, default-user change,
wsl --unregister, stock-serviceuninstall,
t3 update, ornpx t3@latestbelongs in this handoff.Managed WSL binds its backend to
0.0.0.0and uses authenticated connections.Before enabling it, approve the host's existing network boundary; do not change
firewall/WSL networking to make a test pass. If that exposure is not acceptable,
pause and use the explicitly loopback-bound standalone Ubuntu test instead.
Standalone Linux CLI
The actual supported data-directory option is
--base-dir(equivalent toT3CODE_HOME), not--home-dir. Supported commands/options used below:serveis headless by definition, prints pairing details, does not auto-createa project from cwd, and does not open a browser. Do not register a service,
install a global CLI, change PATH globally, publish through Tailscale, or
upgrade an existing installation for this test.
3. Gate A — choose ONE host and report read-only preflight
A-Windows: native Windows and any later WSL test
Run in ordinary PowerShell, not an elevated shell. These commands inspect only.
Keep process command lines/private paths private or redact before sharing.
If WSL is unavailable and native Windows is the selected first test, report
that fact; it does not require installing WSL. Missing visibility or unknown
process ownership is unresolved, not proof nothing is running.
PAUSE A: report architecture, installed stock/fork identities, running owners,
existing profile roots, and listening ports. Do not stop any process.
Choose whether the host permits a new fork installation at all.
A-Ubuntu: standalone headless host
PAUSE A: Linux must be x86_64; record existing servers/services and ownership.
No old home is opened by the candidate during this preflight. Existing Ubuntu
stock/fork homes may remain untouched while a separately approved fresh explicit
--base-dirand runtime HOME are used. Do not infer this separation for managed WSL.4. Gate B — acquisition on the selected receiving host only
Use an ordinary owned case directory outside source checkouts and installed
applications. All creation below is relative to the selected current directory.
If a case path already exists, pause and agree a resume/new-case plan, never erase it.
ghneeds existing authenticated access to the repository; if unavailable,use the exact Actions artifact link above and manually verify the ZIP first.
No tool installation or huge payload download was performed during preparation.
Windows:
Ubuntu:
If Windows has no already configured
gh, use the exact Windows artifact linkin section 1 to download its Actions ZIP through the user's authenticated
browser. Create/select the same fresh case directory and
evidencedirectoryas above, but skip
gh run download. Before extraction:For Ubuntu without
gh, pause and agree an authenticated transfer of the exactLinux Actions ZIP to the fresh case; do not improvise a release/mirror URL or
install a new CLI. Its outer digest is in section 1; extraction must retain the
same three files under
artifacts/linuxbefore Gate C.PAUSE B: confirm the selected artifact directory contains the payload,
manifest.json, andSHA256SUMS. Windows already embeds the Linux archive;do not download the additional 285 MB Linux artifact solely to enable managed WSL.
5. Gate C — manifest + checksum verification BEFORE executing anything
Windows verification
From the approved case directory, retain this shell's
$Case.Ubuntu verification
PAUSE C: send only verification result and non-secret provenance. A failed
check is not bypassed. No candidate executable or installer runs before this gate.
6. Windows path — installer, owned profile, and native backend
D1. Installer versus portable: decide before starting
The published Windows
.exeis an NSIS installer (--target nsis).There is no published Windows portable ZIP/portable executable or unpacked
directory in this run. The Linux tarball is not a Windows portable package.
Do not treat the installer as the app or assume
/portable,/D, silent flags,manual 7-Zip extraction or a custom install-directory page was qualified.
The fork's installer app ID remains
com.tesseracode.t3code.previewand productname remains
T3 Code Fork Preview, including older fork previews. A new datahome does not separate installer registration, app files, shortcuts or
uninstall identity from an older fork.
If an older fork is registered/installed, PAUSE: prefer a fresh Windows
VM/user with no conflicting per-user or machine-wide fork install, or obtain
an explicit installer-upgrade/backup approval. Do not uninstall/overwrite it
merely to run this test. An experimental extracted-portable route needs a
separate plan and authorization; this runbook does not pretend one was shipped.
D2. Only after installer collision review: fresh owned profile
From
$Case, create a new home and seed only supported desktop settings.No old profile, secrets, browser storage, projects, schedules or provider homes
are copied. Provider homes are not a sandbox; no agent/model turn is authorized.
Keep this override in the launching shell. Do not set global/machine environment
variables. A normal Start-menu launch from a different environment could use
the default, older
~/.t3-fork-previewinstead.PAUSE D2: confirm this new absolute profile path and fresh settings. If any
setting unexpectedly requests WSL, do not launch.
D3. Install only after explicit approval
Use only the normal installer UI after the collision decision above. If it
offers to run the app at completion, leave that unchecked; the controlled
launch is a separate step. If it silently launches, inspect its actual profile
before doing anything else; the installer inherited the preview-home override,
but do not assume every shortcut/shell relaunch does. If Windows blocks the
unsigned file, pause for the user's normal single-file trust decision. Do not
disable SmartScreen/Defender, remove security policy or run as administrator
just to force this test.
Identify the actual installed application from the installer/shortcut
properties. Do not guess its installation directory:
Record the installed file count separately from CI's 64-file packaged tree:
an installer may add uninstall metadata/files. The upstream whole packaged-app
budget is 80, not 80 files only inside
server.asar.unpacked. If the countor layout needs explanation, pause and inspect; do not invent exclusions or
raise the budget. This is not a claim that installing locally rebuilt the CI
package inventory.
PAUSE D3: confirm exact app path/version, embedded hash, and installer outcome.
D4. Installed-stage dependency check, then controlled GUI launch
This uses the bundled Electron runtime as Node, matching the source's native
probe invocation, with global Node search disabled. It does not open the GUI
or run a provider turn. First ensure the application and case directory are not
inside a checkout and that their outside ancestors contain no
node_modules;if such an ancestor exists, pause rather than moving/deleting its packages.
This is a receiver installed-ASAR check, not a fabricated rerun of the builder's
separate isolated extracted-sidecar and FFF native-load checks; those passed in
the recorded CI. Keep their scopes distinct.
PAUSE D4: report the probe. Only then launch the GUI from the qualified app:
Record spawn PID and actual descendant paths/profile, not just a process name.
The desktop chooses a free port by scanning; do not assume 3773/3774 on this
host. Read
<profile>/userdata/server-runtime.jsonand logs when ready:Missing settings booleans can mean defaults: the settings writer omits defaults.
Expected: Windows local environment, WSL Off, owned fresh profile, no old
projects/threads imported, and no stock/fork server stopped. If WSL starts,
the wrong home appears, or old data appears, stop through the candidate UI
and pause. Do not “fix” the old profile or continue into a migration.
7. Windows acceptance, one subtest at a time
#22 — native menus and title-bar hit regions
Record OS version, display scaling, window size/maximized state and build
version. Source still has a hidden non-Mac title bar/overlay and
autoHideMenuBar: true; a successful Mac UI test does not settle this issue.Record whether File/Edit/View can actually be reached; do not assume a
keyboard chord alone repairs discovery.
Ctrl+Shift+I. Native View actions should target the main app, not an
embedded browser guest. Do not run mutation scripts in DevTools.
native window controls and snap behavior. Inputs, breadcrumbs, composer,
tabs and other clickable controls must not be stolen by a drag region.
remote history view, restored/maximized and narrow/wide. No model turn is
needed. Additional DPI configurations require an explicit user decision;
record untested configurations rather than changing OS settings silently.
A reproducible failure is evidence, not permission to patch this host.
PAUSE: review #22 before the next test.
#28 — client-only persistence, retained remote, and reverse path
Use an explicitly approved independent remote environment. The Mac's existing
16534 connection is not automatically a Windows connection, and the original
3773 backend is protected. Obtain a fresh pairing URL from its owner or use an
already authorized saved connection; do not copy credentials or mint tokens
against a different version/live home using this candidate CLI.
ID, and the approved remote environment ID/endpoint. No active agents,
terminals, schedules or writes may be present before disabling local.
Restart and turn off. This intentionally stops only this desktop's
owned local/managed WSL backends. Confirm the remote remains connected and
its existing history can be read without sending a prompt.
localEnvironmentEnabledmust be false. Confirm the old ownedlocal listener/PID is gone, no replacement Windows/WSL backend appeared,
and baseline stock/independent services and forwards remain healthy.
A new Electron PID after relaunch is normal.
$Appusing the same$PreviewHomeoverride from D4. Do not use an unqualified Start-menu launch.OFF must persist; remote identity/connection remains, and local does not
respawn. Saved-registry byte hashes are not an identity test: normal
connection metadata can change.
Verify Windows returns with its previous environment/project data, the
remote is retained, and WSL remains Off for this Windows-only phase.
Default
truemay be omitted from the compact settings file.must keep running. Do not confuse closing a window with quitting the app.
PAUSE: report separate results for OFF, actual relaunch persistence,
remote retention, baseline health, and ON reversal.
8. WSL phase — additional explicit approval, not automatic after Windows
E1. Inspect the selected distro's ACTUAL default account
Use the fresh approved Windows test profile with WSL still Off.
Choose an exact name from
wsl --list --verbose; do not change the default distro.This inspection can start that distro's shell but must not start a T3 server.
PAUSE E1: verify x86_64, exact default Linux user/home, no existing fork
home/cache, no unknown owner and approved network boundary. A fresh user that
the desktop will not actually use is insufficient. Otherwise provision a
dedicated distro/default account separately, or obtain an approved stopped
backup/migration plan. There are deliberately no automatic backup, rename,
deletion, service-stop or default-user-changing commands here.
E2. Cold managed startup, through supported UI
In Settings search WSL backend, select that exact distro and choose
running it alongside Windows, not “WSL only”, for the first check. This
uses the source-supported distro/enabled settings; review any confirmation
dialog before accepting. If the only selectable identity is ambiguous, pause.
Verify Windows stays separate and WSL appears as a distinct environment.
No provider/model turn, login, imported history, schedule or tool invocation.
Windows logs must identify the expected distro and Linux account path.
If the packaged-runtime path falls back to a mounted server/host Node tree,
record a failure of the packaged-runtime test, even if a fallback connects.
The expected exact cache root is:
In a shell for the same selected distro/default account, inspect:
All three Copilot commands should be 0755. The ready marker records the
server executable digest plus
:copilot; it is not the tarball digest.Do not run
copilot/rg/tgrepas agent tools merely to test mode bits.While this exact managed backend is still running, capture its Linux PID from
the selected account's owned
userdata/server-runtime.json, then verify itsactual executable. Retain the output for E3; do not capture a PID after shutdown
or substitute a PID obtained by matching a process name:
Missing Python, inaccessible process metadata, a stale runtime record or any
identity mismatch means pause; do not install tools or infer ownership.
PAUSE E2: inspect cold startup and native/profile evidence.
E3. Warm reuse, then OPTIONAL owned-cache mode-repair fault
First disable WSL in the candidate UI, confirm only its WSL process/listener
stopped, then re-enable the same distro. Verify the same digest-keyed root,
marker, command bytes and executable modes, plus the same WSL environment ID.
No new data directory or Windows-home fallback is acceptable.
While the warm-reused backend is still running, repeat E2's PID/executable
capture for this current process. The earlier cold-start PID is not sufficient
after a restart; retain the newly verified PID before switching WSL Off.
PAUSE E3a: a deliberate fault injection needs a separate explicit approval.
It is restricted to this newly created disposable Linux test profile/cache.
Never apply it to a prior fork, live service, or unclear owner.
For approved mode repair, switch the candidate's WSL backend Off first.
Use the most recently captured, executable-verified Linux PID, using E2's
capture procedure after the last restart, to check shutdown.
This intentionally replaces the broad
/proc/*/exescan: an ignored readlinkerror is not evidence that a cache has no live owner. Do not kill a matching PID.
PAUSE E3b — before chmod: a missing captured PID proves only that PID ended,
not global absence of other users of the cache. Review the desktop's completed
WSL shutdown, recorded listener, dedicated distro/account, and all other known
owners/launchers of this disposable cache. Any inaccessible metadata, denied
inspection, PID reuse, unexplained process/listener, other possible owner or
uncertainty means skip the optional fault and report pending. Do not convert
an inspection error into absence. Only after explicit ownership clearance:
If ownership/executable inspection is incomplete, stop; do not proceed on an
absence assumption. Re-enable WSL through the candidate UI. Product repair may
replace its damaged disposable runtime cache after hash verification; that is
the explicitly approved test, not permission to migrate/delete an old profile.
Repeat E2 checks:
rgmust be executable/0755 again, command hashes match theverified payload, expected
:copilotreadiness returns, WSL environment ID andstate remain the same, and Windows remains separate. Retain the repair log.
No manual chmod-to-0755, marker edit, cache deletion or forced fallback may be
used to manufacture a product pass.
E4. WSL staged self-containment, without starting a competing server
With the candidate's WSL backend Off, check every outside ancestor of ROOT
for
node_modules; ROOT's own packagednode_modulesis required. Any foreignancestor is a stop, not a reason to rename/delete it.
Expected exact candidate version, no host Node/npm/CLI required. This is the
cached binary/version closure check; do not start
servemanually against~/.t3-fork-previewwhile desktop owns it. Native managed cold/warm startupand the CI smoke remain separate evidence from this version check.
PAUSE E4: review WSL results before any WSL-only/reversal experiment.
If subsequently authorized, “WSL only” relaunches the app; turning it off
reintroduces Windows alongside WSL, while WSL backend → Off returns to
Windows-only. Never change mode/distro with active work.
9. Ubuntu headless path — no desktop install and no OS notifications
F1. Inspect/extract only the already verified archive
The actual tar layout has exactly one top-level directory:
It is not an AppImage/deb and needs no system/global Node/npm or global Copilot
install. Do not move only
t3, run an inventedbin/t3/bin.mjs, or “fix”missing packages with a global install.
From the approved case directory:
If a reviewed archive has a different link inventory, pause for analysis;
do not silently remove this extraction guard.
PAUSE F1: confirm payload layout and file modes; no server started yet.
F2. Fresh headless data/HOME and staged version proof
Outside ancestors of the payload must not offer a foreign
node_modules.Keep source/global dependencies out of the proof; do not delete foreign ones.
Expected
0.1.4-preview.20261029.1. This deliberately uses no host Node/npm/CLIPATH and a fresh runtime HOME; it does not claim exhaustive syscall auditing
or replace the source's full native dependency-closure validation.
PAUSE F2: agree a free test port. The example below uses 47714 only if
preflight proves it free. Never reuse 3773/16534 or any pre-existing listener
just because those ports appeared in the Mac report.
F3. Foreground server with loopback-only, explicit fresh base
In Terminal A, keep the server foreground so Ctrl+C is the exact owned shutdown.
This avoids systemd/cron/service installation and background-process ambiguity.
The startup prints a connection string/token/pairing URL/QR. Treat all pairing
details as credentials. Do not paste them into an issue, screenshot, public
chat, unredacted transcript or this runbook. Do not consume the user's token
to “check” it; wait for the intended client to pair.
The startup pairing credential uses the full default permission set described
in F4, including access management; it is not a read-only credential.
In Terminal B, set the exact already agreed case path (do not create/reuse a
different base), then inspect the owned runtime and HTTP listener:
Record runtime PID + version + base + executable ownership. If curl is absent,
pause for an approved read-only HTTP client; do not install tools automatically.
Check the state directory is this new base and not
~/.t3or an old fork home.PAUSE F3: require ready output and HTTP success, with no unexpected provider
turns or browser/desktop launch.
F4. Pair from one explicitly chosen client; no public networking
Use a browser on the same host, or an approved existing SSH connection to
forward a free client port to this loopback server. Do not change server bind,
firewall, Tailscale Serve, service state or an existing forward to make it work.
For an approved SSH target/client with client 47714 also verified free, the
standard OpenSSH forward is:
Replace
user@approved-ubuntu-hostonly with the verified receiving-host SSHidentity; do not execute the placeholder or bypass host-key checking. Track
this foreground tunnel separately; Ctrl+C stops only that tunnel. A same-port
forward preserves the printed loopback pairing URL. If it is occupied, pause
and choose the mapping deliberately; do not replace the known remote at 16534.
If the original credential expires/is consumed, mint a new one with the exact
candidate binary and same owned running base, not a global CLI:
PAUSE — approve pairing authority before using a link or minting a replacement.
At exact candidate
16d428db823f17c18ec16a79e1ec12ae4ba795c1,apps/server/src/cli/pair.tssuppliesauthScopesFlag(AuthStandardClientScopes). Despite that constant's name,packages/contracts/src/auth.tsdefines it as all 16 currently grantablepermissions, including
access:read,access:write,settings:write,providers:manage,environment:maintain,relay:readandrelay:write.Thus omitting
--scopegrants access-management and the other currentmanagement permissions; the earlier “not admin management scopes” statement
was incorrect. These are explicit permissions, not a separate “admin” role.
apps/server/src/cli/authScopes.tsconfirms that repeated--scopeoptionsreplace, rather than augment, the default set. If narrower permissions are
wanted, pause to choose the exact explicit set before pairing; do not silently
substitute one.
issueStartupPairingCredentialinapps/server/src/auth/EnvironmentAuth.tsalso uses this same default permissionarray for the non-dev startup credential. This agrees with candidate
docs/user/remote-access.md(“New pairings without--scopeinclude all of them”).Granting a capability does not override the operational ban on model turns.
Only if the user approves that full default authority:
No
--tailscaleflag: that would persistently modify a Tailscale Serve mapping.Use the actual generated token-bearing pairing URL, not a bare origin.
Pair/open only the chosen client with the approved permissions; do not run
a model turn.
No OS notifications: the headless server itself has no desktop alert/sound
channel. Notifications belong to clients and default Off. On the chosen client,
leave system notifications/sound Off, and do not grant browser notification
permission. A server log/pairing QR is not an OS notification. This test proves
headless startup/pairing/silent behavior, not an agent-event notification
delivery scenario; triggering one would need a separate approved test.
PAUSE F4: confirm pairing, environment identity, bundled UI load, and silent
headless behavior. Only then consider using this independent Ubuntu test server
as the approved remote for Windows #28.
10. Evidence, rollback, and stop conditions
Evidence to retain per selected receiving host
SHA256SUMS; actualpayload hash/bytes, OS/CPU/distro/default user, installation/executable path,
precise newly owned data home and startup PID/port/environment ID.
A PID alone is not ownership; re-check executable/path/parent if it changed.
<PreviewHome>/userdata/logs/desktop.trace.ndjson,server-child.log, and anyserver-child-<instance>.logfor WSL.State uses
userdata/statev2.sqlite; do not open it read-write or copy a liveSQLite file. Do not attach
secrets, auth tokens, or the whole profile.<BASE>/userdata/logs/server.trace.ndjson; inspectserver-runtime.jsonwhile running. After shutdown it may be removed.Provider log directories do not prove a provider/model turn was authorized.
video for motion. Screenshot feat(desktop): add client-only mode and guard backend ownership #28 OFF/remote retained, actual relaunch OFF,
and ON reversal. WSL record exact distro/root, mode/marker checks and repair
logs. Redact pairing URLs/tokens, personal chats and private command lines
in copies, not by altering original evidence or live logs.
receiver stage, native UI, cold cache, warm cache, deliberate repair, pairing
and client-only reversal. Do not infer Windows/WSL passes from Mac or CI.
Rollback without touching existing installations/data
Confirm its captured process tree and owned listener stop, while baseline
stock/fork services and independent remotes/forwards remain. No name-based
kills. Unexpected surviving ownership requires a pause, not
taskkill /IM,pkill,killall, broad PID searches piped to kill, orwsl --shutdown.recorded PID/listener ends. Stop only the newly opened foreground SSH tunnel
if one was created, never an old forward.
only its managed backend stops. Preserve the fresh test distro, profile,
state and cache as evidence. Do not unregister a distro or delete/rename
~/.t3-fork-preview.binary against a V2-migrated home is not rollback. If an old profile was
accidentally opened, stop and use the separately approved consistent-backup
recovery plan; do not improvise a database downgrade or copy-back.
user explicitly wants removal, use the normal uninstaller for this exact
candidate. If identities are ambiguous, leave it installed and pause.
Do not uninstall stock T3 or erase old/new user data automatically.
its original launching environment. Close the test PowerShell session to
discard process-only overrides; do not set/unset machine-wide variables.
No provider/model turn is authorized by any step above, on any receiving host.
Any future native Copilot/session test requires explicit per-host approval,
chosen provider home/model/budget and a separate bounded script.
Source evidence used for this runbook
All source references are at candidate
16d428db823f17c18ec16a79e1ec12ae4ba795c1, not moving main or an old packaging branch:.github/workflows/fork-native-preview.yml: NSIS-only Windows upload,independent Linux input, Windows
C:\t3\tmpversus checkoutC:\t3\s.scripts/fork-preview-manifest.mjs: real manifest fields, four-manifesttransform, actual artifact hashes and checksum-file format.
scripts/build-cli-archive.ts: single-stem nativet3, adjacent client/monitor/runtime node_modules, not a loose JS
bin.mjsinstall.scripts/fork-preview-bootstrap.cjs,scripts/lib/fork-preview.ts:preview home/identity/bootstrap and fixed fork installer app ID.
apps/desktop/src/settings/DesktopAppSettings.ts,app/DesktopStatePaths.ts,app/DesktopEnvironment.ts: defaults/schema/paths.apps/desktop/src/backend/DesktopBackendConfiguration.ts,wsl/DesktopWslBackend.ts,wsl/DesktopWslEnvironment.ts:real primary/secondary selection, fixed Linux preview home, account-home
probe, cache readiness/promotion and repair.
apps/desktop/src/ipc/methods/wsl.ts,ipc/methods/localEnvironment.ts,apps/web/src/components/settings/ConnectionsSettings.tsx,LocalEnvironmentSetting.tsx: supported UI switches and relaunch behavior.apps/desktop/src/window/DesktopApplicationMenu.ts,DesktopWindow.ts:actual menu actions/accelerators and hidden title-bar/auto-hide configuration.
apps/server/src/cli/config.ts,server.ts,pair.ts,startupAccess.ts,config.ts: exact CLI flags, headless output, pairing and state/log paths.apps/server/src/cli/authScopes.ts,packages/contracts/src/auth.ts,apps/server/src/auth/EnvironmentAuth.ts,docs/user/remote-access.md:no-
--scopepairing includes the current full permission set, includingaccess management; an explicit repeated
--scopelist replaces that set.docs/user/notifications.md: client-owned notifications, off by default,no alert/sound channel for a headless server.
#28. Historical issue prose
is not substituted for current source behavior.
Preparation changed only this runbook. No repository source, lifecycle/PR/release,
CI dispatch, artifact payload download, live app/profile, OS permission or host
configuration was changed.
jdbencardinop commentedon Oct 29, 2026
v0.1.4 reconciliation: recorded source, local qualification and receiving-host handoff
Candidate ready for receiving-host evaluation, not production promotion.
Product source is
16d428db823f17c18ec16a79e1ec12ae4ba795c1;reconcile/v0.1.4-forknow points at metadata/report commit4778f4739bfc754d69076a5381f7b080bcddf78b, with no additional product changes.Base is immutable upstream v0.1.4
783581d461dc72cdd8f78fc8abb4ad536dfc4547.No main merge, PR, release tag, live backend upgrade or physical-phone replacement
occurred. The original checkout, its four pre-existing Android
.gradle/directories and the original running backend were preserved.
1. Yes: the reviewed fixes are recorded
They were included in their complete owning tpatch roots, not separate patches
for every individual bug.
phase1-foundationcopilot-cli-providercopilot-runtime-packagingHistorical
copilot-skill-controlsandcopilot-skill-controls-ws-rpcrecordswere inspected against the actual installed source, not just their “applied”
labels. Their mutation RPCs were already absent from installed
bc9eeb9aand themobile baseline. They are not a newly introduced v0.1.3/v0.1.4 regression.
2. Maintained roots and exact replay
The eight maintained roots carried forward are:
copilot-cli-providersession-searchcopilot-sdk-license-noticecopilot-runtime-packagingphase1-foundationattention-notificationstpatch-local-capture-ignorefork-maintenance-policymobile-hermes-segmentationremains evidenced as upstream-covered; it was notsilently skipped or reintroduced. Both native clients now boot and read history.
Integrated validation/review produced three additional cohesive roots:
foundation-v014-client-compatattention-policy-completion-watermarksfork-maintenance-check-scope.tpatchhistory during application checks, without excluding product code or weakening mixed-change checksEvery replay had actual source inspection, including non-conflicting paths and
explicitly removed/absorbed pieces. All eleven canonical patches strictly
replay in dependency order to the actual built candidate, including file modes:
tree
226936033452d479986dff3779db6584e39a4342, zero residual outside administrative.tpatch/.Immutable internal replay record and adjacent reproducer.
The already accepted v0.1.3 replay was not rerun.
3. What actually passed locally
vp run check:changed v0.1.4runbooks/check.txt:1clipboard; 710 → 1126 → 710 pixels; real new/existing dispatch at 600px; active search highlight on actual nested tool summaryThe native turn ran on the isolated source backend, controlled by packaged
desktop and native mobile clients. Packaged backend dependency/load checks and
UI boot are separate evidence; the packaged profile's providers stayed disabled.
The development server still reports the upstream source manifest's
0.1.3;its code is the pinned v0.1.4 candidate. Distribution builds use the recorded
0.1.4-preview.20261029.1version transform.The copied fixture had five completed runs and no pending work or schedules.
Upstream migrations 070–072 ran; the next turn retained native session
1d073f35-cac7-4a29-a9ea-090e4594599a. Android approved phase one, iOS phase two.The run remained active during the second approval, then completed with inbox 0.
Three native assistant-step endings did not incorrectly end three user turns.
Runtime/receipt evidence
and local qualification scope.
Visual evidence
Names are masked or headers cropped where noted. Captures are actual clients,
not static component markup. The local Replay provider used for keyboard checks
does not make paid model calls.
#30: old empty picker versus v0.1.4 cold selection and removal
Old installed baseline:
New packaged client, before any turn in the draft; irrelevant machine row cropped:
#31: actual clipboard value, not just the displayed link label
Old installed baseline:
v0.1.4: copied through the real context menu, asserted through the clipboard and
pasted into the unsent composer. The crop excludes unrelated historical warnings.
#23 width and #18 narrow-window dispatch
Two persisted local Replay runs completed. New-draft Meta+Enter submits in the
background and opens another draft; existing narrow composers need normal
expansion/focus. Those caused initial harness assumptions to fail, not product
failures. The separate optional plain-Enter scenario was not claimed implemented.
Native Mac client-only OFF/ON and retained remote
Real shared native approval on both mobile clients
Headers cropped for privacy. These are native Simulator/Emulator clients, not
mobile-sized browser views.
Activity search and standalone Android without Metro
Search 2/3: the active CSS highlight targets
printf 'v014-phase-two\n'in theexpanded nested activity, not merely the user's prompt.
Android Release cold-launched without Metro. A later CLI-created free Replay
message arrived live, excluding a cached-history-only false pass:
Unedited 79-second receipt/lifecycle recording; supervised approval waits are
included:
v014-native-receipts.webm
4. Native Copilot capability clarification
These are integration limits, not claims that the SDK has no such APIs.
The fork remains pinned to SDK 1.0.8 / CLI 1.0.75. Latest SDK observed is
1.0.28, researched
without silently upgrading.
history.compactalready exists in 1.0.8; automatic compaction is mapped, explicit manual invocation is not exposed heresessions.forkalready exists in 1.0.8; T3 portable handoffs/forks are distinct from a native Copilot fork$and/still work.$selects a project/provider skill;/modelandskills in the slash menu were exercised. They are independent of permission
prompts for the tools an agent subsequently invokes. This is not parity with
every interactive CLI slash command.
/planis hidden by the preserved default-off client preference:Settings → Legacy → Plan mode. This is not a Copilot approval restriction;
native plan execution itself was not newly qualified.
An SDK upgrade should be a separate controlled change: 1.0.28 also changes runtime
packaging to SDK platform packages and changes experimental method shapes.
5. Tpatch outcome and retrospective
The specific v0.1.3 baseline failure was deduplicated and reported as
tesseracode/tesserapatch#26.
The internal exact replay satisfies the source-reproduction requirement.
The normal verifier is not all green: four of eleven current roots pass;
seven retain recorded historical-anchor, parent/child-postimage or preserved
malformed-ancestor blocks. Current invalid recipe schemas were actually fixed,
not waved away. No generation manifest or success evidence was fabricated.
Final per-root verifier records
and retrospective with historical comparisons.
Conclusion: durable intent/retirement/accounting improved, but capture, recipe
and anchor friction recurred. Plain Git would probably have been mechanically
easier for these ports, while needing an equivalent feature ledger. No timing
benchmark was invented. The executed tool was 0.16.0; 0.17.0's notes were checked,
but that newer binary was not benchmarked.
Keep unrelated roots separate. Foundation compatibility and the notification
watermark fix are natural candidates to fold into their respective owners during
a controlled complete-root refresh; no unreviewed mega-patch or history rewrite
was forced into this candidate.
6. Artifacts and receiving hosts
Build-only CI run 40928076911
passed both targets on source
16d428db...: one of four approved attempts usedper target, three remain.
T3CodeDev-v014-source-16d428db8-android-arm64.apk, SHA-256e27ea13bef29bb23132069e3782379bb147786b6d5d25b82b51394b989649838; debug certificate, not a Play Store releasePause-gated receiving-host runbook.
Start with one host's read-only preflight, not a bulk install.
Important: a fresh Windows preview profile starts Windows with WSL off, but a
Windows profile override does not isolate WSL's fixed Linux
~/.t3-fork-preview. Existing fork installs/homes require an explicit migrationdecision or a genuinely separate test account/distro. Do not use updater,
uninstaller or cache-deletion shortcuts to bypass that boundary.
Remaining gates: receiving-host Windows menus/client-only/WSL and Ubuntu startup;
physical-phone installation; physical iOS release/Intel Mac compatibility;
cross-machine peer delegation; full off-screen long-plan scenario; real OS
notifications/push. Computer use remains deferred. No full repository test suite,
Rust test matrix or universal native test matrix was run.
Implementation/verification: GPT-6 Astra in GitHub Copilot CLI.
Specialized implementation, research and independent review: GPT-6.1 Sol in
GitHub Copilot CLI.
jdbencardinop commentedon Oct 29, 2026
Later checkpoint: physical Android installed and connected
The approved in-place update on the Samsung Galaxy A54 (Android 16, ARM64) succeeded. The existing development app was updated from native version 1.2.0 to 2.2.0 without uninstalling or clearing data. The signing certificate and app UID were retained, and the installed APK matches the already-qualified candidate SHA-256
e27ea13bef29bb23132069e3782379bb147786b6d5d25b82b51394b989649838.Product source remains
16d428db823f17c18ec16a79e1ec12ae4ba795c1; this is new evidence, not another product build or a main/release promotion.The phone paired through the normal Add environment form to the isolated validation backend using USB forwarding. Its previous saved environment remains registered, although that environment was unreachable during this check and its compatibility is not qualified here.
Demonstrated: standalone cold launch with Metro stopped and OTA updates disabled, saved pairing retained, existing fixture history loaded, and a fresh local Replay turn received after restart without another reload. Run ordinal 5 completed successfully with
todo list fixture complete; its expanded prompt and completion are visible below. No new paid model turn was used.Open limitation: immediately after pairing, the list initially showed both fixture threads, then only the native thread with a working indicator despite completed authoritative runs. A cold restart restored both threads. The cause was not isolated, so initial-list freshness is not marked passed. Ordinal 4 was only observed after restart and is deliberately not counted as live-stream proof; ordinal 5 provides the post-restart live proof.
This connection is USB-only and stops working when unplugged. It does not qualify LAN/VPN/relay access, notifications, or background delivery. Windows/WSL/Ubuntu runtime qualification and physical iPhone qualification remain separate.
The earlier reconciliation report and receiving-host runbook remain the baseline. This later checkpoint does not retroactively change their earlier emulator-only statements.
An independent GPT-6.1 Sol reviewer inspected the new record, image, package preflight and runtime receipts, finding no significant inaccuracies or overclaims within that bounded scope. The unresolved initial-list behavior is not waived by that review.
The structured physical-phone checkpoint is committed on
reconcile/v0.1.4-fork. Product source is unchanged.Model: GPT-6 Astra. Harness: GitHub Copilot CLI.
jdbencardinop commentedon Oct 30, 2026
v0.1.4 receiving-host qualification and recovery
This is a qualification report, not a production deployment announcement.
The tested runtime remains
16d428db823f17c18ec16a79e1ec12ae4ba795c1,version
0.1.4-preview.20261029.1, on upstream783581d461dc72cdd8f78fc8abb4ad536dfc4547.It supplements the earlier reconciliation report.
Qualification and owned-test cleanup below are closed through 12:58 UTC.
The separate read-only post-recovery observer completed its 14:30 UTC closeout.
Source and tpatch accounting
Two additional maintained roots were recorded and independently reviewed:
windows-preview-zip-artifactadds an optional ZIP workflow output whileretaining NSIS as the default. No ZIP build was dispatched or qualified.
Both Windows hosts instead verified and extracted the existing NSIS payload
without running the installer.
linux-runtime-libatomic-prerequisitedocuments the Linux loader dependencyand distinguishes a pristine image from an explicitly dependency-installed
test variant. It does not install packages or change runtime behavior.
The thirteen-root composition exactly reproduces tree
194f437791ac3accb8dd0542fbe75b5378bc52b2, including file modes, outsideadministrative
.tpatchmetadata. Its recorded target isbe4a0ae86808cbba5d23663a1e5d4fbe15493892.The latest documentation feature still encounters the known parent-footprint
verification limitation tracked in tesseracode/tesserapatch#26; independent
exact replay is the disclosed exception, not an all-green verifier claim.
Only workflow and documentation files changed outside
.tpatchafter thetested runtime source. No replacement native build was needed. No additional
CI attempt was used; the existing three remaining attempts per target were
not consumed.
Receiving-host evidence
libatomic.so.1rgexecute-bit fault, product-managed cache recovery, successful repairedrg --version, and complete owned cleanupFour logical paid product-test turns were reported: two on primary Windows,
one on the other Windows host and one on the first Ubuntu host. This is not a
billing, token or SDK-request count. No paid WSL turn or additional paid turn
was needed for the later readiness work.
Primary Windows search and skill selection/removal have additional UI
observations. Resizing a viewport is not proof of the Appearance Chat width
preference; that Windows preference gate remains unqualified.
The second Ubuntu run first stopped on extractor-created directory modes that
differed from the archive. Only the validated directory modes were corrected;
all 4,741 entries were then verified before execution. This was a harness
correction, not a packaged-runtime fix or the separate WSL executable-mode test.
Its initial auth cleanup successfully revoked the first automatic startup
grant but did not target a second startup grant. That grant subsequently
expired without revocation. Two historical CLI-issued bearer rows were already
revoked; there were zero active sessions, not zero total session rows. An
overstrict total-row guard stopped the separately permitted offline cleanup
before invocation. These failures remain recorded. No active pairing grant,
active bearer session or reachable test backend remains, but expiry is not
labeled revocation and the original overall assertion is not relabeled PASS.
No product defect was established.
The WSL mode test used only its dedicated test distro and inactive runtime
cache. A verified cache-only backup preceded the single
0755to0644change. The normal product invalidated and restaged the verified cache;
expected bytes, ownership and executable mode were restored. All 27 tracked
guest processes exited, and independent checks confirmed released
ports and preserved originals. Matching sampled inode numbers were not used
to claim in-place repair. No manual rollback was needed.
Actual shipped-data migration rehearsal
A consistent, read-only snapshot of the original WSL database was exercised
through the real candidate persistence/importer layers without launching a
server, provider or workspace operation. One thread, five user/assistant
messages and all thirteen auth rows were retained; source bytes were unchanged,
and reopening imported zero additional messages.
This does not preserve old native sessions, tool/activity/checkpoint history
or prove encrypted-catalog credential usability. The first V1 continuation is
intentionally a fresh native provider session with transcript handoff.
The focused migration command was:
Result: two files passed and one failed; seven tests passed and one failed.
The upstream synthetic cutover fixture uses a migration-41 ledger name that
the fork guard rejects. The actual shipped ledger is canonical and passed
the separate snapshot rehearsal. The guard was not weakened and the fixture
failure was not hidden.
Result: both selected tests passed; thirteen unselected tests were skipped.
No repository-wide check was run for this overnight qualification.
Preservation incident and recovery
At 10:27 UTC, the primary machine's original Windows and managed-WSL backends
were found absent without an authorized production stop. The exact exit time
and cause remain unknown. Bounded log/event/helper inspection did not establish
a crash, clean shutdown or responsible actor.
Further mutations were frozen. Pre-start evidence was preserved privately.
A conservative global process inspection encountered protected records for
longstanding OS/session services; ordinary metadata identified them without
changing permissions. The incomplete global census remained recorded as such.
A narrowly scoped normal-owner check was accepted only for restoration, not
for backup consistency or migration.
Exactly one normal launch of the unchanged original application occurred at
10:53 UTC. By 10:58 UTC, actual Windows and native WSL owners, original versions
and saved identities were verified. Passive authenticated shell-snapshot
evidence demonstrated protected application access. The second Windows host
independently corroborated both existing public consumer routes responding
again, without claiming its own encrypted-catalog or protected-data proof.
This is recovery, not uninterrupted preservation, hydrated-chat verification
or an explanation of the original exit. No installer, transport repair,
credential extraction, profile reset or production migration was used.
Raw incident logs may contain sensitive headers; they remain private and are
not part of this public report.
All three primary-owned test runtimes were subsequently stopped under a
separate, narrowly scoped grant. Actual job membership excluded original
owners and transports before either Windows stop. Linux cleanup separately
observed the detached resource monitor exiting rather than assuming a
process-group stop covered it. Original owners and retained routes stayed
healthy before and after each stage.
The requested Linux interruption produced backend exit 130 and outer-wrapper
exit 1. Those values remain recorded, not relabeled as exit 0; actual stop
receipts, stable process-exit events and released ports establish cleanup.
Private profiles, journals and evidence were retained.
The observer was then stopped at 14:30 UTC with its actual exit verified.
All 178 completed samples, from 11:32:12 to 14:29:13 UTC, passed the sampled
Windows owner and public Windows/WSL version/identity checks. Sample starts
were at least sixty seconds apart. This is not continuous uptime, native WSL
process ownership, protected-data or rendering proof. The original exit cause
remains unknown; no further original-service or migration changes were made.
Migration remains gated
No complete stopped-profile backup, full application restore rehearsal,
original encrypted catalog/credential rehearsal or production cutover was completed. V1 and V2
clients and servers are incompatible; a rolling mixed cohort cannot be called
globally healthy merely because its public endpoints respond.
Windows and its desktop-managed WSL runtime form one upgrade/rollback boundary.
Copied managed-SSH entries can bootstrap a remote runtime even with a saved
bearer, so catalog transport classification must precede any clone launch.
Any future cutover must preserve existing identities, auth/signing state,
connections and tunnels, with explicit compatible-client and rollback plans.
The original services remain the production owners. No PR, main promotion,
release tag or computer-use experiment was performed.
Before deployment, finish a connection-preserving catalog and backup/restore
rehearsal in a separately approved maintenance window, followed by an explicitly
coordinated compatible-client upgrade. None is implied by these isolated successes.
Retrospective extension
Tpatch again helped preserve complete intent, feature ownership and exact
composition. It did not provide runtime isolation, discover the loader
prerequisite or prove restoration. The parent-baseline limitation recurred
with the new documentation child, despite an exact combined replay.
Archive extraction/tool availability, WSL large-file allocation failure,
message-correlation mistakes and process-inspection harness corrections are
separate operational issues, not tpatch defects. The unexpected original-owner
exit also remains unassigned rather than being attributed to tpatch or a test.
In particular, archive file ownership need not equal the test shell's UID,
active sessions are not total historical rows, and a public HTTP-ready response
does not establish completion of later startup-auth issuance. Acceptance had
to follow actual product behavior rather than these stronger proxy assumptions.
The earlier conclusion still holds: stronger evidence and intent accounting,
with recurring metadata overhead. Plain Git could simplify immediate port
mechanics, but would still require the intent ledger, source/mode comparison,
native qualification, migration rehearsal and preservation checks. No measured
speedup, cost advantage or causal claim is available.
The previously identified future folds remain Foundation compatibility into
Foundation and completion watermarks into attention policy. The two new
packaging children remain explicit; no parent recapture or unrelated
consolidation was forced merely to silence verification warnings.
Coordination: GPT-6 Astra in GitHub Copilot CLI. Receiving-host execution and
independent reviews used GPT-6 Astra and GPT-6.1 Sol in GitHub Copilot CLI,
with the scopes and limitations stated above.
jdbencardinop commentedon Oct 30, 2026
v0.1.4 preview deployed to the six-environment cohort
The two Windows installations, their two managed WSL backends and both Ubuntu
services now run the tested
0.1.4-preview.20261029.1runtime from16d428db823f17c18ec16a79e1ec12ae4ba795c1. This is a preview deployment,not a main-branch promotion or new release tag.
Both participating Windows clients independently read fresh authenticated
Providers data from all six environments. Original environment identities
and existing saved connection names/endpoints were retained. No re-pair was
needed for those read checks, and no new paid provider turn was run.
Deployment record
Times below are UTC on October 30.
The primary client's six-target read matrix completed by 19:36:40; the
secondary's separate matrix completed by 19:47:26. Genuine normal UI evidence
and runtime receipts remain private on the receiving hosts.
The Windows installs used the existing fork identity/profile, not a third
installation. Ubuntu changes were minimal overrides of the existing services,
retaining host/port/home and unrelated transport definitions. Legacy databases,
previous releases and private backups were retained. Native provider stores
were not migrated or rewritten. No stock application was uninstalled.
Backups and explicit limits
The user accepted best-effort backups and did not require particular thread
histories or native-session continuity to survive. No-stop captures covered all
six environments, including individually consistent SQLite snapshots and
opaque connection/identity/signing context. Both Windows Chromium captures
were partial because of live locks/timeouts; failed partial databases are
explicitly excluded from qualified restore candidates.
Additional cheap closed critical context was preserved during actual cutovers.
These are not full atomic OS/profile images or proof of complete rollback.
The secondary's native recovery copy was verified separately from a retained
Store-Python-cache copy with a documented access/lifecycle limitation.
The previously unexplained original-owner exit remains unexplained. Generic
Windows job membership was disclosed rather than treated as proof of a
test-job lifetime; normal installed owners persisted after installer/helper
exit. No OS, foreground, trust or security restriction was bypassed.
Remaining permission work
The new UI identifies old saved grants that lack newer fine-grained permissions.
On the primary client, each of its four remote sessions was independently
observed with:
orchestration:readorchestration:operateterminal:operaterelay:readThe pinned ordinary thread dispatch/launch/stop authorization gate uses the
retained
orchestration:operatescope. This is a source/permission check, notan additional paid agent-turn test. Provider/settings controls and other newer
UI actions remain restricted under the old grants.
The user explicitly approved normal in-place refresh to the current full
standard set of sixteen permissions, including access management, relay write
and environment maintenance. Two conditional first-target refreshes were
reserved, requiring direct local consent and preservation of IDs/names/routes.
No completed refresh or updated effective-scope receipt reached the
coordinator before the 20:20 UTC cutoff. Do not assume the restrictions are
resolved or that no partial auth action occurred; obtain the final local
receipts before any further attempt.
No new work was started after the cutoff. The coordinator receiver exited;
separate final remote relay/receiver exit confirmations were not received.
Healthy installed services were not targeted for shutdown.
Separate requested feature
copilot-fusion-model-selectionwas registered in requested state on its own branch. The current native
adapter dynamically passes SDK model IDs, but has no Fusion-tier plumbing;
full support remains unqualified. Official Fusion documentation and public
CLI compatibility cautions are recorded in the request.
No Fusion implementation, SDK upgrade or model change was mixed into this
deployment. The thirteen-root replay and tested runtime identity remain the
same as in the qualification report.
Coordination: GPT-6 Astra in GitHub Copilot CLI. Receiving-host execution and
qualification evidence: GPT-6 Astra and GPT-6.1 Sol in GitHub Copilot CLI,
within the stated scopes.
jdbencardinop commentedon Oct 31, 2026
October 31 inventory: fleet rollout, mobile compatibility and backlog
Live changes are paused. This is a read-only inventory and next-step plan,
not approval for another migration, pairing, install or network change.
Rollout state
There are eight known T3 environments: two Macs, two Windows environments,
their two WSL environments, and two Ubuntu services. Six were migrated to
0.1.4-preview.20261029.1, source16d428db823f17c18ec16a79e1ec12ae4ba795c1.Separately, the two Windows clients have eight saved remote connection entries.
Seven now have actual full-current-sixteen-permission, authenticated-read
and preserved-identity/name/route checkpoints. All four primary-client entries
are complete. The remaining entry is the secondary Windows client's connection
to the primary managed WSL environment; its backend is already migrated.
The final receiving-view confirmation arrived after the eight-hour window
expired. Dispatch of its next check was refused; no P4 issuance or exchange was
reported, and its prepared command was not released. Resume only under fresh
explicit authorization; the old guarded command has expired.
Both workers reported actual coordination-helper completion, and the primary's
receipt was retrieved privately. Exact exit timestamps were not recorded, so
on-time helper exits and report deadlines are not claimed. No production
process was targeted in closeout. Earlier transient reconnect observations and
best-effort backup limitations remain qualified, not silently marked fixed.
0.0.42-preview.20261001.1. Production upgrade remains pending.0.0.42-preview.20261003.2, with its original identity. Controlled source-built V2 migration remains pending.The published reconciliation tip is
5de10d464685e7e579883c4ac4fc8350a39c012f.No main promotion, new release tag or PR is implied.
Mobile: signing renewal was not a V2 upgrade
16d428db8; standalone embedded JavaScript, OTA disabled, development identity/debug certificate.Neither physical phone was currently available for a fresh installed-package
query. The iPhone's CoreDevice connection is disconnected; cached boot/OS data
is not a live app inventory. The existing ADB server listed no attached Android.
No device was woken, launched, installed, paired or newly connected.
Android's initial stale-list observation remains unresolved and accepted as
non-blocking. Android network setup is explicitly out of this plan.
Best first iPhone target
Use the older Intel Mac with the existing V1 iPhone app first. Its known
private NetBird endpoint returned HTTP200 with the original identity during
this audit, and its V1 release matches the phone's last verified client.
This is not a claim that the Intel Mac is upgraded to V2 or that a phone
connection has already succeeded.
The existing server/LaunchAgent and saved phone route avoid a new exposure
mechanism. It is a laptop: keep it awake for the test rather than assuming
always-on availability. The private operator report retains the exact endpoint.
Morning sequence:
delete/re-add or re-pair merely because it says reconnecting.
from that exact environment. Public HTTP200 alone is not authentication.
phone-specific grant with agreed compatible scopes. Do not reuse Windows
codes or mint a token while the user is asleep.
a fresh protected response. No provider turn is necessary for this test.
Generic private-IP pairing already works; #19's optional NetBird integration is
not a prerequisite. Windows localhost forwards are not phone addresses, and
one phone connection does not inherit the desktop's other connections.
NetBird does not provide T3 mobile push delivery.
To use the six migrated V2 servers, the iPhone first needs a qualified
physical-device V2 native build, preserving the personal bundle/team/keychain
identity for an approved in-place upgrade or explicitly choosing a separate
candidate. Re-signing the old Expo57 binary or loading newer JavaScript alone
is insufficient. Coordinate the two Mac migrations with that compatibility
transition so the working V1 phone path is not removed prematurely.
The primary Windows host is an existing NetBird anchor, but its known T3 port
timed out from this Mac and earlier UI showed network access off. A V2 phone
path would require approved private exposure/access policy, not an assumed
reachable localhost URL or a backend-outage diagnosis. Do not use public
netbird exposefor this private connection.Current GitHub backlog
Snapshot: 24 open issues, including umbrella #1. Older issue bodies/labels
are not always updated with the later v0.1.4 evidence; no issues were closed
or relabeled by this inventory.
Also retained:
copilot-fusion-model-selection, requested only on its ownpublished feature branch, not deployed. Dynamic model aliases do not prove
Fusion tier support. No SDK upgrade or Fusion turn was mixed into this work.
Closed #2-#9 and #20 cover earlier reconciliation, attention, TWS context and
truthful Copilot lifecycle work; do not recreate those implementations.
Tpatch and qualification follow-ups
The last proven v0.1.4 source/file-mode replay uses 13 selected maintained
roots, not every historical ledger record. Today's read-only
tpatch 0.16.0dashboard contains 50 entries, including historical and pre-implementation work.
Legacy background-task/custom-agent/resource/tool-detail/skill-UI requests and
the old
system-generated-turnsimplementing record need upstream V2 re-audit,not automatic replay.
The status read reports one historical metadata warning:
satisfied_byoncopilot-package-payload-pruning -> windows-portable-packaging-testswhile that parent is blocked. No repair ran,and it is not asserted to be the same issue as tesseracode/tesserapatch#26.
The accepted exact-replay exception still requires preserving failed verifier
evidence and behavioral/platform qualification. No fresh all-green verifier
claim is made.
Remaining rollout work is therefore: the final client permission entry,
physical iPhone V2, the two production Mac upgrades, and explicitly approved
promotion/release decisions. Optional ZIP delivery and unqualified platform
corners remain labeled rather than hidden. Larger feature work and computer
use remain deferred.
Prior evidence
Inventory and plan: GPT-6 Astra in GitHub Copilot CLI. No new runtime/mobile
installation, pairing, VPN/firewall change, provider turn or feature
implementation was performed for this inventory.