Skip to content

Sync upstream 4c924ff4 with Jones composition and current main - #929

Merged
Mjones13 merged 2330 commits into
mainfrom
work/upstream-sync-4c924ff4-20261110
Nov 12, 2026
Merged

Mjones13 merged 2330 commits into
mainfrom
work/upstream-sync-4c924ff4-20261110

Conversation

@Mjones13

@Mjones13 Mjones13 commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Problem

Jones Code is behind upstream T3 Code. #850 imports upstream 07a1e799. This branch carries that composition forward to upstream 4c924ff4e6. It keeps the Jones provider accounts, orchestration safeguards, persisted history, updates and the approved composer, and includes current Jones main up to ad083bd915 (#969).

Change

This is a normal-merge stack on top of #850's head (592cbf0063). It contains the upstream merge, the Jones composition lanes (RD, MCP, PR, PR-E31), the fixes below, and ordinary merges of each new main. The heads of #688–#694, #833, #837 and #850 are ancestors. Each one's tests and source were also checked for an equivalent at the current head; see "Preservation" below.

  • Codex capacity retries (E3-1). Upstream #25611 is now the only retry chain. Jones adds hooks for its classifier, admission checks, start owner, and a failover that fires once. There is no double retry. The default is upstream's policy (5 retries, exponential backoff). CODEX_CAPACITY_RETRY_PROFILE = "jones" restores 12 retries at 5 s; that choice is the owner's and still pending.
  • Selection and hand-off.
    • The queue-tail model selection follows the newest saved default.
    • Delegated-task questions use the thread's selection (upstream #29909).
    • A queued hand-off keeps a busy replaced session alive (upstream #30401).
  • Settlement Git lane. Upstream's BackgroundGitWork lane is the only background gate. The nested Jones gate is retired and tombstoned, and foreground Git has its own 8 permits.
  • OpenCode.
    • A stream reconnect to the same server no longer drops queued terminal events.
    • The Go usage recovery test no longer races a host npm lookup. The test supplies an empty PATH, and the driver falls back to the host PATH for its registry lookup.
  • Jones peer links stay in the Jones table.
    • All eight PeerLinks SQL sites read and write jones_peer_environment_links. Nothing reads, writes or removes rows in upstream's peer_environment_links.
    • Jones migrations are 148–152. Identity 152 (PeerLinksAdoption) is kept as a no-op. Unreleased sync builds recorded it after copying links into upstream's table; keeping the identity lets those databases start.
    • Rows such a build copied are left unread. Removing them needs a separately authorized operation.
    • Limitation: databases from the earlier unreleased 147–151 numbering are still refused at startup before any write. They are not made compatible.
  • Replay, preview and onboarding.
    • Fx and Kiro replays carry the Jones app identity.
    • Kiro's per-session completeness check accepts a cursor that stops right after a mid-transcript runtime_exit.
    • The install preview follows upstream's bridge reads and notice markup.
    • UI evidence and the macOS monitor smoke go through upstream's single Welcome page without a provider.
  • Restored tests and a source fix. The upstream imports had dropped Jones tests: ChatMarkdown (16 cases), MessagesTimeline (18), the parent alert for a subagent's approval, settings search gates (3), and upstream's ServerBrowser multi-client profile case. They are restored. One of them showed a real regression: after following was released, closing the chat remembered the end of the timeline. MessagesTimeline now records the reading position when following turns off.
  • Merges of current main (latest 48fa5f83c1, eaa07048c2, a8fdbfefeb, ad083bd915):
  • Server 7 repair (0d7505964d). Native qualification also samples the server's own pid. The retention test numbered its fake children from 10000. When a CI worker's real pid fell in that range, a retired child still appeared live, and all four churn cases failed. Pinning the worker pid to 10001 reproduces the same four failures. Fake pids now skip the worker pid, and a unit case covers that. The retention assertions are unchanged.

Lane reports, the semantic matrix and the integration ledger are kept outside the repository.

Preservation

  • Restored: listed above.
  • Equivalent: renamed or moved, with bodies compared. Two deliberate changes are named. Main replaced a permanent admission fence with an explicit retry. Request economy stopped prefetching providers while publish is merely offered.
  • Retired upstream: 44 titles each in T3 sync 07a1e799 · import (constituent, do not merge independently) #833 and Sync upstream 07a1e799 with Jones composition and approved composer #850; the /goal pause reply (#25426); Cursor Keychain search (#32448); the auto-settlement capability gate; the ComposerBannerStack exit transition; useComposerFocusState (#25869).
  • Not ported (owner policy conflicts): PeerMcpClient session renewal (Jones does not replay) and three RemoteDelegation cases (E1-6).
  • Source files whose added lines are mostly not in place: all are accounted for. Each is decoder hoisting, an extraction to a Jones module, an upstream rewrite, or main's Use official Effect-patched TSRS for verified workspace typechecking #712.
  • Evidence limit: one lane's first three browser runs inherited the host's T3CODE_PORT. A static review found no path from them to the live local server. This was not confirmed from the server side.

Scope and approval

This is an owner-assigned continuation of the upstream sync workstream (M Jones) and the successor to #850. This PR does not close #850 or any other historical constituent; those closures stay the owner's. Shared-file edits are recorded Jones hooks, and database changes follow the Jones database boundary.

#879 (the installer) is not imported. Its owner composes it separately from this branch, and its qualification and landing wait for this PR to merge.

Owner choices still deferred:

  • capacity retry count;
  • plan-mode dead modules;
  • MCP alias window;
  • Node 26.13 (native enrollment refuses 26.13.1 / SQLite 3.54.1);
  • compatibility for the earlier 147–151 numbering;
  • tsgo 0.67.1 (E5-16);
  • the RemoteDelegation and PeerMcpClient policy conflicts.

Verification

Local runs used Node 26.12.1 and one test process at a time.

  • At fa5606de5b:
  • Server 7 repair: qualificationRetention passes 16/16 unpinned and with the worker pid pinned to 10000, 10001, 10002 and 10003. Before the fix, pinning to 10001 failed the four churn cases.
  • Migration 152: peer, isolation, upgrade and migration tests pass 65/65. Restoring the old copy body makes 5 guards fail, including "upgrading a main database writes no upstream row" and "every upstream row unchanged".
  • Main merges:
  • Restorations: 171 browser cases, settingsSearch 26, ServerBrowser 159.
  • CI:
    • The required Check passed on 0a1fde3ea4.
    • On 3da7b4f315, Test Server 7 failed (run 43232788252). That failure is the cause of the repair above.
    • On 0d7505964d, the required Check and every Test Server shard passed (run 43236007305).
    • CI on fa5606de5b is running.
  • Advisory, not qualified: the server-parallel native performance jobs fail writer p95 and churn throughput targets on Linux and macOS. That includes a comparison run on another branch. These checks are advisory under the repository policy. Thresholds are unchanged, and this PR makes no native performance claim.
  • Not checked:
    • nativeEffectsRecovery.test.ts, unchanged from main, fails under a group-writable umask (0002) and passes under 022.
    • Server-side confirmation of the inherited-port runs above.

Model/harness: Claude Opus 5.5 via Claude Code in Jones Code (delegated coordinator).

🤖 Generated with Claude Code


Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.

shivamhwp and others added 30 commits November 9, 2026 01:15
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…3260)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…t failed (#33291)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…33268)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…d trip (#33306)

Cold thread opens use the bounded socket snapshot once and fall back to HTTP after any failure, defect, or dropped session. Connects reuse a descriptor a check just read, only over HTTPS, only on an id match, within 5 s. Per-frame socket deflate from #33172 was dropped because the iOS socket already negotiates permessage-deflate.

Continues #33172.

Co-authored-by: Bil0000 <62337003+Bil0000@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…#33209)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… (#25835)

Co-authored-by: Luca Lucidera <l.lucidera@dkr.srl>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… (#27046)

Co-authored-by: maria-rcks <maria@kuuro.net>
…8571)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…on error (#28814)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…29018)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…#29150)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ploads and terminal state (#29164)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… (#29171)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…#29287)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…en its run starts (#29601)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…9642)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…pen conditions (#29678)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… has one digit (#29851)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…3 ms median) (#30038)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…iveries (#30115)

Co-authored-by: Justin <159104807+Justin24506@users.noreply.github.com>
Mjones13 and others added 16 commits November 12, 2026 05:21
Residuals exposed once the runner defect was fixed:
- web: settle permission double carries its environment descriptor; the
  status filter treats upstream's new "preparing" status as working (#28832);
  the hint database test tracks upstream's catalog version 5 (#27798).
- contracts: environment groups include upstream's voice group; old design
  toggles removed upstream (#33131) decode to current defaults.
- provider-core: the mise-native case expects the resolver env that Jones
  native updaters carry.
- client-runtime: the shell harness reconnects to a new server build, the
  case where upstream reloads the HTTP snapshot instead of resuming.
- Preview proof: the held catalog and upgrade control follow the current
  catalog version (5) instead of a literal 4.
- server forwarding tests create upstream's peer_environment_links schema,
  which Jones peer links use since the adoption migration.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Brings in #933 (Claude provider HOME binding and lifecycle proof), #938/#939
(workstreams reader ownership and mixed-version coverage) and #941 (member key
recovery).

Resolutions:
- ClaudeDriver keeps the sync's Claude process environment and binds main's
  provider home from it.
- ClaudeAdapterV2 keeps the sync's transcript state (conversation, empty,
  missing, unreadable) and reads it under main's provider home path; the
  resume test takes main's HOME/config parameterization on the sync's
  SecureRandom adapter input.
- Member-key initialization takes main's interrupted-key recovery on the
  sync's SecureRandom, whose randomBytes cannot fail.
- Effect 4.1.2 adaptations: NodeCrypto for main's new tests and the lifecycle
  dev entrypoint, NodeWS for its WebSocket.
- Boundary inventory merged structurally.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tstrap

The Jones launcher read preflight results through cloud/servicePreflight.ts,
which also imports the migration manifest, pulling Effect and most contracts
into dist-exe/bin.mjs (2.18 MB over the 1 MiB budget). The result reader now
lives in jones/cloud/servicePreflightResult.ts; the bootstrap builds at
236,459 bytes with the guard unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Jones opens the model picker on Favorites, so the new upstream test
selects the thread's provider tab first, as the other adapted picker tests
do. It also loads the app stylesheet: the picker list is virtualized and
measures zero height without it, so a tab switch renders no rows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream now pans expanded images on a plain wheel and zooms only on a
pinch or Ctrl+scroll, which arrive as ctrlKey wheels. The Jones zoom tests
still dispatched plain wheels and expected them to zoom.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…merge

Merging main into the upstream sync resolved AttachmentFilePreview's
browser tests to upstream's file, dropping the Jones side: the workspace
PDF tests adapted to PdfPreview, the PDF scroll clamping and reload tests,
the workspace image decode retry test and the Word CI trace. Upstream's
two workspace PDF tests then targeted the native frame and PdfViewer,
which Jones replaces with PdfPreview whenever a retry is available.

Redo the file's three-way merge: keep the Jones tests and upstream's
worker URL preparation, and port upstream's new revision-reload test to
PdfPreview. Re-export WorkspaceImagePreview, whose export the same merge
dropped, for the restored image test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…eads

Upstream's model picker now reads the server configuration and holds a
provider refresh command so it can check for new models when it opens.
The evaluator test's server mock lacked both, so the picker crashed on
render. The mock now models a server without catalog refresh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream now shows styled text's Markdown markers as source text while the
selection touches it and parses them back once it leaves, so those
selection moves produce a new document. The serialization cache tests
expected no serialization for any selection move; they now require none
for an unchanged document and exactly one for a revealed or collapsed one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…seams

- Codex: an original start whose ACK registered a root and whose pending
  notification replay then overflowed or was cancelled never emitted the
  root's local failure terminal after the capacity composition replaced
  logicalContext with continuationOf. The request keeps the ACK-registered
  root, and finishUnknownCapacityStart falls back to it.
- Tests follow accepted upstream behavior: settle-after-run command IDs carry
  the event sequence (#31815), scheduled tasks validate the destination thread
  (#31379), replay checks prunedThroughSequence, PR linking moved to its own
  tool, invalid case-insensitive regexes retry as literals.
- Jones guards stay in force: the unborn checkpoint runs in an orphan linked
  worktree, cached runtime reuse carries verified provenance, and the OpenCode
  version lookup cannot reach a host npm under the TestClock.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Jones renders thread relationships through its own Linked panel and remote
rows, so two upstream Lineage fixes never reached them:

- Deleted forks stayed listed, unloaded forks showed their raw ID and
  archived forks kept a stale title. The panel now resolves titles for
  rows missing from the shell, hides a row only once that lookup settles
  without it, and prefers the resolved title.
- A long machine label squeezed a remote task's title to nothing. The
  label now truncates within half the row, ahead of the status.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream's relationship tests now load the app stylesheet, so layout
decides what the pointer reaches in the Jones Linked panel:

- Jones disables unreachable rows inside a tooltip trigger, so hovers go
  to the trigger rather than the disabled button.
- The persistent merge error toast covers the Jones Parents row in the
  test viewport, so the retry activates Merge from the keyboard.
- Forks sit in Linked groups that start collapsed, so that test expands
  them first.

Section headers now truncate their labels as well, so the Jones long-title
test finds the row title by its text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ow copy

Migration 152 copied Jones links into upstream's peer_environment_links,
which writes upstream rows that the Jones database boundary forbids. This
restores the main design:

- PeerLinks reads and writes jones_peer_environment_links through the
  peerPersistence/table.ts indirection at all eight SQL sites, including
  upstream's new label update. The upstream body and the Jones generation and
  in-flight seams are unchanged.
- Jones migration 152 is removed. The released Jones table (119) already has
  upstream's ten columns, so existing links and their secret names stay where
  main reads them, and rollback reads the same rows. Upstream's table stays
  empty and untouched.
- Dev database copies clear the Jones link table too, so upstream #27313's
  rule that copies never carry links still holds.
- Tests: fresh start, an upgrade from a main-shaped database (Jones rows
  intact, zero upstream rows, only 148-151 added), column parity with
  upstream's table, a static guard on who names the upstream table, every
  link lifecycle write landing in the Jones table, and an isolation test
  showing Jones migrations change no upstream row. Restoring 152 fails the
  upgrade and isolation tests. Forwarding tests return to the Jones schema.
- Boundary records restore the indirection edges, classify the dev-copy
  hook, and rebind the RPC memory fixture disposition to its new bytes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Brings in main's thread Stop unification, accepted-terminal recovery,
superseded-terminal tracing, waiting-run settlement and the macOS
interpreter warm-up (#951).

Main's accepted-terminal recovery is hand-ported onto the sync's
restructured run consumer, keeping the capacity logical-successor rule.
Main's start-failure classification is ported into the relocated
settleStartFailure. The historical continuity fence test, which an
earlier sync merge had silently dropped from
ProviderTurnStartService.test, is restored. Main's inline schema
compiles are hoisted for the upstream lint rule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ports two upstream Lineage row fixes into the Jones Linked panel,
restores the Jones attachment preview tests a sync merge replaced, and
updates stale tests for upstream's wheel, Markdown-reveal, picker and
truncation behavior.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Brings in #944's packaged desktop install-refusal fixtures.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Unreleased sync builds recorded 152_PeerLinksAdoption after copying Jones
links into upstream's link table. Deleting the identity would make the
fixed build refuse those databases, so the identity is restored under its
exact name with no effect. Links stay in the Jones table through the
eight PeerLinks indirections; nothing reads, writes or removes upstream
link rows.

Synthetic tests:
- a database that recorded 152 with copied rows and a later
  upstream-only link starts with its ledger, Jones links and upstream
  residue unchanged;
- PeerLinks never lists, gets, resolves or unlinks a residue row;
- a database from the earlier 147-151 numbering (adoption as 151) is
  still refused before any write;
- fresh start records 152 with an empty upstream table.

Restoring the copy body fails the upgrade, name-guard and row-isolation
tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Mjones13 and others added 11 commits November 12, 2026 12:30
Brings in #955-#960: source-renewal family closure, Mini recovery
qualification, workspace proof output, provider restart terminal,
provider reliability P2 and cleanup token lifecycle.

Main moved accepted-terminal recovery from the consumer's failure handler
into the per-event stage. It is ported onto the sync's commit-batch
consumer: the routed event's ingestion recovers in place when it is the
accepted root terminal, and the failure handler no longer recovers. The
source renewal transition keeps the sync's context-preserving runner with
main's attempt argument; boundary anchors are rehashed.

Main's lifetime testkit gains the sync's provider registry mock, and its
barrier now awaits finalization rather than the late-event pull, because
the upstream commit-batch consumer pulls one element ahead. It still
requires finalization before close, and handler-only recovery fails all
four scenarios.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…art runtime

Upstream #29901's pending-restart case reuses an installed pinned runtime.
Jones reuses one only with verified local provenance for its exact bytes,
so the fixture now records provenance for its empty executable on
linux-x64. The runtime guard is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Fx and Kiro replay hosts lacked the Jones app identity, so prompt runtime
instructions no longer matched the materialized transcript and the replay agent
waited forever for an outbound frame. Upstream-recorded <runtime_info> blocks are
now rebuilt with the Jones wording from their recorded harness, model and effort.

Kiro provider_thread_resume records two agent processes. The session completeness
assertion required the whole recording when the first process closed; upstream
logs that finalizer defect, but the Jones retirement fence correctly retains a
failed close, so the resume waited on the frozen test clock. The Kiro session
assertion now accepts a process that consumed its frames through a recorded
mid-transcript exit, matching the replay agent's resume checkpoint. Whole-recording
callers keep the strict default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The install renderer fixture failed at startup: upstream renderer modules now
read window.desktopBridge.getRelayTelemetryEnabled and getSystemLocale at module
evaluation, and the synthetic bridge lacked both, so the Preview qualification
timed out waiting for the fixture heading. The fixture now answers them, with
relay telemetry disabled.

Upstream's composer notice stack no longer collapses notices and marks only
error and warning cards as alerts; the details button appears on overflow with a
title-specific label. The client-notice steps select notice cards by their slot,
hover the title-specific details control and drop the removed peek control,
keeping every title, visibility and content assertion.

These hunks are textually identical to #879's, so that branch merges over them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream replaced the three-step first-run wizard with one Welcome page
(#33209). The macOS thread-monitor smoke waited for the removed "Connect your
computers" heading, and the shared first-run helper drove the removed wizard
buttons, so provider-free onboarding timed out.

The helper now recognizes the Welcome heading, declines any offered project
import and verifies the opt-out, starts without an agent when none is ready, and
still requires the page to close and the route to leave /welcome.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Integrates #906 (settings style pass) and #963 (packaged helper fault
observations).

- StorageSettings: upstream's restructured worktree cleanup section is kept;
  #906's shorter copy and COVERAGE_LABEL titles and switch labels are applied to it.
- RemoteAdmissionSettings: #906's layout, with the sync's plan-agent selection.
- WorkstreamsSetupStatus: #906's offline status line under upstream's renamed
  state-sync lint rule.
- LinkedEnvironmentsSettings: upstream's renewal note for an already-linked
  machine replaces the earlier mode note that #906 had trimmed.
- Update action rows may shrink: the sync's real-CSS narrow-width test showed
  #906's non-shrinking row overflowing to 589px once a status line appeared.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 07a1 and 4c92 imports deleted or replaced test files and took Jones
cases with them. Restore the cases whose behavior still ships:

- ChatMarkdown shell identity, bare anchor placeholders and context
  references.
- MessagesTimeline Jones cases, using upstream's short model names. The
  composer-focus case stays out because upstream removed
  useComposerFocusState.
- The parent alert when a delegated subagent asks for approval, now driven
  through the pending subagent request atom.
- The settings search gates for the local toggle, webhook holding and
  automatic settlement.
- Upstream's ServerBrowser case for profiles reported by several clients.

The restored timeline case found a real defect. When following was
released after the scroll that caused it, closing the chat remembered the
end of the timeline. The position is now recorded when following turns
off, so the reader returns to where they stopped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bring in #964's rollout handoff and #936's admission guards for installs
that are already running, along with its dated check outcomes.

ConnectReachability keeps upstream's 530 Cloudflare error-code parsing and
restart streaks. It adds main's header-only HTTP evidence, local identity
probe and anonymous-response explanation. A non-1033 Cloudflare code is
appended to that explanation. The troubleshooting table keeps upstream's
paid-account fix and main's anonymous 403 row. The boundary lists take the
union of both sides.

Adjustments for the other side's changes:
- The off-process stage test now expects a single sweep exit. Main
  coalesces a sweep requested while another is running, so the test's
  explicit sweep joins the cleanup the failed stage requested.
- The session diagnostic test gives the connection driver its
  authorization service. Upstream #27998 made the driver depend on it.
- Main's new descriptor decoder and request guard are hoisted to module
  scope, as upstream's no-inline-schema-compile rule requires.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bring in #966, which tolerates transient read congestion during workspace
preparation. The Orchestrator takes main's retry wrapper around the
projection read and keeps the cause the sync already attached. The boundary
inventory gains #966's three Jones-owned paths and the Orchestrator import
from the sync's inventory.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every resource read in native qualification also requests the server's
own pid. The retention fixture numbered its synthetic children from 10000.
When a CI vitest worker's real pid fell in that range, the child sharing it
still appeared in every collection after retirement. All four churn cases
then failed: the sampler boundary assertion, the retirement-unknown
shutdown and aborted waits (Server 7, run 43232788252). Pinning the worker
pid to 10001 reproduces exactly those four failures.

Synthetic pids now skip the worker pid. A unit case covers the skip, and
the churn cases pass with the worker pid pinned to 10000-10003. The
retention and isolation assertions are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Main brings #969: context handoffs restored after proven startup refusals.

Resolutions:
- ProviderTurnStartService: kept the sync's shared persistHandoff and
  handoff budget, and added main's restoring flag and restoreHandoff
  ownership check. Main's unsent-restore path is wrapped around the sync's
  side chat context.
- Restored the Jones nativeCreationGuard branch for accepted delivery
  bookkeeping (from b69533b; the 064d320 import had dropped it). A
  guarded native creation sees its own delivery write failure, while the
  unguarded write and the side chat marker still only log.
- CodexAdapterV2: the sync clears startDispatched when Codex answers with
  an earlier run's turn, for capacity bookkeeping. #969 reads that flag as
  proof that the prompt never reached Codex. A new startSent flag records
  that turn/start was sent and is never cleared. PromptNotApplied keys on
  it, so the ambiguous foreign reply stays a protocol error.
- The test harness combines main's inject/startFailure inputs with the
  sync's effort-proof injection and its existing event-sink write.
- HistoryDeliveryOutcome: hoisted the Schema.is guards to module scope for
  the sync's no-inline-schema-compile rule.
- inventory.json: merged structurally, adding main's four path entries.

The Server 7 pid-harness repair (0d75059) is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Mjones13
Mjones13 merged commit 2a20eb1 into main Nov 12, 2026
40 of 42 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.