Description
Current status - 2026-11-07
Blocked for landing by F2 #4442; both tracks are implemented together in #4463 and can co-land. F1's shared factory/durable-recovery contract is already merged in #4455.
The Windows/Win32 follow-up injected startup failure after a real typed-ready receipt and shutdown failure before the exact owned channel stop. Recorded channel/helper survivors were reconciled using their original stop callbacks; failed claims remained fenced until exact cleanup. This is bounded operator reconciliation, not automatic recovery or a fixed-time crash-containment guarantee.
Remaining acceptance: qualify macOS supervisor/Metro/channel/helper survivor behavior separately for Fabric/Paper (#4441), and Windows descendant/Job Object ownership and containment in #4447. Windows hard-terminates non-detached children with a crashed owner in the observed setup; the three cooperative crash-disposal contracts are skipped there, not passing native coverage. Preserve borrowed/attached applications, failed-withdrawal fences, and unresolved effects throughout.
Goal
Cooperative owned children (Metro, the Storybook channel/driver child, and helpers) have no parent lifeline, and the parent learns about readiness by polling an agent-ready file the child writes. Add lifelines and correlated, typed readiness so that a crashed parent or stalled child produces verified cleanup or an explicit fenced result.
Part of #4435 (plan item F3).
Scope
- Owner: process lifecycle.
- Paths (under
packages/agentic/):desktop-test/src/{commands,ownedService}.ts,storybook-desktop/config/{server,server-runner}.cjs, reporting transport integration, and process contract fixtures. - Give cooperative owned children a parent lifeline and explicit disposal.
- Replace authoritative ready-file polling with correlated typed readiness that keeps the tiers distinct: service ready, target acquirable, application ready, and context ready.
- Keep the channel/driver child in place unless measurements justify relocation.
- Durable settlement from F1 Infrastructure: Unify desktop driver-service composition and wire durable recovery #4436 must be wired before a lifeline may terminate a service in the middle of a mutation.
Dependencies
- Blocked by: F2 Infrastructure: Implement settled desktop lifecycle supervision and fenced ownership records #4442. F1 Infrastructure: Unify desktop driver-service composition and wire durable recovery #4436 is delivered by Unify desktop driver-service composition and wire durable recovery #4455; process-side work can proceed against that contract, and typed handles co-land with F2 in Desktop driver: typed resources, process lifelines, story lifetimes, exclusive agent ingress, and native qualification runbook #4463.
- Unblocks: F9 Infrastructure: Convert Storybook lifecycle takeover into desktop-test resource contributions #4449.
- Coordination:
server.cjsintegration commits are ordered F1, F3, F5 Infrastructure: Authorize and settle every controlled Storybook mutation entrance #4443, F6 Infrastructure: Tighten Storybook manifest provenance and native helper trust handoff #4445, then F9.
Acceptance
- Parent or wrapper crash, late spawn, failed withdrawal, and stalled-child cases produce verified cleanup or fenced incomplete results.
- Surviving cooperative owners withdraw their descriptors.
- Borrowed resources remain running.
- Windows descendant containment and macOS survivor behavior are qualified explicitly; no fixed-time cleanup guarantee is assumed.
Validation
- Iterate with focused
yarn test <name>in each changed package, then run itsyarn format,yarn lint,yarn build, andyarn test. Finish withyarn clean-lage-cachethenyarn lage buildci; runyarn lage test-links --verbose --groupedafter markdown changes. - Add a patch changeset for each changed published package. Update the owning
references/current-status.mdrows (done, work in progress, unsupported) and affected README/AGENTS guidance in the same change. - Native, provider, or process-topology changes need matching-OS native contracts and the affected consumer lane. JavaScript tests and bundles do not qualify native behavior; hosted capability skips are not passes. Report each check as passed, failed, skipped, not run, or unsupported.
Evidence
- Current state: "Supervisor crash containment" in
packages/agentic/desktop-test/references/current-status.md; process topology inpackages/agentic/storybook-desktop/references/integration.md. - Retired plan:
driver-next.mdat0569e1b86, sections 6 (readiness tiers) and 8 (F3).
Activity