From 009feda0d9a468ef53de813acd156fffb39f5c4d Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN Date: Wed, 30 Sep 2026 16:32:20 -0400 Subject: [PATCH] Preserve observed pilot reliability and provider handover intake --- .../backlog/TASK-pilot-executor-outcomes.json | 40 ++++++++++++++++++ .../TASK-pilot-generated-check-artifacts.json | 41 ++++++++++++++++++ .../backlog/TASK-pilot-starting-presence.json | 39 +++++++++++++++++ .../backlog/TASK-pilot-systemd-rendering.json | 39 +++++++++++++++++ .torch/backlog/TASK-provider-handover.json | 42 +++++++++++++++++++ 5 files changed, 201 insertions(+) create mode 100644 .torch/backlog/TASK-pilot-executor-outcomes.json create mode 100644 .torch/backlog/TASK-pilot-generated-check-artifacts.json create mode 100644 .torch/backlog/TASK-pilot-starting-presence.json create mode 100644 .torch/backlog/TASK-pilot-systemd-rendering.json create mode 100644 .torch/backlog/TASK-provider-handover.json diff --git a/.torch/backlog/TASK-pilot-executor-outcomes.json b/.torch/backlog/TASK-pilot-executor-outcomes.json new file mode 100644 index 0000000..107c68c --- /dev/null +++ b/.torch/backlog/TASK-pilot-executor-outcomes.json @@ -0,0 +1,40 @@ +{ + "schema": "torch.dev/backlog-item/v1alpha1", + "id": "TASK-pilot-executor-outcomes", + "title": "Treat executor timeout/error/signal as failure or unknown even with zero exit", + "description": "First real scheduled manager wake ran exactly its 300-second executor timeout and was labelled succeeded/invoked without independently verified manager completion. Native local reproduction confirms spawnSync can return status 0 plus error ETIMEDOUT when a child traps SIGTERM. startFleet currently checks status but ignores result.error/signal. This is a confirmed false-success boundary; the actual manager timeout is suspected rather than independently captured. Automatic provider wakes are temporarily disabled while machine coordination stays enabled. Require explicit executor outcome handling, completion evidence and guarded interrupted-launch recovery. Preserve existing wake receipts as historical claims; do not rewrite evidence.", + "priority": "urgent", + "affectedDomains": [ + "provider-runtime", + "qa", + "owner-console" + ], + "dependencies": [], + "acceptanceCriteria": [ + "A zero exit with ETIMEDOUT or signal cannot become successful lifecycle or scheduler receipt", + "Failed/unknown executor completion retains captured runtime identity and blocks duplicate launch until safe reconciliation", + "Tests cover real gracefully terminating timeout and deterministic injected error boundaries without weakening existing assertions", + "Automatic wakes are re-enabled only after exact-source qualification and a successful bounded live manager turn" + ], + "observedAt": "d636cae93c5a", + "feature": null, + "milestone": null, + "state": "proposed", + "owner": null, + "evidence": [], + "commit": null, + "integrationRequest": null, + "blockedReason": null, + "createdAt": "2026-09-30T20:20:17.000Z", + "updatedAt": "2026-09-30T20:20:17.000Z", + "revision": 1, + "history": [ + { + "from": null, + "to": "proposed", + "actorId": "owner", + "at": "2026-09-30T20:20:17.000Z", + "note": "Task created." + } + ] +} diff --git a/.torch/backlog/TASK-pilot-generated-check-artifacts.json b/.torch/backlog/TASK-pilot-generated-check-artifacts.json new file mode 100644 index 0000000..fef58e3 --- /dev/null +++ b/.torch/backlog/TASK-pilot-generated-check-artifacts.json @@ -0,0 +1,41 @@ +{ + "schema": "torch.dev/backlog-item/v1alpha1", + "id": "TASK-pilot-generated-check-artifacts", + "title": "Keep check-generated artifacts from blocking exact verification", + "description": "The first live runtime task ran the required dashboard gate and rewrote five tracked QA-owned PNG reports. The next TORCH gate refused WORKTREE_DIRTY. Archive proof outputs outside the tested tree, bind them to exact commit and permit only explicit narrowly scoped check-owned cleanup. Do not stash or commit generated baselines. Add a regression for artifact-generating check sequences while preserving user edits and frozen inputs. Ensure actual code progress uses revisioned task state rather than staying assigned through code commits.", + "priority": "high", + "affectedDomains": [ + "qa", + "work-integration", + "owner-console", + "provider-runtime" + ], + "dependencies": [], + "acceptanceCriteria": [ + "Required check sequences finish without changing tracked expectations or losing evidence", + "Generated artifact bytes and exact-commit provenance remain recoverable", + "Preexisting/user edits are preserved; only proven check-owned changes may be restored", + "Task progress and blockers reflect the current lifecycle" + ], + "observedAt": "94062020c767", + "feature": null, + "milestone": null, + "state": "proposed", + "owner": null, + "evidence": [], + "commit": null, + "integrationRequest": null, + "blockedReason": null, + "createdAt": "2026-09-30T20:31:08.855Z", + "updatedAt": "2026-09-30T20:31:08.855Z", + "revision": 1, + "history": [ + { + "from": null, + "to": "proposed", + "actorId": "owner", + "at": "2026-09-30T20:31:08.855Z", + "note": "Task created." + } + ] +} diff --git a/.torch/backlog/TASK-pilot-starting-presence.json b/.torch/backlog/TASK-pilot-starting-presence.json new file mode 100644 index 0000000..4d1c871 --- /dev/null +++ b/.torch/backlog/TASK-pilot-starting-presence.json @@ -0,0 +1,39 @@ +{ + "schema": "torch.dev/backlog-item/v1alpha1", + "id": "TASK-pilot-starting-presence", + "title": "Publish live startup presence before invoking a provider", + "description": "During the first development trial the real Sol process ran and used TORCH tools for several minutes while the Console still reported offline. startFleet currently records final presence only after the blocking executor returns. Record a durable guarded starting state before launch, capture execution identity/lease where available, and conservatively reconcile success/failure/unknown interruption. Do not let scheduler or manual startup duplicate a still-running manager or turn unknown launch into offline. This task is proposed only; do not expand the current diagnostics pilot without arbiter approval.", + "priority": "high", + "affectedDomains": [ + "provider-runtime", + "owner-console", + "qa" + ], + "dependencies": [], + "acceptanceCriteria": [ + "Actual startup is visible as starting/running rather than falsely offline before its executor returns", + "Concurrent timer/manual starts cannot duplicate one identity and unknown interruption remains guarded", + "Failure/completion and process absence are distinguished with bounded attributable evidence; regression tests cover the race" + ], + "observedAt": "c940a343c357", + "feature": "Self-host development readiness", + "milestone": "First real development trial", + "state": "proposed", + "owner": null, + "evidence": [], + "commit": null, + "integrationRequest": null, + "blockedReason": null, + "createdAt": "2026-09-30T19:55:23.203Z", + "updatedAt": "2026-09-30T19:55:23.203Z", + "revision": 1, + "history": [ + { + "from": null, + "to": "proposed", + "actorId": "owner", + "at": "2026-09-30T19:55:23.203Z", + "note": "Task created." + } + ] +} diff --git a/.torch/backlog/TASK-pilot-systemd-rendering.json b/.torch/backlog/TASK-pilot-systemd-rendering.json new file mode 100644 index 0000000..a040d2f --- /dev/null +++ b/.torch/backlog/TASK-pilot-systemd-rendering.json @@ -0,0 +1,39 @@ +{ + "schema": "torch.dev/backlog-item/v1alpha1", + "id": "TASK-pilot-systemd-rendering", + "title": "Qualify real systemd unit rendering and active scheduler evidence", + "description": "First live pilot install produced WorkingDirectory= with outer quotes, rejected as not absolute by the actual systemd parser. TORCH status counted manifest files as installed although timer was enabled but inactive. Arbiter is making a minimal scalar-path renderer repair to unblock this owned scheduler; current tests mocked systemctl and missed the error. Require native parser regression and real host activation verification. Follow up with installed/configured/enabled/active/failed status and false-success/rollback qualification; do not weaken unit ownership or infer liveness from file presence.", + "priority": "urgent", + "affectedDomains": [ + "provider-runtime", + "qa", + "owner-console" + ], + "dependencies": [], + "acceptanceCriteria": [ + "Real systemd parser accepts generated scalar path including spaces and literal percent/quotes", + "Real owned timer and dispatcher activation is verified, not merely manifest installation", + "Failed/inactive units are surfaced distinctly and rollback preserves unrelated services" + ], + "observedAt": "c940a343c357", + "feature": "Self-host development readiness", + "milestone": "First real development trial", + "state": "proposed", + "owner": null, + "evidence": [], + "commit": null, + "integrationRequest": null, + "blockedReason": null, + "createdAt": "2026-09-30T20:04:53.270Z", + "updatedAt": "2026-09-30T20:04:53.270Z", + "revision": 1, + "history": [ + { + "from": null, + "to": "proposed", + "actorId": "owner", + "at": "2026-09-30T20:04:53.270Z", + "note": "Task created." + } + ] +} diff --git a/.torch/backlog/TASK-provider-handover.json b/.torch/backlog/TASK-provider-handover.json new file mode 100644 index 0000000..0dc61f2 --- /dev/null +++ b/.torch/backlog/TASK-provider-handover.json @@ -0,0 +1,42 @@ +{ + "schema": "torch.dev/backlog-item/v1alpha1", + "id": "TASK-provider-handover", + "title": "Rehearse quality-release Codex to Claude Code or Pi fleet handover", + "description": "Owner wants TORCH to build itself, install a qualified new release, then switch agents to Claude Code or Pi and prove continuity. Test one session before whole-fleet migration. Checkpoint assigned work, branches, checks, artifacts and inbox; safely stop the old harness; apply reviewed per-session provider/model profiles; start the new harness on current canonical instructions and durable TORCH identity. Native session IDs and prompt caches are not portable. Retain prior runtime mappings and rollback. Do not swap providers before the quality-release/pilot decision.", + "priority": "normal", + "affectedDomains": [ + "provider-runtime", + "qa", + "session-manager" + ], + "dependencies": [ + "TASK-conversation-release-qualification" + ], + "acceptanceCriteria": [ + "TORCH identity, task, worktree and pending communications survive handover", + "The new provider gets a fresh native session ID and current instructions, never a foreign resume ID", + "Approved bounded live contract tests prove the loop under each target harness", + "Whole-fleet cutover follows one-agent proof and can reverse without duplicate live sessions" + ], + "observedAt": "94062020c767", + "feature": null, + "milestone": null, + "state": "proposed", + "owner": null, + "evidence": [], + "commit": null, + "integrationRequest": null, + "blockedReason": null, + "createdAt": "2026-09-30T20:31:08.864Z", + "updatedAt": "2026-09-30T20:31:08.864Z", + "revision": 1, + "history": [ + { + "from": null, + "to": "proposed", + "actorId": "owner", + "at": "2026-09-30T20:31:08.864Z", + "note": "Task created." + } + ] +}