* fix(update): prevent stale runtime modules after Git updates
Promote root and nested dist-runtime outputs through the existing candidate runtime transaction so activation and rollback keep every runtime generation aligned. Extend real-Git execution probes for runtime overlays and consolidate repeated fixture writes.
* fix(update): complete source runtime artifacts on first hop
Complete canonical plugin overlays and SDK aliases before target-owned plugin
convergence when an older published updater omitted those outputs. Preserve
exact online retries and legacy target contracts, and require current offline
authority for changed physical runtime publication and rollback.
Share artifact ownership with build/postbuild writers, join smoke cancellation,
and keep each directory swap synchronous after its authority check.
* fix(daemon): preserve proven systemd service absence
Recognize the native systemd missing-unit-file response during strict
non-loading inspection. Carry affirmative user-unit absence to the Linux
absence owner, which separately excludes system-scope ownership before
reporting an offline service. Keep failed manager inspection and other
platforms conservative.
This allows first-hop Git runtime artifact completion on CLI-only Linux
installations without weakening publication authority.
* fix(update): preserve canonical artifacts in smoke consumers
Keep the built singleton smoke on canonical runtime preparation and verify
its cleanup leaves a no-op. Release the QA fixture port reservation before
packaged maintenance so offline publication can inspect the configured port.
Align update routing and lifecycle fixtures with their real target identity
and lease contracts while retaining consent, cleanup, and restart assertions.
* test: rebalance plugin state type checks
Preserve Unix signal termination through the native runner and watcher, and distinguish acknowledged UI shutdown from interrupted or unverified cleanup.
* fix(cli): let the dev runner own child shutdown
The JavaScript shim and dev runner both escalated after five seconds. The
shim could kill the runner first, leaving its separately detached child
alive. Delegate termination to the runner and handle SIGHUP through its
existing signal and build-lock lifecycle. Preserve Node execution under Bun
and other shim callers' termination behavior.
Real process regressions fail before the fix and pass for SIGTERM/SIGHUP.
Runner and entrypoint tests, changed-file checks, and independent review
pass. A fresh Linux Node 24.19.0 build passes the original Gateway worker
restart scenario (Actions 33868737194).
Release-note context: source-checkout Gateway shutdown no longer abandons a
slow child when the development launcher's shutdown timers race.
* test(agents): align attempt fixtures with session contracts
Adopt the two relevant test-only corrections already landed in #138238
(e7fffcf7a0). Supply the session methods consumed by nested tool
observation and classify structured tool failures as AgentSession does.
Keep policy-denial and never-entered action/preparer assertions intact.
The original file reproduces three failures. All 112 files and 1,666 tests
pass after this correction, with complete changed-file gates and independent
review. Launcher implementation and release candidate are unchanged.
* perf(packaging): shrink npm runtime and declaration payload
Retain the official Claude Agent SDK as packaged library assets while reusing the selected installed Claude executable. Remove redundant native SDK installation and all-platform filesystem helper copies; adopt fs-safe 0.7 platform packages.
Align root plugin build inputs with package exclusions and retain only public SDK and plugin-contract declaration roots. Preserve CLI bootstrap laziness and source/Docker plugin builds.
Clean Linux proof reduced installed file payload from 831.1 MB to 437.8 MB with matched Node/npm/install flags; native-required filesystem writes, bundled Anthropic inspection, and plugin doctor passed.
* test(packaging): cover explicitly selected memory plugin builds
Keep the default package exclusion while retaining native persistence and production-dependency proof for the supported Docker-selected memory plugin graph.
* fix(packaging): preserve copied SDK assets during declaration publication
Separate opaque SDK type assets from generated declaration ownership. Fresh and cached declaration publication retain the complete upstream package, while runtime cleanup still replaces obsolete SDK files and stale generated declarations are removed.
* fix(packaging): unify source-checkout build ownership
Use one canonical runtime build plan for source checkouts and Docker-selected
plugins, and share its output ownership with readiness, metadata, control-plane,
and watch guards. Restore isolated CommonJS plugin outputs during rebuilds
without losing the reduced public SDK and declaration payload.
Adapt lifecycle coverage to the selected output graph, cover raw archive path
contracts, and isolate synthetic timing fixtures without changing production CI
caps. Use tsdown's plugin type for the copied official SDK assets.
Focused build-owner, filesystem/archive, planner, package/SDK/declaration/compiler
checks, scripts/root-test types, scoped lint, and frozen install passed. The full
changed gate, standalone metadata check, and package build remain incomplete
after macOS filesystem stalls; clean Linux package/install proof and exact-head
CI are still required before merge.
* test(ui): bind composer responsiveness fixture to Enter
Playwright dispatches Meta before Enter. The capture-once fixture consumed
that modifier and could insert the second prompt before submission, so the
application correctly sent and cleared it instead of losing a draft.
Schedule the next input only for Enter and remove the listener there.
Assert the first outgoing message while retaining task-order and next-draft
coverage. No production behavior, sleeps, or timeouts change.
* test(macos): synchronize queued catalog request readiness
Use the existing FIFO rendezvous to observe the blocked request before measuring its queued successor deadline. Tie readiness to the first request lifetime rather than an unrelated two-second polling budget; preserve the 50ms queued deadline and the timeout/cancellation sibling fixtures.
* fix(packaging): detach dependency links before metadata cleanup
Detach the previous output node_modules symlink before copying metadata,
regardless of whether the new output plan is isolated. This prevents a
source-to-Docker profile transition from deleting source dependencies
through the old output link. Relinking still follows the selected plan.
Extend the existing owner fixture across isolated, unified, reverse, and
repeated profiles while preserving skill assets and shared host identity.
* fix(packaging): stage canonical plugin dependency links
Replace the whole node_modules junction with dist-owned links to canonical package roots. Windows native traversal otherwise rebases pnpm relative links into the wrong directory and loses the host package exports. Keep source dependency versions, scopes, private launchers, and host SDK identity without copying or rewriting installed dependencies.
* ci: pack tooling children within hosted job budgets
Use the existing complete-file packer for hosted tooling subdivisions instead of balanced thirds that each occupy an exclusive job. Preserve the 112-job cap, workload estimates, inventory, family isolation, and hybrid/CLI policies.
* test(packaging): preserve Windows links in staged copies
Use the installer asynchronous copy contract for the native link fixture. Node 22 synchronous copying traverses Windows junctions recursively; retain both module formats, dependency ownership, host identity, and private launcher assertions.
* fix(packaging): retain POSIX checkout relocation
Keep canonical per-package dependency staging and absolute Windows junctions,
while expressing POSIX targets relative to their output link parents so a
whole source checkout can relocate with its private dependencies intact.
Fold main's relocation coverage into the ESM/CJS profile-transition fixture.
Retain source ownership, host SDK singleton, staged copy and launcher checks;
use asynchronous copying to avoid Windows junction recursion.
* fix(plugins): keep development runs on checkout plugins
* test(node-host): contain the bundled Linux plugin fixture
* fix(dev): preserve checkout selector through tmux watch