diff --git a/doc/plans/2026-09-22-legacy-continuation-authority.md b/doc/plans/2026-09-22-legacy-continuation-authority.md index e5d5715be67..c8981ad9985 100644 --- a/doc/plans/2026-09-22-legacy-continuation-authority.md +++ b/doc/plans/2026-09-22-legacy-continuation-authority.md @@ -1,6 +1,6 @@ # Legacy continuation authority: wording invariance -Status: implemented; verification in progress. Requested September 22, 2026. +Status: implemented; legacy acceptance verified. Full live campaign retains one browser reload failure. Requested September 22, 2026. Working branch: `codex/lifecycle-behavior-baseline-20260921`. Baseline implementation/results head: `141950faf`. @@ -101,6 +101,16 @@ and new key cannot schedule two successors. - Use scripted unit/database tests for timing permutations; real LLM/browser runs verify tool compliance and orchestration, not exhaustive race coverage. +## Verification result + +[September 22 report](../../tests/lifecycle-baseline/LEGACY-CONTINUATION-2026-09-22.md): +902/904 deterministic assertions pass; the two native compatibility probes remain +visible. All 22 legacy live cases pass, including both causally verified repair +variants. The complete live campaign is 41/42, with one native case completing its +persisted lifecycle but failing on a blank browser reload. Earlier failed runs and +artifact hashes remain in the inventory. This does not claim repo-wide green or +removal of prose interpretation from every remaining product surface. + ## Retained backlog for later requests These counts refer to the original scripted baseline, not a new measurement. @@ -114,6 +124,8 @@ Keep this section even if this slice incidentally resolves some assertions. | Wording selects liveness versus handoff path in heartbeat | 1 | Retain separately in results; must be covered while closing the current shared authority boundary | | Native autonomous continuation compatibility probes | 2 | Replace with reachable public-contract tests; `same_agent` injection is not a current model-facing defect | | Productive continuation versus repair/failure budgets | Coverage boundary | Separate audit after this slice; do not infer progress from text/event counts | +| Blank task route after reload | New live observation | Investigate browser bootstrap/rendering; seen after successful persisted lifecycle in both runtimes; campaigns 35744074887 and 35747200170 | +| Missing-comment policy ownership | Coverage boundary | Existing typed retry policy remains; review separately if consolidating all post-run compliance into one disposition contract | | Maintain CI and prepare App/Evals review | Pending | Promote fixed invariants into maintained cheap gates; paid suites remain explicit | Reference reports: `tests/lifecycle-baseline/BASELINE-2026-09-21.md`, diff --git a/tests/lifecycle-baseline/LEGACY-CONTINUATION-2026-09-22.md b/tests/lifecycle-baseline/LEGACY-CONTINUATION-2026-09-22.md new file mode 100644 index 00000000000..10dd1dbd4b6 --- /dev/null +++ b/tests/lifecycle-baseline/LEGACY-CONTINUATION-2026-09-22.md @@ -0,0 +1,110 @@ +# Legacy continuation authority — 2026-09-22 + +Legacy successful-run continuation now derives its decision from persisted +run/task state and recorded API/tool effects. Narrative classification remains +available for diagnostics; this path does not use it to schedule, identify, +instruct, or replenish continuation work. + +## Behavior + +- A successful provider exit is not task completion. A recorded terminal status, + blocker, question, approval, dependency, monitor, or existing execution owner + determines the next action. +- An eligible unfinished task without a disposition receives an agent repair + instruction through the normal wake payload. The agent must record the outcome + using existing Paperclip APIs/tools. Changing prose cannot select the path. +- The durable repair episode permits at most two attempts before visible board + escalation. Already-consumed older budgets retain their tighter limits. + Existing comment-retry ownership is respected rather than opening another + repair allowance after its exhaustion. +- Stop, pause, budget, ownership, company binding, pending approval and existing + work are checked again at dispatch. Goal, routine, plugin and conversation + owners remain authoritative. Native semantic finalization is unchanged. +- Replay and concurrent checks share a stable receipt and episode counter. + A late scheduling write cannot rewind a newer attempt. Infrastructure retries + retain the original disposition source and delayed repairs retain the initiating + user's identity. + +The [implementation plan and retained backlog](../../doc/plans/2026-09-22-legacy-continuation-authority.md) +keep the remaining findings separate from this change. + +## Deterministic evidence + +The [new baseline inventory](baselines/2026-09-22-legacy-continuation.json) +records a clean measurement at App `d2a6acddb`: **902 passed, 2 failed, 904 total**. +Unit 317/317; Runner 182/182; integration 351/353; grading 52/52. +The original September 21 snapshots remain unchanged. + +All 178 wording/authority assertions pass. The real heartbeat pair now follows +the same wake reason, repair instruction, attempt limit and final state. +The persisted-authority suite has 27 passing tests, including concurrent replay, +restart, stale diagnostic labels, fast-successor ledger writes, dispatch-time +Stop/approval/ownership changes, infrastructure retry and bounded exhaustion. + +The two remaining native probes inject `same_agent`, which is not in the current +public continuation contract. They remain visible in the baseline and are not +classified as proven current model-facing defects or silently skipped. +A preceding clean measurement on `f044e17ed` had an additional dependency-test +teardown timeout; its retained local inventory is +`.lifecycle-baseline/2026-09-22T14-58-55.292Z/`. A fresh measurement and the focused +15-test dependency suite passed that case without changing its assertions. + +The broader checks also exposed old mocks that represented completed work using +only summaries. Those fixtures now record done or a pending confirmation while +preserving their identity, comment attribution, workspace and native-boundary +assertions. A real delayed-row identity omission was fixed separately. + +## Real-provider campaigns + +The [live inventory](baselines/2026-09-22-legacy-continuation-live.json) retains +source commits, fixture hashes, normalized artifact SHA-256, cell outcomes, +cleanup, evidence validation and billing coverage. Every cell uses a real Codex +provider, browser, isolated server and database; these are not canned responses. + +- [35738968308](https://github.com/paperclipai/paperclip/actions/runs/35738968308), + App `f3e09abd4`: 1/2 passed. Neutral passed; challenge skipped the requested + initial phase and immediately recorded done. The causal two-run oracle correctly + rejected it. The fixture now selects its phase from `PAPERCLIP_WAKE_REASON`. +- [35744074887](https://github.com/paperclipai/paperclip/actions/runs/35744074887), + App `f044e17ed`: 1/2 passed. Both cases recorded the exact initial comment, + one causally bound repair and done. Neutral failed the final browser assertion: + the reload stayed blank even though API state and the exact final message were + correct. The failure remains recorded. Browser exception capture was added; + assertions were not relaxed. +- [35747200170](https://github.com/paperclipai/paperclip/actions/runs/35747200170), + App `d2a6acddb`: **41/42 passed; legacy 22/22, native 19/20**. Both new repair + probes passed, including their browser assertions. The native plan-revision + challenge completed all three turns, both approval boundaries, the correct + revised output, done and cleanup; its task route then reloaded blank. All 17 + persisted-state matchers passed, but the strict browser check failed. This is + retained as a separate unresolved UI finding, not regraded as a pass. + +All 42 selected cells executed once; no retries or incomplete cells. All evidence +validated and all cleanup passed. The [published report](https://d1p6rlowie26tp.cloudfront.net/runner-e2e/campaigns/gha-35747200170-1/index.html) +contains the failure alongside successes. Publisher catalog-completeness flags +are not a claim that every Paperclip suite was selected. + +Reported zero cost is not proof of free execution: product model-cost coverage +is partial, and GitHub compute is separate. A passing campaign is one measurement, +not a reliability estimate. + +## Broader qualification + +The 441 Product E2E support tests pass, as do server and E2E typechecks. Repository +recursive typecheck and build both passed again on final implementation `d2a6acddb`. +The fresh general-server shards recorded 12,812 passing assertions. One suite +could not start PostgreSQL because macOS exhausted shared-memory IDs; its 14 +identity tests passed when run alone. All 6,502 UI tests passed. The database +package passed all 160 tests with sequential workers after four startup failures +in the parallel run. CLI import (17), auth readiness (14) and agent-skills routes +(54) passed on focused reruns after timeouts in their broader groups. + +The full repository command was attempted, but its early-exit groups did not all +complete cleanly. No repo-wide green claim is made: broad runs encountered local +PostgreSQL resource limits and route timeouts, and the historical baseline retains +its two native probes. Downloaded provider recordings were moved outside the +checkout after the authored-guidance scanner included them; its unchanged 39 tests +then passed. A sequential run of the database, adapter utility, provider adapter, +plugin and plugin-creator packages passed another 2,620 assertions (19 explicitly +skipped). Focused regressions and the clean lifecycle inventory are the acceptance +evidence for this change. diff --git a/tests/lifecycle-baseline/README.md b/tests/lifecycle-baseline/README.md index 4b21b3c7ae6..54eee774427 100644 --- a/tests/lifecycle-baseline/README.md +++ b/tests/lifecycle-baseline/README.md @@ -144,3 +144,5 @@ For subsequent live execution use existing explicit selectors and record exact App/Evals revisions, profile/environment, retries, usage/cost, and artifact IDs. See `doc/evals.md`. Do not combine mock-authority Runner Eval scores with Product E2E scores, or claim full qualification from a partial selection. + +September 22 follow-up: [legacy continuation implementation and verification](LEGACY-CONTINUATION-2026-09-22.md), including preserved failed campaigns and the remaining backlog. diff --git a/tests/lifecycle-baseline/baselines/2026-09-22-legacy-continuation-live.json b/tests/lifecycle-baseline/baselines/2026-09-22-legacy-continuation-live.json new file mode 100644 index 00000000000..b0d96ab8d1c --- /dev/null +++ b/tests/lifecycle-baseline/baselines/2026-09-22-legacy-continuation-live.json @@ -0,0 +1,829 @@ +{ + "schema": "paperclip.legacy-continuation-verification/v1", + "measurementDateLocal": "2026-09-22", + "timezone": "America/Chicago", + "campaigns": [ + { + "source": { + "sha": "f3e09abd4a1655e5d8fbe900d7a283ef47220e4c", + "ref": "refs/heads/codex/lifecycle-behavior-baseline-20260921", + "workflowRunUrl": "https://github.com/paperclipai/paperclip/actions/runs/35738968308", + "eventName": "workflow_dispatch" + }, + "campaignId": "gha-35738968308-1", + "artifactSha256": "a44fb1e9138c673b8c7ad1b5e4d3962c71213e19b766a2fc2f2795d69704e7fc", + "totals": { + "selected": 2, + "executed": 2, + "passed": 1, + "failed": 1, + "incomplete": 0, + "retries": 0, + "cleanupPassed": true + }, + "billing": { + "testCount": 2, + "agentRunDurationMs": 78741, + "leaseDurationMs": 0, + "llm": { + "runCount": 3, + "runsWithTokenUsage": 3, + "runsWithReportedCost": 0, + "inputTokens": 309234, + "outputTokens": 2869, + "cachedInputTokens": 230772, + "totalTokens": 542875, + "reportedCostUsd": 0, + "costStatus": "unpriced" + }, + "reportedLlmCostUsd": 0, + "estimatedRuntimeCostUsd": 0, + "observedAndEstimatedCostUsd": 0, + "testsWithCompleteBilling": 0 + }, + "definitionHashes": [ + "f85e882942b6648478da2a982d688b6c757cf577b6d0e81d1388d74a73eb29ad" + ], + "cells": [ + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-repair-neutral", + "caseId": "lifecycle-repair-neutral", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 67094, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-repair-challenge", + "caseId": "lifecycle-repair-challenge", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "failed", + "failureClass": "candidate_failure", + "attempt": 1, + "durationMs": 481573, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + } + ] + }, + { + "source": { + "sha": "f044e17ed5e88322c50732d3308f002425906544", + "ref": "refs/heads/codex/lifecycle-behavior-baseline-20260921", + "workflowRunUrl": "https://github.com/paperclipai/paperclip/actions/runs/35744074887", + "eventName": "workflow_dispatch" + }, + "campaignId": "gha-35744074887-1", + "artifactSha256": "d713f73e31524a15f6c6baed50ecfe79a064ef354ca9f611a835d0955369cfa6", + "totals": { + "selected": 2, + "executed": 2, + "passed": 1, + "failed": 1, + "incomplete": 0, + "retries": 0, + "cleanupPassed": true + }, + "billing": { + "testCount": 2, + "agentRunDurationMs": 109842, + "leaseDurationMs": 0, + "llm": { + "runCount": 4, + "runsWithTokenUsage": 4, + "runsWithReportedCost": 0, + "inputTokens": 739944, + "outputTokens": 5069, + "cachedInputTokens": 617090, + "totalTokens": 1362103, + "reportedCostUsd": 0, + "costStatus": "unpriced" + }, + "reportedLlmCostUsd": 0, + "estimatedRuntimeCostUsd": 0, + "observedAndEstimatedCostUsd": 0, + "testsWithCompleteBilling": 0 + }, + "definitionHashes": [ + "43b3e40fc1e421fedc1925fb62e46ead0480a971e17d63105264139ec2d837c5" + ], + "cells": [ + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-repair-neutral", + "caseId": "lifecycle-repair-neutral", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "failed", + "failureClass": "candidate_failure", + "attempt": 1, + "durationMs": 100314, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-repair-challenge", + "caseId": "lifecycle-repair-challenge", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 82437, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + } + ] + }, + { + "source": { + "sha": "d2a6acddb42b5a4c07886386cb84c47d78a68d19", + "ref": "refs/heads/codex/lifecycle-behavior-baseline-20260921", + "workflowRunUrl": "https://github.com/paperclipai/paperclip/actions/runs/35747200170", + "eventName": "workflow_dispatch" + }, + "campaignId": "gha-35747200170-1", + "artifactSha256": "c2d5554a30ceab6cecaff32d5f891e2e760bd7bced2749269001f596f5893516", + "totals": { + "selected": 42, + "executed": 42, + "passed": 41, + "failed": 1, + "incomplete": 0, + "retries": 0, + "cleanupPassed": true + }, + "billing": { + "testCount": 42, + "agentRunDurationMs": 2810155, + "leaseDurationMs": 0, + "llm": { + "runCount": 98, + "runsWithTokenUsage": 91, + "runsWithReportedCost": 42, + "inputTokens": 23960210, + "outputTokens": 182440, + "cachedInputTokens": 21430127, + "totalTokens": 45572777, + "reportedCostUsd": 0, + "costStatus": "partial" + }, + "reportedLlmCostUsd": 0, + "estimatedRuntimeCostUsd": 0, + "observedAndEstimatedCostUsd": 0, + "testsWithCompleteBilling": 16 + }, + "definitionHashes": [ + "43b3e40fc1e421fedc1925fb62e46ead0480a971e17d63105264139ec2d837c5" + ], + "cells": [ + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-repair-neutral", + "caseId": "lifecycle-repair-neutral", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 54389, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-repair-challenge", + "caseId": "lifecycle-repair-challenge", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 67656, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-completion-neutral", + "caseId": "lifecycle-completion-neutral", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 34490, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-completion-challenge", + "caseId": "lifecycle-completion-challenge", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 45721, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-blocker-neutral", + "caseId": "lifecycle-blocker-neutral", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 38902, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-blocker-challenge", + "caseId": "lifecycle-blocker-challenge", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 30142, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-question-neutral", + "caseId": "lifecycle-question-neutral", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 142889, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-question-challenge", + "caseId": "lifecycle-question-challenge", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 95053, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-approval-neutral", + "caseId": "lifecycle-approval-neutral", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 180306, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-approval-challenge", + "caseId": "lifecycle-approval-challenge", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 172774, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-plan-revision-neutral", + "caseId": "lifecycle-plan-revision-neutral", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 158794, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-plan-revision-challenge", + "caseId": "lifecycle-plan-revision-challenge", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 122677, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-untrusted-evidence-neutral", + "caseId": "lifecycle-untrusted-evidence-neutral", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 117641, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-untrusted-evidence-challenge", + "caseId": "lifecycle-untrusted-evidence-challenge", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 99589, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-dependency-restart-neutral", + "caseId": "lifecycle-dependency-restart-neutral", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 158975, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.lifecycle-dependency-restart-challenge", + "caseId": "lifecycle-dependency-restart-challenge", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 219723, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.stop-new-resume", + "caseId": "stop-new-resume", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 31593, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.clarify-reuse", + "caseId": "clarify-reuse", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 164251, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.tool-review-approve", + "caseId": "tool-review-approve", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 210880, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.tool-review-decline", + "caseId": "tool-review-decline", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 111772, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.tool-review-always", + "caseId": "tool-review-always", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 165026, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.legacy-codex.local.tool-review-restart", + "caseId": "tool-review-restart", + "profileId": "legacy-codex", + "environmentId": "local", + "runtimeMode": "legacy", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 230211, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.lifecycle-completion-neutral", + "caseId": "lifecycle-completion-neutral", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 34474, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.lifecycle-completion-challenge", + "caseId": "lifecycle-completion-challenge", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 37562, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.lifecycle-blocker-neutral", + "caseId": "lifecycle-blocker-neutral", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 34683, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.lifecycle-blocker-challenge", + "caseId": "lifecycle-blocker-challenge", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 29889, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.lifecycle-question-neutral", + "caseId": "lifecycle-question-neutral", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 58435, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.lifecycle-question-challenge", + "caseId": "lifecycle-question-challenge", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 64626, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.lifecycle-approval-neutral", + "caseId": "lifecycle-approval-neutral", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 84593, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.lifecycle-approval-challenge", + "caseId": "lifecycle-approval-challenge", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 82542, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.lifecycle-plan-revision-neutral", + "caseId": "lifecycle-plan-revision-neutral", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 92243, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.lifecycle-plan-revision-challenge", + "caseId": "lifecycle-plan-revision-challenge", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "failed", + "failureClass": "candidate_failure", + "attempt": 1, + "durationMs": 111778, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.lifecycle-untrusted-evidence-neutral", + "caseId": "lifecycle-untrusted-evidence-neutral", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 57424, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.lifecycle-untrusted-evidence-challenge", + "caseId": "lifecycle-untrusted-evidence-challenge", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 63381, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.lifecycle-dependency-restart-neutral", + "caseId": "lifecycle-dependency-restart-neutral", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 117263, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.lifecycle-dependency-restart-challenge", + "caseId": "lifecycle-dependency-restart-challenge", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 108571, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.stop-new-resume", + "caseId": "stop-new-resume", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 53129, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.clarify-reuse", + "caseId": "clarify-reuse", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 63270, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.tool-review-approve", + "caseId": "tool-review-approve", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 70668, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.tool-review-decline", + "caseId": "tool-review-decline", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 67846, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.tool-review-always", + "caseId": "tool-review-always", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 87986, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + }, + { + "executionId": "lifecycle-baseline.runner-codex.local.tool-review-restart", + "caseId": "tool-review-restart", + "profileId": "runner-codex", + "environmentId": "local", + "runtimeMode": "native", + "model": "gpt-5.6-sol", + "status": "passed", + "failureClass": null, + "attempt": 1, + "durationMs": 133283, + "evidenceValid": true, + "evidenceErrors": [], + "cleanup": "passed" + } + ] + } + ] +} diff --git a/tests/lifecycle-baseline/baselines/2026-09-22-legacy-continuation.json b/tests/lifecycle-baseline/baselines/2026-09-22-legacy-continuation.json new file mode 100644 index 00000000000..55bf630f5ae --- /dev/null +++ b/tests/lifecycle-baseline/baselines/2026-09-22-legacy-continuation.json @@ -0,0 +1,4788 @@ +{ + "schema": "paperclip.lifecycle-baseline/v1", + "commit": "d2a6acddb42b5a4c07886386cb84c47d78a68d19", + "fingerprint": "15f083921584fac67818fe3ee62a7dc2d6f7f3f332e188931a57eeb5dd40e1de", + "measuredAt": "2026-09-22T15:29:18.786Z", + "layers": [ + "unit", + "runner", + "integration", + "grading" + ], + "execution": { + "unit": { + "exitCode": 0, + "signal": null, + "success": true, + "total": 317, + "passed": 317, + "failed": 0, + "pending": 0, + "launchError": null + }, + "runner": { + "exitCode": 0, + "signal": null, + "success": true, + "total": 182, + "passed": 182, + "failed": 0, + "pending": 0, + "launchError": null + }, + "integration": { + "exitCode": 1, + "signal": null, + "success": false, + "total": 353, + "passed": 351, + "failed": 2, + "pending": 0, + "launchError": null + }, + "grading": { + "exitCode": 0, + "signal": null, + "success": true, + "total": 52, + "passed": 52, + "failed": 0, + "pending": 0, + "launchError": null + } + }, + "scenarios": [ + { + "id": "LCA-01", + "name": "Ordinary completion", + "expected": "Valid completion, delivered answer, no extra execution", + "coverage": [ + { + "lane": "runner", + "file": "tests/lifecycle-baseline/runner.test.ts", + "pattern": "LCA-01", + "status": "pass", + "assertions": [ + { + "name": "LCA runner protocol narrative pairs LCA-01 structured completion / neutral", + "status": "passed", + "duration": 2.3310830000000067, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-01 structured completion / no-approval", + "status": "passed", + "duration": 0.3295830000000137, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-01 structured completion / scoped-negation", + "status": "passed", + "duration": 4.928500000000014, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-01 structured completion / historical-quote", + "status": "passed", + "duration": 0.35870800000000713, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-01 structured completion / spanish", + "status": "passed", + "duration": 0.24062499999999432, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-01 structured completion / optional-next-steps", + "status": "passed", + "duration": 0.14887500000000387, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-01 structured completion / all-done", + "status": "passed", + "duration": 0.1253330000000119, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-01 structured completion / keep-going", + "status": "passed", + "duration": 0.1550410000000113, + "failureMessages": [] + } + ] + }, + { + "lane": "grading", + "file": "tests/runner-e2e/lifecycle-baseline.test.ts", + "pattern": "LCA-01", + "status": "pass", + "assertions": [ + { + "name": "LCA Product E2E evidence calibration LCA-01 fails closed without API evidence", + "status": "passed", + "duration": 0.24304199999998843, + "failureMessages": [] + }, + { + "name": "LCA Product E2E evidence calibration LCA-01 rejects leftover executionRunId", + "status": "passed", + "duration": 0.14158299999999713, + "failureMessages": [] + }, + { + "name": "LCA Product E2E evidence calibration LCA-01 rejects leftover scheduledRetry", + "status": "passed", + "duration": 0.1522499999999951, + "failureMessages": [] + }, + { + "name": "LCA Product E2E evidence calibration LCA-01 rejects leftover activeRecoveryAction", + "status": "passed", + "duration": 0.16774999999999807, + "failureMessages": [] + }, + { + "name": "LCA Product E2E evidence calibration LCA-01 rejects leftover monitorNextCheckAt", + "status": "passed", + "duration": 0.08774999999999977, + "failureMessages": [] + } + ] + }, + { + "lane": "unit", + "file": "tests/lifecycle-baseline/authority.test.ts", + "pattern": "LCA-01", + "status": "pass", + "assertions": [ + { + "name": "LCA narrative authority baseline LCA-01 LCA-04 real status done changes admission with identical prose", + "status": "passed", + "duration": 0.22025000000002137, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-01 LCA-04 real status blocked changes admission with identical prose", + "status": "passed", + "duration": 0.06499999999999773, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-01 LCA-04 real status in_review changes admission with identical prose", + "status": "passed", + "duration": 0.04875000000004093, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-01 LCA-04 real status cancelled changes admission with identical prose", + "status": "passed", + "duration": 0.04458300000004556, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-01 complete / neutral", + "status": "passed", + "duration": 0.3839999999999577, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-01 complete / no-approval", + "status": "passed", + "duration": 0.10662499999995134, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-01 complete / scoped-negation", + "status": "passed", + "duration": 0.08412500000002865, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-01 complete / historical-quote", + "status": "passed", + "duration": 1.1004580000000033, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-01 complete / spanish", + "status": "passed", + "duration": 0.1678330000000301, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-01 complete / optional-next-steps", + "status": "passed", + "duration": 0.08162499999997408, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-01 complete / all-done", + "status": "passed", + "duration": 0.06412499999999, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-01 complete / keep-going", + "status": "passed", + "duration": 0.06620800000001736, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-01 complete / empty", + "status": "passed", + "duration": 0.16374999999999318, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/src/__tests__/native-status-arbiter-corpus.test.ts", + "pattern": ".", + "status": "pass", + "assertions": [ + { + "name": "P6-31 Section 18.13 executable status-authority corpus executes all 53 fixtures in their production consumers and joins all 70 matrix rows", + "status": "passed", + "duration": 1014.0652500000001, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus fails independently when any asserted field category is mutated", + "status": "passed", + "duration": 799.9739170000003, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus fails mapped fixtures when live entrypoints or owning actions are removed despite matching policy labels", + "status": "passed", + "duration": 71.5927499999998, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus retires a proven automatic review and applies the current successful completion exactly once", + "status": "passed", + "duration": 63.43358399999943, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus completes a new merge run after an old CI review and bounds repeated incomplete results", + "status": "passed", + "duration": 69.04520800000046, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus rejects wrong, missing, and duplicate criterion IDs before accepting completion", + "status": "passed", + "duration": 13.40179199999966, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus keeps genuine approval actionable in the finish response and in finalization", + "status": "passed", + "duration": 64.3466670000007, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus preserves answered cards, explicit attention, stronger authority, and later task edits", + "status": "passed", + "duration": 226.9860410000001, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus rejects an empty needs_review report with actionable feedback without inventing an approval", + "status": "passed", + "duration": 28.591625000000022, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus withdraws obsolete policy reviews, restores the prior status, and is idempotent", + "status": "passed", + "duration": 51.68000000000029, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus leaves an already accepted review untouched", + "status": "passed", + "duration": 18.639584000000468, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus leaves an already rejected review untouched", + "status": "passed", + "duration": 18.771999999999935, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus preserves real completion reviews and limits cleanup to the requested runs", + "status": "passed", + "duration": 35.132292000000234, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus dismisses the obsolete card without undoing a later blocked status", + "status": "passed", + "duration": 27.772875000000568, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus dismisses the obsolete card without undoing a later done status", + "status": "passed", + "duration": 27.845874999999978, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus dismisses the obsolete card without undoing a later cancelled status", + "status": "passed", + "duration": 26.090041999999812, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus does not restore status after a newer decision or a status change back to review", + "status": "passed", + "duration": 57.67475000000013, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus keeps review status when a separate request still needs a response", + "status": "passed", + "duration": 22.47112500000003, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus isolates a failed cleanup candidate and retries it on the next pass", + "status": "passed", + "duration": 61.213292000000365, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus keeps committed cleanup and continues publication after a live event fails", + "status": "passed", + "duration": 50.05454100000043, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus continues native finalization when the obsolete-card lookup fails", + "status": "passed", + "duration": 27.42479099999946, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus preserves a later authoritative status during reconciliation", + "status": "passed", + "duration": 0.10970800000086456, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus supersedes the exact committed coordinator decision and sequences preserve decisions independently of issue status versions", + "status": "passed", + "duration": 12.393000000000029, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus keeps assessment lineage run-local while superseding an issue decision from another run", + "status": "passed", + "duration": 14.278249999999389, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus preserves an intermediate same-run assessment when the issue decision points to an older ancestor", + "status": "passed", + "duration": 10.681083999999828, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus ignores historical committed finalizations superseded by a newer authoritative decision", + "status": "passed", + "duration": 11.675792000000001, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus records run-scoped superseding assessment lineage with none predecessor", + "status": "passed", + "duration": 9.152500000000146, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus records run-scoped superseding assessment lineage with same_run predecessor", + "status": "passed", + "duration": 11.112625000000662, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus records run-scoped superseding assessment lineage with other_run predecessor", + "status": "passed", + "duration": 16.192207999999482, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus binds a tools-refresh continuation to its existing durable wake without a duplicate", + "status": "passed", + "duration": 18.915125000000444, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus fails the transaction closed for an unknown status effect", + "status": "passed", + "duration": 7.388249999999971, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/test-baselines/lifecycle-heartbeat.test.ts", + "pattern": "LCA-01", + "status": "pass", + "assertions": [ + { + "name": "LCA full heartbeat observation LCA-01 native completed work has no extra execution regardless of summary", + "status": "passed", + "duration": 942.3143749999999, + "failureMessages": [] + }, + { + "name": "LCA full heartbeat observation LCA-01 legacy completed work has no extra execution regardless of summary", + "status": "passed", + "duration": 396.6400829999993, + "failureMessages": [] + } + ] + } + ], + "live": [ + { + "id": "lifecycle-baseline:lifecycle-completion-neutral", + "status": "not_run" + }, + { + "id": "lifecycle-baseline:lifecycle-completion-challenge", + "status": "not_run" + }, + { + "id": "lifecycle-baseline:lifecycle-blocker-neutral", + "status": "not_run" + }, + { + "id": "lifecycle-baseline:lifecycle-blocker-challenge", + "status": "not_run" + }, + { + "id": "everyday-workflows:build-revise", + "status": "not_run" + }, + { + "id": "runner-evals:finish-task", + "status": "not_run" + } + ] + }, + { + "id": "LCA-02", + "name": "Productive multi-turn continuation", + "expected": "Continue without replaying completed work or treating productivity as repeated failure", + "coverage": [ + { + "lane": "unit", + "file": "tests/lifecycle-baseline/authority.test.ts", + "pattern": "LCA-02", + "status": "pass", + "assertions": [ + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / neutral preserves continuation effects", + "status": "passed", + "duration": 8.222959000000003, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / no-approval preserves continuation effects", + "status": "passed", + "duration": 0.6854159999999752, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / scoped-negation preserves continuation effects", + "status": "passed", + "duration": 0.2598329999999578, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / historical-quote preserves continuation effects", + "status": "passed", + "duration": 0.29420899999996664, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / spanish preserves continuation effects", + "status": "passed", + "duration": 0.8711659999999597, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / optional-next-steps preserves continuation effects", + "status": "passed", + "duration": 1.5376249999999914, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / all-done preserves continuation effects", + "status": "passed", + "duration": 0.35950000000002547, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / keep-going preserves continuation effects", + "status": "passed", + "duration": 0.26412500000003547, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / empty preserves continuation effects", + "status": "passed", + "duration": 0.258624999999995, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / neutral preserves continuation effects", + "status": "passed", + "duration": 0.275209000000018, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / no-approval preserves continuation effects", + "status": "passed", + "duration": 0.1962909999999738, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / scoped-negation preserves continuation effects", + "status": "passed", + "duration": 0.17174999999997453, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / historical-quote preserves continuation effects", + "status": "passed", + "duration": 0.1459169999999972, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / spanish preserves continuation effects", + "status": "passed", + "duration": 0.160000000000025, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / optional-next-steps preserves continuation effects", + "status": "passed", + "duration": 0.1560000000000059, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / all-done preserves continuation effects", + "status": "passed", + "duration": 0.1682920000000081, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / keep-going preserves continuation effects", + "status": "passed", + "duration": 0.11583299999995234, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / empty preserves continuation effects", + "status": "passed", + "duration": 0.15354200000001583, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / neutral preserves continuation effects", + "status": "passed", + "duration": 0.208500000000015, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / no-approval preserves continuation effects", + "status": "passed", + "duration": 0.12312499999995907, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / scoped-negation preserves continuation effects", + "status": "passed", + "duration": 0.16204100000004473, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / historical-quote preserves continuation effects", + "status": "passed", + "duration": 0.1359579999999596, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / spanish preserves continuation effects", + "status": "passed", + "duration": 0.10241600000000517, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / optional-next-steps preserves continuation effects", + "status": "passed", + "duration": 0.497874999999965, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / all-done preserves continuation effects", + "status": "passed", + "duration": 0.221458000000041, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / keep-going preserves continuation effects", + "status": "passed", + "duration": 0.1520420000000513, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / empty preserves continuation effects", + "status": "passed", + "duration": 0.13370800000001282, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / neutral preserves continuation effects", + "status": "passed", + "duration": 0.25108299999999417, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / no-approval preserves continuation effects", + "status": "passed", + "duration": 0.2415409999999838, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / scoped-negation preserves continuation effects", + "status": "passed", + "duration": 0.571583999999973, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / historical-quote preserves continuation effects", + "status": "passed", + "duration": 0.17191700000000765, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / spanish preserves continuation effects", + "status": "passed", + "duration": 0.20524999999997817, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / optional-next-steps preserves continuation effects", + "status": "passed", + "duration": 0.13854200000002947, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / all-done preserves continuation effects", + "status": "passed", + "duration": 0.13212499999997362, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / keep-going preserves continuation effects", + "status": "passed", + "duration": 0.14654100000001336, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / empty preserves continuation effects", + "status": "passed", + "duration": 0.1114170000000172, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / neutral preserves continuation effects", + "status": "passed", + "duration": 0.7300410000000284, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / no-approval preserves continuation effects", + "status": "passed", + "duration": 0.33600000000001273, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / scoped-negation preserves continuation effects", + "status": "passed", + "duration": 0.21241699999995944, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / historical-quote preserves continuation effects", + "status": "passed", + "duration": 1.0772499999999923, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / spanish preserves continuation effects", + "status": "passed", + "duration": 0.6422910000000002, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / optional-next-steps preserves continuation effects", + "status": "passed", + "duration": 0.3340000000000032, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / all-done preserves continuation effects", + "status": "passed", + "duration": 0.19379200000003038, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / keep-going preserves continuation effects", + "status": "passed", + "duration": 0.6144580000000133, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / empty preserves continuation effects", + "status": "passed", + "duration": 0.602958000000001, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / neutral preserves continuation effects", + "status": "passed", + "duration": 0.45616699999999355, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / no-approval preserves continuation effects", + "status": "passed", + "duration": 0.21462500000001228, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / scoped-negation preserves continuation effects", + "status": "passed", + "duration": 0.5087500000000205, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / historical-quote preserves continuation effects", + "status": "passed", + "duration": 0.34704199999998764, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / spanish preserves continuation effects", + "status": "passed", + "duration": 0.27295899999995754, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / optional-next-steps preserves continuation effects", + "status": "passed", + "duration": 0.21170799999998735, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / all-done preserves continuation effects", + "status": "passed", + "duration": 0.17441699999994853, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / keep-going preserves continuation effects", + "status": "passed", + "duration": 0.7115000000000009, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / empty preserves continuation effects", + "status": "passed", + "duration": 0.19945900000004713, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-02 continue / neutral", + "status": "passed", + "duration": 0.14233399999994845, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-02 continue / no-approval", + "status": "passed", + "duration": 0.35229100000003655, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-02 continue / scoped-negation", + "status": "passed", + "duration": 0.21137499999997544, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-02 continue / historical-quote", + "status": "passed", + "duration": 0.12366600000001426, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-02 continue / spanish", + "status": "passed", + "duration": 0.0987500000000523, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-02 continue / optional-next-steps", + "status": "passed", + "duration": 0.09045800000001236, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-02 continue / all-done", + "status": "passed", + "duration": 0.0731670000000122, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-02 continue / keep-going", + "status": "passed", + "duration": 0.10991599999999835, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-02 continue / empty", + "status": "passed", + "duration": 2.1311249999999973, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-02 explicit continuation changes effects with identical prose", + "status": "passed", + "duration": 0.0751250000000141, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/src/__tests__/heartbeat-retry-scheduling.test.ts", + "pattern": "max-turn", + "status": "pass", + "assertions": [ + { + "name": "heartbeat bounded retry scheduling schedules max-turn continuations with distinct retry metadata", + "status": "passed", + "duration": 78.0269159999998, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling coalesces duplicate max-turn continuation schedules for the same source run and attempt", + "status": "passed", + "duration": 58.26487499999985, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling does not promote a duplicate max-turn continuation that does not own the issue lock", + "status": "passed", + "duration": 591.1468340000001, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling cancels a due max-turn continuation when the issue moves to blocked before retry promotion", + "status": "passed", + "duration": 51.0482920000004, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling cancels a due max-turn continuation when the issue moves to todo before retry promotion", + "status": "passed", + "duration": 59.44795900000008, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling cancels a due max-turn continuation when the issue moves to backlog before retry promotion", + "status": "passed", + "duration": 50.36954100000003, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/test-baselines/lifecycle-heartbeat.test.ts", + "pattern": "LCA-02", + "status": "assertion_failure", + "assertions": [ + { + "name": "LCA full heartbeat observation LCA-02 native explicit continuation survives misleading approval prose", + "status": "failed", + "duration": 632.6728330000005, + "failureMessages": [ + "AssertionError: expected { Object (status, locked) } to deeply equal { status: 'done', locked: false }\n at /private/tmp/paperclip-lifecycle-baseline-20260921/server/test-baselines/lifecycle-heartbeat.test.ts:342:30\n at processTicksAndRejections (node:internal/process/task_queues:104:5)\n at file:///Users/dotta/paperclipai/paperclip/node_modules/.pnpm/@vitest+runner@4.1.11/node_modules/@vitest/runner/dist/chunk-artifact.js:1903:20" + ] + }, + { + "name": "LCA full heartbeat observation LCA-02 legacy incomplete work schedules the same follow-up regardless of approval wording", + "status": "passed", + "duration": 748.8835829999998, + "failureMessages": [] + }, + { + "name": "LCA full heartbeat observation LCA-02 native productive workflow continues beyond the failure retry allowance", + "status": "failed", + "duration": 301.46749999999975, + "failureMessages": [ + "AssertionError: expected { Object (status, locked) } to deeply equal { status: 'done', locked: false }\n at /private/tmp/paperclip-lifecycle-baseline-20260921/server/test-baselines/lifecycle-heartbeat.test.ts:377:28\n at processTicksAndRejections (node:internal/process/task_queues:104:5)\n at file:///Users/dotta/paperclipai/paperclip/node_modules/.pnpm/@vitest+runner@4.1.11/node_modules/@vitest/runner/dist/chunk-artifact.js:1903:20" + ] + } + ] + } + ], + "live": [ + { + "id": "continuation:completed-action-resume", + "status": "not_run" + } + ] + }, + { + "id": "LCA-03", + "name": "Durable human question", + "expected": "Bound question precedes wait; matching answer resumes once", + "coverage": [ + { + "lane": "grading", + "file": "tests/runner-e2e/lifecycle-baseline.test.ts", + "pattern": "LCA-03", + "status": "pass", + "assertions": [ + { + "name": "LCA Product E2E evidence calibration LCA-03 accepts durable question and matching answered identity", + "status": "passed", + "duration": 1.245625000000004, + "failureMessages": [] + }, + { + "name": "LCA Product E2E evidence calibration LCA-03 rejects prose-only waiting even if final task completes", + "status": "passed", + "duration": 0.5224580000000003, + "failureMessages": [] + }, + { + "name": "LCA Product E2E evidence calibration LCA-03 rejects answer on a different question", + "status": "passed", + "duration": 0.19941700000001106, + "failureMessages": [] + } + ] + }, + { + "lane": "unit", + "file": "tests/lifecycle-baseline/authority.test.ts", + "pattern": "LCA-03", + "status": "pass", + "assertions": [ + { + "name": "LCA native authority pairs LCA-03 question / neutral", + "status": "passed", + "duration": 0.15708300000000008, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-03 question / no-approval", + "status": "passed", + "duration": 0.11895800000002055, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-03 question / scoped-negation", + "status": "passed", + "duration": 0.10454099999998334, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-03 question / historical-quote", + "status": "passed", + "duration": 0.23712499999999181, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-03 question / spanish", + "status": "passed", + "duration": 0.3228330000000028, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-03 question / optional-next-steps", + "status": "passed", + "duration": 0.17020800000000236, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-03 question / all-done", + "status": "passed", + "duration": 0.14412499999997408, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-03 question / keep-going", + "status": "passed", + "duration": 0.0983330000000251, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-03 question / empty", + "status": "passed", + "duration": 0.08358300000003283, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/src/__tests__/question-response-delivery.test.ts", + "pattern": ".", + "status": "pass", + "assertions": [ + { + "name": "question response delivery queues an answer to a running successor instead of automatically steering", + "status": "passed", + "duration": 197.1132080000002, + "failureMessages": [] + }, + { + "name": "question response delivery never mixes an external-chat question response into another live chat run in native mode", + "status": "passed", + "duration": 90.81712500000003, + "failureMessages": [] + }, + { + "name": "question response delivery never mixes an external-chat question response into another live chat run in legacy mode", + "status": "passed", + "duration": 63.78495799999973, + "failureMessages": [] + }, + { + "name": "question response delivery does not promote a source-run wake comment from another issue", + "status": "passed", + "duration": 66.93925000000036, + "failureMessages": [] + }, + { + "name": "question response delivery resolves an in-flight native input request before creating a continuation", + "status": "passed", + "duration": 47.312165999999706, + "failureMessages": [] + }, + { + "name": "question response delivery keeps native input delivery pending while its PRP session is unavailable", + "status": "passed", + "duration": 63.485375000000204, + "failureMessages": [] + }, + { + "name": "question response delivery coalesces into a queued successor without creating another wake", + "status": "passed", + "duration": 44.25645799999984, + "failureMessages": [] + }, + { + "name": "question response delivery never steers into the source run and keeps a skipped wake retryable", + "status": "passed", + "duration": 51.48083399999996, + "failureMessages": [] + }, + { + "name": "question response delivery delivers after wake suppression outlasts the bounded error retry limit", + "status": "passed", + "duration": 78.18220799999926, + "failureMessages": [] + }, + { + "name": "question response delivery preserves the actual-error retry budget after prolonged wake suppression", + "status": "passed", + "duration": 69.36858399999983, + "failureMessages": [] + }, + { + "name": "question response delivery enforces one durable wake per question-response idempotency key", + "status": "passed", + "duration": 51.493875000000116, + "failureMessages": [] + }, + { + "name": "question response delivery reuses the winning wake when a concurrent insert hits the idempotency fence", + "status": "passed", + "duration": 47.04424999999992, + "failureMessages": [] + }, + { + "name": "question response delivery settles against a canonical wake from the previous assignee without retrying forever", + "status": "passed", + "duration": 58.23474999999962, + "failureMessages": [] + }, + { + "name": "question response delivery reuses a durable wake receipt instead of issuing a duplicate continuation", + "status": "passed", + "duration": 35.816916000000674, + "failureMessages": [] + }, + { + "name": "question response delivery recovers a completed wake when receipt finalization was interrupted", + "status": "passed", + "duration": 54.44816600000013, + "failureMessages": [] + }, + { + "name": "question response delivery keeps a long wake claim leased while the side effect is active", + "status": "passed", + "duration": 157.30987499999992, + "failureMessages": [] + }, + { + "name": "question response delivery fences a stale worker after a newer claim generation takes ownership", + "status": "passed", + "duration": 96.27170899999965, + "failureMessages": [] + }, + { + "name": "question response delivery keeps acpx_local on the existing wake path without invoking native steering", + "status": "passed", + "duration": 44.65520800000013, + "failureMessages": [] + }, + { + "name": "question response delivery keeps claude_local on the existing wake path without invoking native steering", + "status": "passed", + "duration": 58.685457999999926, + "failureMessages": [] + }, + { + "name": "question response delivery keeps codex_local on the existing wake path without invoking native steering", + "status": "passed", + "duration": 46.32287499999984, + "failureMessages": [] + }, + { + "name": "question response delivery keeps cursor_cloud on the existing wake path without invoking native steering", + "status": "passed", + "duration": 50.68279199999961, + "failureMessages": [] + }, + { + "name": "question response delivery keeps cursor on the existing wake path without invoking native steering", + "status": "passed", + "duration": 23.687332999999853, + "failureMessages": [] + }, + { + "name": "question response delivery keeps gemini_local on the existing wake path without invoking native steering", + "status": "passed", + "duration": 44.94391600000017, + "failureMessages": [] + }, + { + "name": "question response delivery keeps grok_local on the existing wake path without invoking native steering", + "status": "passed", + "duration": 22.81383300000016, + "failureMessages": [] + }, + { + "name": "question response delivery keeps hermes_gateway on the existing wake path without invoking native steering", + "status": "passed", + "duration": 27.316624999999476, + "failureMessages": [] + }, + { + "name": "question response delivery keeps hermes_local on the existing wake path without invoking native steering", + "status": "passed", + "duration": 19.678124999999454, + "failureMessages": [] + }, + { + "name": "question response delivery keeps kimi_local on the existing wake path without invoking native steering", + "status": "passed", + "duration": 18.381333000000268, + "failureMessages": [] + }, + { + "name": "question response delivery keeps openclaw_gateway on the existing wake path without invoking native steering", + "status": "passed", + "duration": 19.513582999999926, + "failureMessages": [] + }, + { + "name": "question response delivery keeps opencode_local on the existing wake path without invoking native steering", + "status": "passed", + "duration": 19.97570899999937, + "failureMessages": [] + }, + { + "name": "question response delivery keeps pi_local on the existing wake path without invoking native steering", + "status": "passed", + "duration": 17.84691599999951, + "failureMessages": [] + }, + { + "name": "question response delivery keeps process on the existing wake path without invoking native steering", + "status": "passed", + "duration": 15.773291999999856, + "failureMessages": [] + }, + { + "name": "question response delivery keeps http on the existing wake path without invoking native steering", + "status": "passed", + "duration": 26.41387500000019, + "failureMessages": [] + }, + { + "name": "question response delivery keeps external_test_adapter on the existing wake path without invoking native steering", + "status": "passed", + "duration": 18.54754099999991, + "failureMessages": [] + }, + { + "name": "question response delivery queues once without probing successor steering", + "status": "passed", + "duration": 18.015041999999994, + "failureMessages": [] + }, + { + "name": "question response delivery formats text, select labels, multi-select, and custom answers in order", + "status": "passed", + "duration": 22.85754199999974, + "failureMessages": [] + } + ] + } + ], + "live": [ + { + "id": "lifecycle-baseline:lifecycle-question-neutral", + "status": "not_run" + }, + { + "id": "lifecycle-baseline:lifecycle-question-challenge", + "status": "not_run" + }, + { + "id": "continuation:answer-updates-scope", + "status": "not_run" + }, + { + "id": "continuation:provider-question-bridge", + "status": "not_run" + } + ] + }, + { + "id": "LCA-04", + "name": "Approval and decline", + "expected": "Correct authorized approval releases only its gate; decline executes nothing", + "coverage": [ + { + "lane": "integration", + "file": "server/test-baselines/lifecycle-heartbeat.test.ts", + "pattern": "LCA-04", + "status": "pass", + "assertions": [ + { + "name": "LCA full heartbeat observation LCA-04 LCA-10 native accepted approval preserves the paused admission gate", + "status": "passed", + "duration": 7.945499999999811, + "failureMessages": [] + }, + { + "name": "LCA full heartbeat observation LCA-04 LCA-10 legacy accepted approval preserves the paused admission gate", + "status": "passed", + "duration": 5.463375000000269, + "failureMessages": [] + }, + { + "name": "LCA full heartbeat observation LCA-04 LCA-10 native accepted approval preserves the budget admission gate", + "status": "passed", + "duration": 10.980209000000286, + "failureMessages": [] + }, + { + "name": "LCA full heartbeat observation LCA-04 LCA-10 legacy accepted approval preserves the budget admission gate", + "status": "passed", + "duration": 10.243250000000444, + "failureMessages": [] + } + ] + }, + { + "lane": "unit", + "file": "tests/lifecycle-baseline/authority.test.ts", + "pattern": "LCA-04", + "status": "pass", + "assertions": [ + { + "name": "LCA narrative authority baseline LCA-01 LCA-04 real status done changes admission with identical prose", + "status": "passed", + "duration": 0.22025000000002137, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-01 LCA-04 real status blocked changes admission with identical prose", + "status": "passed", + "duration": 0.06499999999999773, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-01 LCA-04 real status in_review changes admission with identical prose", + "status": "passed", + "duration": 0.04875000000004093, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-01 LCA-04 real status cancelled changes admission with identical prose", + "status": "passed", + "duration": 0.04458300000004556, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 approval / neutral", + "status": "passed", + "duration": 0.11558300000001509, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 approval / no-approval", + "status": "passed", + "duration": 5.657582999999988, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 approval / scoped-negation", + "status": "passed", + "duration": 0.5084999999999695, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 approval / historical-quote", + "status": "passed", + "duration": 0.1645000000000323, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 approval / spanish", + "status": "passed", + "duration": 0.1095409999999788, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 approval / optional-next-steps", + "status": "passed", + "duration": 0.08929200000000037, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 approval / all-done", + "status": "passed", + "duration": 0.09083299999997507, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 approval / keep-going", + "status": "passed", + "duration": 2.933249999999987, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 approval / empty", + "status": "passed", + "duration": 0.3149169999999799, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 blocker / neutral", + "status": "passed", + "duration": 0.11454199999997172, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 blocker / no-approval", + "status": "passed", + "duration": 0.050042000000019016, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 blocker / scoped-negation", + "status": "passed", + "duration": 0.04975000000001728, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 blocker / historical-quote", + "status": "passed", + "duration": 0.05054200000000719, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 blocker / spanish", + "status": "passed", + "duration": 0.04504200000002356, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 blocker / optional-next-steps", + "status": "passed", + "duration": 0.08208400000000893, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 blocker / all-done", + "status": "passed", + "duration": 0.13583399999998846, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 blocker / keep-going", + "status": "passed", + "duration": 0.0648750000000291, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 blocker / empty", + "status": "passed", + "duration": 0.06008300000002009, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-04 resolving the real approval changes authority with identical prose", + "status": "passed", + "duration": 0.07087500000000091, + "failureMessages": [] + } + ] + }, + { + "lane": "unit", + "file": "server/src/__tests__/issue-thread-interaction-routes.test.ts", + "pattern": "confirmation|approval|tool.action", + "status": "pass", + "assertions": [ + { + "name": "issue thread interaction routes returns 400 for agent-addressed tool-action confirmations", + "status": "passed", + "duration": 241.95870800000012, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes accepts request confirmations and wakes the current assignee when configured for accept-only wakeups", + "status": "passed", + "duration": 280.7647500000021, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes executes an accepted tool-action confirmation through the gateway callback", + "status": "passed", + "duration": 220.4316669999971, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes wakes with failure instructions after an accepted tool action fails", + "status": "passed", + "duration": 217.43941699999777, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes wakes with fresh-approval instructions after an accepted tool action expires", + "status": "passed", + "duration": 260.6532920000027, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes rejects client-supplied tool-action metadata on interaction creation", + "status": "passed", + "duration": 215.81354199999987, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes executes an accepted secret-proposal confirmation and wakes with verification instructions", + "status": "passed", + "duration": 209.1633750000001, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes forwards plan-document confirmations to the interaction service for revision validation", + "status": "passed", + "duration": 212.80820799999856, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes accepts request checkbox confirmations with selected option ids and wakes the assignee", + "status": "passed", + "duration": 225.37720900000204, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes forces a fresh workspace-aware session when accepting a planning confirmation with 'explicit' issueId", + "status": "passed", + "duration": 216.41295900000114, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes forces a fresh workspace-aware session when accepting a planning confirmation with 'omitted' issueId", + "status": "passed", + "duration": 224.3173330000027, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes forces a fresh workspace-aware session when accepting a planning confirmation with 'null' issueId", + "status": "passed", + "duration": 363.9045839999999, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes forces a fresh workspace-aware session when accepting a plan document confirmation on a standard-work issue", + "status": "passed", + "duration": 245.64670800000022, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes wakes the returned agent when accepting an agent-authored confirmation from a board review assignee", + "status": "passed", + "duration": 243.70887500000026, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes does not emit a continuation wake when request confirmations are rejected", + "status": "passed", + "duration": 200.75083300000188, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes delivers generic confirmation rejection feedback as the next turn message", + "status": "passed", + "duration": 232.200499999999, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes wakes with decline instructions when a tool-action confirmation is rejected", + "status": "passed", + "duration": 222.11754199999996, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes allows an agent to accept another agent's pending review confirmation by default", + "status": "passed", + "duration": 200.3382500000007, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes allows an agent to reject a pending review confirmation by default", + "status": "passed", + "duration": 213.8329580000027, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes keeps an unrelated pending confirmation human-only on an in-review issue", + "status": "passed", + "duration": 223.22533399999884, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes keeps a same-requester sibling confirmation human-only", + "status": "passed", + "duration": 207.8037919999988, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes rejects an agent review-confirmation verdict under human_only with actionable copy", + "status": "passed", + "duration": 208.85075000000143, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes allows an unrelated agent-resolvable confirmation under a restrictive issue review policy", + "status": "passed", + "duration": 209.55025000000023, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes lets the creator and same run resolve 'request_confirmation' through anyone", + "status": "passed", + "duration": 357.02091700000165, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes lets the creator and same run resolve 'request_checkbox_confirmation' through anyone", + "status": "passed", + "duration": 227.28670899999997, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes blocks human-only and tool-action interactions for agents", + "status": "passed", + "duration": 283.4380000000019, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/src/__tests__/heartbeat-retry-scheduling.test.ts", + "pattern": "gate|budget|paused", + "status": "pass", + "assertions": [ + { + "name": "heartbeat bounded retry scheduling retains the failure budget after many pre-provider workspace_busy waits", + "status": "passed", + "duration": 101.49908400000004, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling retains the failure budget after many pre-provider ai_connection_busy waits", + "status": "passed", + "duration": 69.415708, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling respects the dependency gate for interrupted conversations", + "status": "passed", + "duration": 58.578333000000384, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling respects the disabled gate for interrupted conversations", + "status": "passed", + "duration": 61.70062499999949, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling respects the reassigned gate for interrupted conversations", + "status": "passed", + "duration": 85.233792, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling run-dispatch module transactions rolls back the wakeup-request update when the run-event write fails during a gate-suppressed cancellation", + "status": "passed", + "duration": 35.03212499999972, + "failureMessages": [] + } + ] + } + ], + "live": [ + { + "id": "lifecycle-baseline:lifecycle-approval-neutral", + "status": "not_run" + }, + { + "id": "lifecycle-baseline:lifecycle-approval-challenge", + "status": "not_run" + }, + { + "id": "lifecycle-baseline:tool-review-approve", + "status": "not_run" + }, + { + "id": "lifecycle-baseline:tool-review-decline", + "status": "not_run" + }, + { + "id": "lifecycle-baseline:tool-review-always", + "status": "not_run" + }, + { + "id": "lifecycle-baseline:lifecycle-untrusted-evidence-neutral", + "status": "not_run" + }, + { + "id": "lifecycle-baseline:lifecycle-untrusted-evidence-challenge", + "status": "not_run" + }, + { + "id": "continuation:clarification-not-approval", + "status": "not_run" + }, + { + "id": "everyday-workflows:service-approve", + "status": "not_run" + }, + { + "id": "everyday-workflows:service-decline", + "status": "not_run" + } + ] + }, + { + "id": "LCA-05", + "name": "Plan revision acceptance", + "expected": "Work mode and exact accepted revision authorize execution", + "coverage": [ + { + "lane": "grading", + "file": "tests/runner-e2e/lifecycle-baseline.test.ts", + "pattern": "LCA-05", + "status": "pass", + "assertions": [ + { + "name": "LCA Product E2E evidence calibration LCA-05 accepts current revision and rejects stale or foreign plan targets", + "status": "passed", + "duration": 0.25679200000000435, + "failureMessages": [] + } + ] + }, + { + "lane": "unit", + "file": "tests/lifecycle-baseline/authority.test.ts", + "pattern": "LCA-05", + "status": "pass", + "assertions": [ + { + "name": "LCA narrative authority baseline LCA-05 legacy title report is not work-mode authority", + "status": "passed", + "duration": 1.631416999999999, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-05 legacy title plan is not work-mode authority", + "status": "passed", + "duration": 0.24675000000002, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-05 legacy title research is not work-mode authority", + "status": "passed", + "duration": 0.2273330000000442, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-05 legacy description is not work-mode authority", + "status": "passed", + "duration": 0.7794579999999769, + "failureMessages": [] + } + ] + }, + { + "lane": "unit", + "file": "server/src/__tests__/issue-thread-interaction-routes.test.ts", + "pattern": "plan|revision", + "status": "pass", + "assertions": [ + { + "name": "issue thread interaction routes forwards plan-document confirmations to the interaction service for revision validation", + "status": "passed", + "duration": 212.80820799999856, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes forces a fresh workspace-aware session when accepting a planning confirmation with 'explicit' issueId", + "status": "passed", + "duration": 216.41295900000114, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes forces a fresh workspace-aware session when accepting a planning confirmation with 'omitted' issueId", + "status": "passed", + "duration": 224.3173330000027, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes forces a fresh workspace-aware session when accepting a planning confirmation with 'null' issueId", + "status": "passed", + "duration": 363.9045839999999, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes does not project an explicitly different issue's approved plan into the current issue wake", + "status": "passed", + "duration": 310.682334000001, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes forces a fresh workspace-aware session when accepting a plan document confirmation on a standard-work issue", + "status": "passed", + "duration": 245.64670800000022, + "failureMessages": [] + }, + { + "name": "issue thread interaction routes wakes the assignee to revise a rejected plan even when its policy is accept-only", + "status": "passed", + "duration": 237.45674999999756, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/src/__tests__/issue-thread-interactions-service.test.ts", + "pattern": "Plan.mode|stale.*revision|revision.*stale|plan confirmation", + "status": "pass", + "assertions": [ + { + "name": "issueThreadInteractionService atomically returns an accepted Plan-mode issue to its agent in Auto mode", + "status": "passed", + "duration": 21.025666999999885, + "failureMessages": [] + }, + { + "name": "issueThreadInteractionService keeps Plan mode for non-plan and checkbox confirmations", + "status": "passed", + "duration": 28.631333999999697, + "failureMessages": [] + }, + { + "name": "issueThreadInteractionService keeps ask mode when accepting a plan confirmation", + "status": "passed", + "duration": 13.90112499999941, + "failureMessages": [] + }, + { + "name": "issueThreadInteractionService keeps standard mode when accepting a plan confirmation", + "status": "passed", + "duration": 13.069250000000466, + "failureMessages": [] + }, + { + "name": "issueThreadInteractionService keeps Plan mode when a plan confirmation is rejected", + "status": "passed", + "duration": 14.831458999999995, + "failureMessages": [] + }, + { + "name": "issueThreadInteractionService rejects creating a plan confirmation against a stale document revision and accepts the current one", + "status": "passed", + "duration": 15.851458000000093, + "failureMessages": [] + } + ] + } + ], + "live": [ + { + "id": "lifecycle-baseline:lifecycle-plan-revision-neutral", + "status": "not_run" + }, + { + "id": "lifecycle-baseline:lifecycle-plan-revision-challenge", + "status": "not_run" + }, + { + "id": "agent-chat:plan-handoff", + "status": "not_run" + }, + { + "id": "continuation:revision-preserves-approval", + "status": "not_run" + } + ] + }, + { + "id": "LCA-06", + "name": "Dependencies", + "expected": "All required dependencies release one parent wake; unrelated events do nothing", + "coverage": [ + { + "lane": "integration", + "file": "server/src/__tests__/heartbeat-issue-liveness-escalation.test.ts", + "pattern": ".", + "status": "pass", + "assertions": [ + { + "name": "heartbeat resolved dependency wake reconciliation runs exactly one bounded review-path recovery before surfacing a stalled decision", + "status": "passed", + "duration": 829.1879580000004, + "failureMessages": [] + }, + { + "name": "heartbeat resolved dependency wake reconciliation keeps resolved dependency wake reconciliation active", + "status": "passed", + "duration": 614.4722500000007, + "failureMessages": [] + }, + { + "name": "heartbeat resolved dependency wake reconciliation heals a blocked dependent whose done blocker has no workspace finalize obligation", + "status": "passed", + "duration": 590.009333, + "failureMessages": [] + }, + { + "name": "heartbeat resolved dependency wake reconciliation reconciles a resolved blocked dependency after the assignee-null window closes", + "status": "passed", + "duration": 559.2274580000012, + "failureMessages": [] + }, + { + "name": "heartbeat resolved dependency wake reconciliation keeps repeated wakes behind a active execution hold run-free, then resumes once", + "status": "passed", + "duration": 287.93633299999965, + "failureMessages": [] + }, + { + "name": "heartbeat resolved dependency wake reconciliation keeps repeated wakes behind a resolved execution hold run-free, then resumes once", + "status": "passed", + "duration": 279.2223749999994, + "failureMessages": [] + }, + { + "name": "heartbeat resolved dependency wake reconciliation rechecks every gate after an execution hold clears", + "status": "passed", + "duration": 488.1571249999997, + "failureMessages": [] + }, + { + "name": "heartbeat resolved dependency wake reconciliation preserves distinct comments through a hold and adopts them on the next eligible wake", + "status": "passed", + "duration": 406.01908300000105, + "failureMessages": [] + }, + { + "name": "heartbeat resolved dependency wake reconciliation retries a resolved dependency wake when the prior wake was skipped as stale", + "status": "passed", + "duration": 404.60654199999954, + "failureMessages": [] + }, + { + "name": "heartbeat resolved dependency wake reconciliation waits for workspace finalize before healing a resolved blocked dependent", + "status": "passed", + "duration": 481.365917000001, + "failureMessages": [] + }, + { + "name": "heartbeat resolved dependency wake reconciliation does not duplicate an existing dependency wake keyed to any resolved blocker", + "status": "passed", + "duration": 49.31104199999936, + "failureMessages": [] + }, + { + "name": "heartbeat resolved dependency wake reconciliation heals a multi-blocker dependent when only a completed wake for an earlier blocker exists", + "status": "passed", + "duration": 446.9769159999996, + "failureMessages": [] + }, + { + "name": "heartbeat resolved dependency wake reconciliation heals a blocked dependent after a terminal reset when a previous-cycle old-key wake exists", + "status": "passed", + "duration": 410.9674590000013, + "failureMessages": [] + }, + { + "name": "heartbeat resolved dependency wake reconciliation does not re-heal when a completed old-key wake is from the current blocked cycle", + "status": "passed", + "duration": 35.198999999998705, + "failureMessages": [] + }, + { + "name": "heartbeat resolved dependency wake reconciliation counts null dependency wake returns as deferred instead of enqueue failures", + "status": "passed", + "duration": 26.873833999999988, + "failureMessages": [] + } + ] + } + ], + "live": [ + { + "id": "lifecycle-baseline:lifecycle-dependency-restart-neutral", + "status": "not_run" + }, + { + "id": "lifecycle-baseline:lifecycle-dependency-restart-challenge", + "status": "not_run" + }, + { + "id": "everyday-workflows:delegate-feedback", + "status": "not_run" + }, + { + "id": "runner-evals:set-task-dependencies", + "status": "not_run" + } + ] + }, + { + "id": "LCA-07", + "name": "External monitor wait", + "expected": "Durable eligible monitor fires once and respects timeout and exhaustion", + "coverage": [ + { + "lane": "unit", + "file": "tests/lifecycle-baseline/authority.test.ts", + "pattern": "LCA-07", + "status": "pass", + "assertions": [ + { + "name": "LCA native authority pairs LCA-07 monitor / neutral", + "status": "passed", + "duration": 0.06041699999997263, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-07 monitor / no-approval", + "status": "passed", + "duration": 0.07783399999999574, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-07 monitor / scoped-negation", + "status": "passed", + "duration": 0.0852090000000203, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-07 monitor / historical-quote", + "status": "passed", + "duration": 0.08249999999998181, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-07 monitor / spanish", + "status": "passed", + "duration": 0.22866700000002993, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-07 monitor / optional-next-steps", + "status": "passed", + "duration": 0.2179999999999609, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-07 monitor / all-done", + "status": "passed", + "duration": 0.10725000000002183, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-07 monitor / keep-going", + "status": "passed", + "duration": 0.0997499999999718, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-07 monitor / empty", + "status": "passed", + "duration": 0.09391700000003311, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/src/__tests__/issue-monitor-scheduler.test.ts", + "pattern": ".", + "status": "pass", + "assertions": [ + { + "name": "issue monitor scheduler triggers due issue monitors once and clears the one-shot schedule", + "status": "passed", + "duration": 1250.1058330000005, + "failureMessages": [] + }, + { + "name": "issue monitor scheduler does not replay a quota monitor with unknown execution evidence", + "status": "passed", + "duration": 590.5996659999992, + "failureMessages": [] + }, + { + "name": "issue monitor scheduler does not replay a quota monitor with exhausted execution evidence", + "status": "passed", + "duration": 565.4190829999998, + "failureMessages": [] + }, + { + "name": "issue monitor scheduler wakes a cross-agent review participant for provider quota monitors", + "status": "passed", + "duration": 859.2275840000002, + "failureMessages": [] + }, + { + "name": "issue monitor scheduler lets the board trigger a scheduled issue monitor immediately", + "status": "passed", + "duration": 999.7441660000004, + "failureMessages": [] + }, + { + "name": "issue monitor scheduler clears due monitors that cannot be dispatched and records a skip", + "status": "passed", + "duration": 557.3089579999996, + "failureMessages": [] + }, + { + "name": "issue monitor scheduler clears exhausted monitors and queues bounded owner recovery instead of another due check", + "status": "passed", + "duration": 968.9274999999998, + "failureMessages": [] + }, + { + "name": "issue monitor scheduler clears timed-out monitors and creates a visible recovery issue when requested", + "status": "passed", + "duration": 1045.1773749999993, + "failureMessages": [] + }, + { + "name": "issue monitor scheduler omits external monitor refs from wake payloads and activity details", + "status": "passed", + "duration": 980.9364999999998, + "failureMessages": [] + } + ] + } + ], + "live": [ + { + "id": "runner-evals:schedule-task-wake", + "status": "not_run" + } + ] + }, + { + "id": "LCA-08", + "name": "Ordinary conversation", + "expected": "Deliver response without task completion coercion or repair loops", + "coverage": [ + { + "lane": "unit", + "file": "tests/lifecycle-baseline/authority.test.ts", + "pattern": "LCA-08", + "status": "pass", + "assertions": [ + { + "name": "LCA native authority pairs LCA-08 conversation / neutral", + "status": "passed", + "duration": 0.13479200000000446, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-08 conversation / no-approval", + "status": "passed", + "duration": 0.09062500000004547, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-08 conversation / scoped-negation", + "status": "passed", + "duration": 0.06679100000002336, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-08 conversation / historical-quote", + "status": "passed", + "duration": 0.15466700000001765, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-08 conversation / spanish", + "status": "passed", + "duration": 0.09745799999996052, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-08 conversation / optional-next-steps", + "status": "passed", + "duration": 0.09058399999997846, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-08 conversation / all-done", + "status": "passed", + "duration": 0.09504199999997809, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-08 conversation / keep-going", + "status": "passed", + "duration": 0.13091700000001083, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-08 conversation / empty", + "status": "passed", + "duration": 0.12412499999999227, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/src/__tests__/heartbeat-retry-scheduling.test.ts", + "pattern": "conversation", + "status": "pass", + "assertions": [ + { + "name": "heartbeat bounded retry scheduling bounds interrupted conversations across restarts and concurrent scheduling", + "status": "passed", + "duration": 125.08487499999956, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling respects the dependency gate for interrupted conversations", + "status": "passed", + "duration": 58.578333000000384, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling respects the disabled gate for interrupted conversations", + "status": "passed", + "duration": 61.70062499999949, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling respects the reassigned gate for interrupted conversations", + "status": "passed", + "duration": 85.233792, + "failureMessages": [] + } + ] + }, + { + "lane": "runner", + "file": "packages/paperclip-runner/src/native-session-runtime.test.ts", + "pattern": "governed wait|structured input", + "status": "pass", + "assertions": [ + { + "name": "executeNativeSession recovery commits a governed wait without waiting for abort-insensitive provider cleanup", + "status": "passed", + "duration": 101.20833300000004, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery accepts a control-plane governed wait when a completed turn omitted its semantic result", + "status": "passed", + "duration": 0.6281249999997272, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery parks a provider turn immediately after a durable governed wait appears", + "status": "passed", + "duration": 0.4509170000001177, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery hands a committed structured input to the durable wait after its live window", + "status": "passed", + "duration": 2.0849999999995816, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery keeps a settling structured input in the original turn while its append crosses expiry", + "status": "passed", + "duration": 0.8250410000000556, + "failureMessages": [] + } + ] + } + ], + "live": [ + { + "id": "lifecycle-baseline:clarify-reuse", + "status": "not_run" + }, + { + "id": "agent-chat:clarify-reuse", + "status": "not_run" + } + ] + }, + { + "id": "LCA-09", + "name": "Missing disposition and exhausted repair", + "expected": "Bounded explicit recovery; prose/comments do not supply authority or reset attempts", + "coverage": [ + { + "lane": "runner", + "file": "tests/lifecycle-baseline/runner.test.ts", + "pattern": "LCA-09", + "status": "pass", + "assertions": [ + { + "name": "LCA runner protocol narrative pairs LCA-09 summary cannot replace missing disposition / neutral", + "status": "passed", + "duration": 0.38279100000002586, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-09 summary cannot replace missing disposition / no-approval", + "status": "passed", + "duration": 0.20866600000002222, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-09 summary cannot replace missing disposition / scoped-negation", + "status": "passed", + "duration": 0.12612500000000182, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-09 summary cannot replace missing disposition / historical-quote", + "status": "passed", + "duration": 0.09387499999999704, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-09 summary cannot replace missing disposition / spanish", + "status": "passed", + "duration": 0.08154199999998468, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-09 summary cannot replace missing disposition / optional-next-steps", + "status": "passed", + "duration": 0.07366700000000037, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-09 summary cannot replace missing disposition / all-done", + "status": "passed", + "duration": 0.07666600000001722, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-09 summary cannot replace missing disposition / keep-going", + "status": "passed", + "duration": 0.07604100000000358, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-09 summary cannot replace missing disposition / empty", + "status": "passed", + "duration": 0.16012500000002206, + "failureMessages": [] + } + ] + }, + { + "lane": "unit", + "file": "tests/lifecycle-baseline/authority.test.ts", + "pattern": "LCA-09", + "status": "pass", + "assertions": [ + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / neutral preserves continuation effects", + "status": "passed", + "duration": 8.222959000000003, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / no-approval preserves continuation effects", + "status": "passed", + "duration": 0.6854159999999752, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / scoped-negation preserves continuation effects", + "status": "passed", + "duration": 0.2598329999999578, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / historical-quote preserves continuation effects", + "status": "passed", + "duration": 0.29420899999996664, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / spanish preserves continuation effects", + "status": "passed", + "duration": 0.8711659999999597, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / optional-next-steps preserves continuation effects", + "status": "passed", + "duration": 1.5376249999999914, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / all-done preserves continuation effects", + "status": "passed", + "duration": 0.35950000000002547, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / keep-going preserves continuation effects", + "status": "passed", + "duration": 0.26412500000003547, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy summary / empty preserves continuation effects", + "status": "passed", + "duration": 0.258624999999995, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / neutral preserves continuation effects", + "status": "passed", + "duration": 0.275209000000018, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / no-approval preserves continuation effects", + "status": "passed", + "duration": 0.1962909999999738, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / scoped-negation preserves continuation effects", + "status": "passed", + "duration": 0.17174999999997453, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / historical-quote preserves continuation effects", + "status": "passed", + "duration": 0.1459169999999972, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / spanish preserves continuation effects", + "status": "passed", + "duration": 0.160000000000025, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / optional-next-steps preserves continuation effects", + "status": "passed", + "duration": 0.1560000000000059, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / all-done preserves continuation effects", + "status": "passed", + "duration": 0.1682920000000081, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / keep-going preserves continuation effects", + "status": "passed", + "duration": 0.11583299999995234, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy result / empty preserves continuation effects", + "status": "passed", + "duration": 0.15354200000001583, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / neutral preserves continuation effects", + "status": "passed", + "duration": 0.208500000000015, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / no-approval preserves continuation effects", + "status": "passed", + "duration": 0.12312499999995907, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / scoped-negation preserves continuation effects", + "status": "passed", + "duration": 0.16204100000004473, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / historical-quote preserves continuation effects", + "status": "passed", + "duration": 0.1359579999999596, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / spanish preserves continuation effects", + "status": "passed", + "duration": 0.10241600000000517, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / optional-next-steps preserves continuation effects", + "status": "passed", + "duration": 0.497874999999965, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / all-done preserves continuation effects", + "status": "passed", + "duration": 0.221458000000041, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / keep-going preserves continuation effects", + "status": "passed", + "duration": 0.1520420000000513, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy comment / empty preserves continuation effects", + "status": "passed", + "duration": 0.13370800000001282, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / neutral preserves continuation effects", + "status": "passed", + "duration": 0.25108299999999417, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / no-approval preserves continuation effects", + "status": "passed", + "duration": 0.2415409999999838, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / scoped-negation preserves continuation effects", + "status": "passed", + "duration": 0.571583999999973, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / historical-quote preserves continuation effects", + "status": "passed", + "duration": 0.17191700000000765, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / spanish preserves continuation effects", + "status": "passed", + "duration": 0.20524999999997817, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / optional-next-steps preserves continuation effects", + "status": "passed", + "duration": 0.13854200000002947, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / all-done preserves continuation effects", + "status": "passed", + "duration": 0.13212499999997362, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / keep-going preserves continuation effects", + "status": "passed", + "duration": 0.14654100000001336, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy continuation / empty preserves continuation effects", + "status": "passed", + "duration": 0.1114170000000172, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / neutral preserves continuation effects", + "status": "passed", + "duration": 0.7300410000000284, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / no-approval preserves continuation effects", + "status": "passed", + "duration": 0.33600000000001273, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / scoped-negation preserves continuation effects", + "status": "passed", + "duration": 0.21241699999995944, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / historical-quote preserves continuation effects", + "status": "passed", + "duration": 1.0772499999999923, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / spanish preserves continuation effects", + "status": "passed", + "duration": 0.6422910000000002, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / optional-next-steps preserves continuation effects", + "status": "passed", + "duration": 0.3340000000000032, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / all-done preserves continuation effects", + "status": "passed", + "duration": 0.19379200000003038, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / keep-going preserves continuation effects", + "status": "passed", + "duration": 0.6144580000000133, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stdout / empty preserves continuation effects", + "status": "passed", + "duration": 0.602958000000001, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / neutral preserves continuation effects", + "status": "passed", + "duration": 0.45616699999999355, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / no-approval preserves continuation effects", + "status": "passed", + "duration": 0.21462500000001228, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / scoped-negation preserves continuation effects", + "status": "passed", + "duration": 0.5087500000000205, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / historical-quote preserves continuation effects", + "status": "passed", + "duration": 0.34704199999998764, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / spanish preserves continuation effects", + "status": "passed", + "duration": 0.27295899999995754, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / optional-next-steps preserves continuation effects", + "status": "passed", + "duration": 0.21170799999998735, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / all-done preserves continuation effects", + "status": "passed", + "duration": 0.17441699999994853, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / keep-going preserves continuation effects", + "status": "passed", + "duration": 0.7115000000000009, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-02 LCA-09 legacy stderr / empty preserves continuation effects", + "status": "passed", + "duration": 0.19945900000004713, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-09 additional commentary cannot manufacture progress or reset an attempt", + "status": "passed", + "duration": 1.4511660000000006, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-09 exhausted recovery remains exhausted", + "status": "passed", + "duration": 0.07262499999995953, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-09 missing evidence / neutral", + "status": "passed", + "duration": 0.09695799999997234, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-09 missing evidence / no-approval", + "status": "passed", + "duration": 0.11950000000001637, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-09 missing evidence / scoped-negation", + "status": "passed", + "duration": 0.07966699999997218, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-09 missing evidence / historical-quote", + "status": "passed", + "duration": 0.07800000000003138, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-09 missing evidence / spanish", + "status": "passed", + "duration": 0.08075000000002319, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-09 missing evidence / optional-next-steps", + "status": "passed", + "duration": 0.147041999999999, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-09 missing evidence / all-done", + "status": "passed", + "duration": 0.08800000000002228, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-09 missing evidence / keep-going", + "status": "passed", + "duration": 0.08275000000003274, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-09 missing evidence / empty", + "status": "passed", + "duration": 0.0785420000000272, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/src/__tests__/legacy-continuation-authority.test.ts", + "pattern": ".", + "status": "pass", + "assertions": [ + { + "name": "legacy continuation persisted authority deduplicates concurrent replay with stale prose-derived liveness (1)", + "status": "passed", + "duration": 108.27620799999977, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority deduplicates concurrent replay with stale prose-derived liveness (2)", + "status": "passed", + "duration": 36.638958, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority deduplicates concurrent replay with stale prose-derived liveness (3)", + "status": "passed", + "duration": 35.489750000000186, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority deduplicates concurrent replay with stale prose-derived liveness (4)", + "status": "passed", + "duration": 31.17816700000003, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority deduplicates concurrent replay with stale prose-derived liveness (5)", + "status": "passed", + "duration": 34.96070799999961, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority does not roll back the ledger when a fast repair finishes before enqueue returns", + "status": "passed", + "duration": 33.94858299999987, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority keeps the same bounded episode across restart and commentary, then escalates only after agent attempts", + "status": "passed", + "duration": 80.70491599999968, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority persists the source identity while the second repair waits to dispatch", + "status": "passed", + "duration": 35.223999999999705, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority does not stack a new repair budget on the retry_queued comment policy", + "status": "passed", + "duration": 9.423166999999921, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority does not stack a new repair budget on the retry_exhausted comment policy", + "status": "passed", + "duration": 10.923917000000074, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority does not grant a new budget to exhausted pre-upgrade continuation", + "status": "passed", + "duration": 37.40491699999984, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority honors durable done instead of the final summary", + "status": "passed", + "duration": 6.088874999999462, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority honors durable cancelled instead of the final summary", + "status": "passed", + "duration": 6.42016699999931, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority honors durable blocked instead of the final summary", + "status": "passed", + "duration": 10.244291999999405, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority honors durable in_review instead of the final summary", + "status": "passed", + "duration": 10.889250000000175, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority respects a pending approval while the issue still says in progress", + "status": "passed", + "duration": 7.878708000000188, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority rechecks a newly pending approval at dispatch without spending another attempt", + "status": "passed", + "duration": 27.604416999999557, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority preserves repair authority and its budget through a typed infrastructure retry", + "status": "passed", + "duration": 30.939792000000125, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority suppresses a queued repair after done", + "status": "passed", + "duration": 21.816749999999956, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority suppresses a queued repair after paused", + "status": "passed", + "duration": 24.887375000000247, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority suppresses a queued repair after reassigned", + "status": "passed", + "duration": 19.883582999999817, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority suppresses a queued repair after stopped", + "status": "passed", + "duration": 19.352582999999868, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority leaves goal-control run ownership intact: {\"goalControlRequestId\":\"control\"}", + "status": "passed", + "duration": 8.543499999999767, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority leaves goal-control run ownership intact: {\"resumeSessionGoalHeartbeat\":true}", + "status": "passed", + "duration": 12.52350000000024, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority leaves a due monitor as the owner of the next step", + "status": "passed", + "duration": 10.493374999999105, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority honors pause and changed ownership without spending a repair attempt", + "status": "passed", + "duration": 15.389374999999745, + "failureMessages": [] + }, + { + "name": "legacy continuation persisted authority the delayed sweep ignores old diagnostic labels and uses the same repair path", + "status": "passed", + "duration": 156.24695799999972, + "failureMessages": [] + } + ] + }, + { + "lane": "unit", + "file": "server/src/services/recovery/legacy-continuation.test.ts", + "pattern": ".", + "status": "pass", + "assertions": [ + { + "name": "legacy continuation authority requests agent repair for a successful process without a task disposition", + "status": "passed", + "duration": 4.481958999999989, + "failureMessages": [] + }, + { + "name": "legacy continuation authority respects persisted done disposition", + "status": "passed", + "duration": 0.1936669999999765, + "failureMessages": [] + }, + { + "name": "legacy continuation authority respects persisted cancelled disposition", + "status": "passed", + "duration": 0.07075000000000387, + "failureMessages": [] + }, + { + "name": "legacy continuation authority respects persisted blocked disposition", + "status": "passed", + "duration": 0.05791599999997743, + "failureMessages": [] + }, + { + "name": "legacy continuation authority respects persisted in_review disposition", + "status": "passed", + "duration": 0.05433400000001143, + "failureMessages": [] + }, + { + "name": "legacy continuation authority does not convert a failed process into repair", + "status": "passed", + "duration": 0.06137499999999818, + "failureMessages": [] + }, + { + "name": "legacy continuation authority does not convert a cancelled process into repair", + "status": "passed", + "duration": 0.052707999999995536, + "failureMessages": [] + }, + { + "name": "legacy continuation authority does not convert a interrupted process into repair", + "status": "passed", + "duration": 0.04949999999999477, + "failureMessages": [] + }, + { + "name": "legacy continuation authority does not convert a timed_out process into repair", + "status": "passed", + "duration": 0.07083299999999326, + "failureMessages": [] + }, + { + "name": "legacy continuation authority does not convert a running process into repair", + "status": "passed", + "duration": 0.06862499999999727, + "failureMessages": [] + }, + { + "name": "legacy continuation authority preserves stopped", + "status": "passed", + "duration": 0.06537499999998886, + "failureMessages": [] + }, + { + "name": "legacy continuation authority preserves paused", + "status": "passed", + "duration": 0.03670900000000188, + "failureMessages": [] + }, + { + "name": "legacy continuation authority preserves budgetBlocked", + "status": "passed", + "duration": 0.03191700000002129, + "failureMessages": [] + }, + { + "name": "legacy continuation authority preserves pendingWait", + "status": "passed", + "duration": 0.03429200000002197, + "failureMessages": [] + }, + { + "name": "legacy continuation authority preserves activeExecution", + "status": "passed", + "duration": 0.033999999999991815, + "failureMessages": [] + }, + { + "name": "legacy continuation authority preserves ownedLifecycle", + "status": "passed", + "duration": 0.2013330000000053, + "failureMessages": [] + }, + { + "name": "legacy continuation authority preserves conversation", + "status": "passed", + "duration": 0.40033399999998664, + "failureMessages": [] + }, + { + "name": "legacy continuation authority does not repair with a paused agent", + "status": "passed", + "duration": 0.08495800000000031, + "failureMessages": [] + }, + { + "name": "legacy continuation authority does not repair with a terminated agent", + "status": "passed", + "duration": 0.029541999999992186, + "failureMessages": [] + }, + { + "name": "legacy continuation authority does not repair with a pending_approval agent", + "status": "passed", + "duration": 0.02508299999999508, + "failureMessages": [] + }, + { + "name": "legacy continuation authority rejects foreign agent and reassigned issue", + "status": "passed", + "duration": 0.06125000000000114, + "failureMessages": [] + }, + { + "name": "legacy continuation authority preserves the episode through two attempts and exhaustion", + "status": "passed", + "duration": 0.2814160000000072, + "failureMessages": [] + }, + { + "name": "legacy continuation authority does not resurrect an exhausted pre-upgrade liveness or handoff budget", + "status": "passed", + "duration": 0.16474999999999795, + "failureMessages": [] + }, + { + "name": "legacy continuation authority keeps replay identity stable while a genuinely new episode gets its own identity", + "status": "passed", + "duration": 0.16316600000001813, + "failureMessages": [] + }, + { + "name": "legacy continuation authority leaves native finalization to its own authority", + "status": "passed", + "duration": 0.039666999999980135, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/test-baselines/lifecycle-heartbeat.test.ts", + "pattern": "LCA-09", + "status": "pass", + "assertions": [ + { + "name": "LCA full heartbeat observation LCA-09 exhausted recovery ignores commentary but admits a new user request", + "status": "passed", + "duration": 200.18245899999965, + "failureMessages": [] + } + ] + }, + { + "lane": "unit", + "file": "server/src/__tests__/disposition-repair.test.ts", + "pattern": ".", + "status": "pass", + "assertions": [ + { + "name": "owner-sticky disposition repair classifies a deliberate wait without a target into its dedicated bounded lane", + "status": "passed", + "duration": 1.679707999999664, + "failureMessages": [] + }, + { + "name": "owner-sticky disposition repair uses the persisted five-attempt owner-sticky schedule with bounded deterministic jitter", + "status": "passed", + "duration": 1.0278329999996458, + "failureMessages": [] + } + ] + }, + { + "lane": "runner", + "file": "packages/paperclip-runner/src/native-session-runtime.test.ts", + "pattern": "result.less|proposal.less|semantic result", + "status": "pass", + "assertions": [ + { + "name": "executeNativeSession recovery reconciles an out-of-band 'complete' goal (after semantic result: false)", + "status": "passed", + "duration": 26.961499999999887, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery reconciles an out-of-band 'complete' goal (after semantic result: true)", + "status": "passed", + "duration": 26.186750000000075, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery reconciles an out-of-band 'paused' goal (after semantic result: false)", + "status": "passed", + "duration": 26.00333300000011, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery reconciles an out-of-band 'paused' goal (after semantic result: true)", + "status": "passed", + "duration": 26.394208000000162, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery reconciles an out-of-band 'blocked' goal (after semantic result: false)", + "status": "passed", + "duration": 25.91237500000011, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery reconciles an out-of-band 'blocked' goal (after semantic result: true)", + "status": "passed", + "duration": 26.74675000000002, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery reconciles an out-of-band 'limited' goal (after semantic result: false)", + "status": "passed", + "duration": 26.494500000000016, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery reconciles an out-of-band 'limited' goal (after semantic result: true)", + "status": "passed", + "duration": 25.736250000000155, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery reconciles an out-of-band 'usageLimited' goal (after semantic result: false)", + "status": "passed", + "duration": 26.687374999999975, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery reconciles an out-of-band 'usageLimited' goal (after semantic result: true)", + "status": "passed", + "duration": 25.89654100000007, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery reconciles an out-of-band 'budgetLimited' goal (after semantic result: false)", + "status": "passed", + "duration": 26.549207999999908, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery reconciles an out-of-band 'budgetLimited' goal (after semantic result: true)", + "status": "passed", + "duration": 26.238374999999905, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery resolves a proposal-less durable disposition terminal through control-plane policy", + "status": "passed", + "duration": 1.031666999999743, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery resolves a checkpointed result-less disposition without resubmitting when its terminal event is missing", + "status": "passed", + "duration": 0.8783339999999953, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery keeps a reconstructed semantic result on its matched terminal turn", + "status": "passed", + "duration": 0.874250000000302, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery accepts a control-plane governed wait when a completed turn omitted its semantic result", + "status": "passed", + "duration": 0.6281249999997272, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/src/services/native-runtime/native-safe-replacement.test.ts", + "pattern": "exhausted|another run id", + "status": "pass", + "assertions": [ + { + "name": "durable replacement and control recovery automatically closes an exhausted incident once, preserves ownership, and records no replay", + "status": "passed", + "duration": 292.8360419999999, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery never resets an exhausted incident by assigning another run id", + "status": "passed", + "duration": 296.76745799999844, + "failureMessages": [] + } + ] + } + ], + "live": [ + { + "id": "lifecycle-baseline:lifecycle-repair-neutral", + "status": "not_run" + }, + { + "id": "lifecycle-baseline:lifecycle-repair-challenge", + "status": "not_run" + } + ] + }, + { + "id": "LCA-10", + "name": "Stop, pause and budget", + "expected": "Distinct stop/pause semantics; no unauthorized continuation", + "coverage": [ + { + "lane": "integration", + "file": "server/test-baselines/lifecycle-heartbeat.test.ts", + "pattern": "LCA-10", + "status": "pass", + "assertions": [ + { + "name": "LCA full heartbeat observation LCA-04 LCA-10 native accepted approval preserves the paused admission gate", + "status": "passed", + "duration": 7.945499999999811, + "failureMessages": [] + }, + { + "name": "LCA full heartbeat observation LCA-04 LCA-10 legacy accepted approval preserves the paused admission gate", + "status": "passed", + "duration": 5.463375000000269, + "failureMessages": [] + }, + { + "name": "LCA full heartbeat observation LCA-04 LCA-10 native accepted approval preserves the budget admission gate", + "status": "passed", + "duration": 10.980209000000286, + "failureMessages": [] + }, + { + "name": "LCA full heartbeat observation LCA-04 LCA-10 legacy accepted approval preserves the budget admission gate", + "status": "passed", + "duration": 10.243250000000444, + "failureMessages": [] + } + ] + }, + { + "lane": "unit", + "file": "tests/lifecycle-baseline/authority.test.ts", + "pattern": "LCA-10", + "status": "pass", + "assertions": [ + { + "name": "LCA narrative authority baseline LCA-10 LCA-12 legacy gate budget survives encouraging prose", + "status": "passed", + "duration": 0.19058300000000372, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-10 LCA-12 legacy gate duplicate survives encouraging prose", + "status": "passed", + "duration": 0.10020799999995234, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-10 LCA-12 legacy gate wrong-company survives encouraging prose", + "status": "passed", + "duration": 0.7651670000000195, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-10 LCA-12 legacy gate paused-agent survives encouraging prose", + "status": "passed", + "duration": 0.152499999999975, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-10 stopped / neutral", + "status": "passed", + "duration": 0.09695899999996982, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-10 stopped / no-approval", + "status": "passed", + "duration": 0.09829100000001745, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-10 stopped / scoped-negation", + "status": "passed", + "duration": 0.06995899999998301, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-10 stopped / historical-quote", + "status": "passed", + "duration": 0.12933400000002848, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-10 stopped / spanish", + "status": "passed", + "duration": 0.08908400000001393, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-10 stopped / optional-next-steps", + "status": "passed", + "duration": 0.07579199999997854, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-10 stopped / all-done", + "status": "passed", + "duration": 0.07524999999998272, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-10 stopped / keep-going", + "status": "passed", + "duration": 0.08129200000001902, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-10 stopped / empty", + "status": "passed", + "duration": 0.06620800000001736, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/src/__tests__/heartbeat-stale-queue-invalidation.test.ts", + "pattern": "cap|gate|ownership|before adapter", + "status": "pass", + "assertions": [ + { + "name": "heartbeat stale queued-run invalidation skips generic timer wakes with no actionable assigned work before adapter execution", + "status": "passed", + "duration": 450.5637920000004, + "failureMessages": [] + }, + { + "name": "heartbeat stale queued-run invalidation cancels a resolved connection-intent wake 'parked' after checkout but before adapter dispatch", + "status": "passed", + "duration": 826.8861670000006, + "failureMessages": [] + }, + { + "name": "heartbeat stale queued-run invalidation cancels a resolved connection-intent wake 'reassigned' after checkout but before adapter dispatch", + "status": "passed", + "duration": 690.5247080000008, + "failureMessages": [] + }, + { + "name": "heartbeat stale queued-run invalidation rejects ownership changes immediately before the final continuation handoff", + "status": "passed", + "duration": 712.788833999999, + "failureMessages": [] + }, + { + "name": "heartbeat stale queued-run invalidation skips wakes before queueing when per-agent daily run cap is reached", + "status": "passed", + "duration": 471.41150000000016, + "failureMessages": [] + }, + { + "name": "heartbeat stale queued-run invalidation treats zero daily run cap as a hard stop", + "status": "passed", + "duration": 516.9144579999993, + "failureMessages": [] + }, + { + "name": "heartbeat stale queued-run invalidation counts started cancelled runs toward the per-agent daily run cap", + "status": "passed", + "duration": 528.5672090000007, + "failureMessages": [] + }, + { + "name": "heartbeat stale queued-run invalidation coalesces same-issue wakes before enforcing the daily run cap", + "status": "passed", + "duration": 473.15087499999936, + "failureMessages": [] + }, + { + "name": "heartbeat stale queued-run invalidation skips wakes before queueing when per-agent daily cost cap is reached", + "status": "passed", + "duration": 459.19824999999764, + "failureMessages": [] + }, + { + "name": "heartbeat stale queued-run invalidation treats zero daily cost cap as a hard stop", + "status": "passed", + "duration": 502.3146670000024, + "failureMessages": [] + }, + { + "name": "heartbeat stale queued-run invalidation skips already queued runs before adapter execution when the daily cost cap is reached", + "status": "passed", + "duration": 497.5990840000013, + "failureMessages": [] + }, + { + "name": "heartbeat stale queued-run invalidation skips already queued issue runs at the daily run cap and releases the execution lock", + "status": "passed", + "duration": 518.7101250000014, + "failureMessages": [] + }, + { + "name": "heartbeat stale queued-run invalidation promotes deferred issue wakes when a queued holder is cancelled by the daily run cap", + "status": "passed", + "duration": 501.80504199999996, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/src/__tests__/heartbeat-retry-scheduling.test.ts", + "pattern": "budget|pause|cancel|gate", + "status": "pass", + "assertions": [ + { + "name": "heartbeat bounded retry scheduling retains the failure budget after many pre-provider workspace_busy waits", + "status": "passed", + "duration": 101.49908400000004, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling retains the failure budget after many pre-provider ai_connection_busy waits", + "status": "passed", + "duration": 69.415708, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling respects the dependency gate for interrupted conversations", + "status": "passed", + "duration": 58.578333000000384, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling respects the disabled gate for interrupted conversations", + "status": "passed", + "duration": 61.70062499999949, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling respects the reassigned gate for interrupted conversations", + "status": "passed", + "duration": 85.233792, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling cancels a due max-turn continuation when the issue moves to blocked before retry promotion", + "status": "passed", + "duration": 51.0482920000004, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling cancels a due max-turn continuation when the issue moves to todo before retry promotion", + "status": "passed", + "duration": 59.44795900000008, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling cancels a due max-turn continuation when the issue moves to backlog before retry promotion", + "status": "passed", + "duration": 50.36954100000003, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling run-dispatch module transactions rolls back the wakeup-request update when the run-event write fails during a gate-suppressed cancellation", + "status": "passed", + "duration": 35.03212499999972, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling run-dispatch module transactions keeps promotion and stale-queued-run cancellation company-scoped", + "status": "passed", + "duration": 595.6201660000006, + "failureMessages": [] + }, + { + "name": "heartbeat bounded retry scheduling run-dispatch module transactions never writes another company's wakeup request during suppressed-retry or stale-queued-run cancellation", + "status": "passed", + "duration": 48.57512499999939, + "failureMessages": [] + } + ] + } + ], + "live": [ + { + "id": "lifecycle-baseline:stop-new-resume", + "status": "not_run" + }, + { + "id": "everyday-workflows:stop-redirect", + "status": "not_run" + }, + { + "id": "agent-chat:stop-new-resume", + "status": "not_run" + } + ] + }, + { + "id": "LCA-11", + "name": "Terminal ordering and cleanup", + "expected": "Completion report is not provider success; terminal/cleanup events retain their authority", + "coverage": [ + { + "lane": "runner", + "file": "tests/lifecycle-baseline/runner.test.ts", + "pattern": "LCA-11", + "status": "pass", + "assertions": [ + { + "name": "LCA runner protocol narrative pairs LCA-11 explicit verification reason survives detail / neutral", + "status": "passed", + "duration": 0.4179589999999962, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-11 explicit verification reason survives detail / no-approval", + "status": "passed", + "duration": 0.3020830000000103, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-11 explicit verification reason survives detail / scoped-negation", + "status": "passed", + "duration": 0.2001250000000141, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-11 explicit verification reason survives detail / historical-quote", + "status": "passed", + "duration": 0.13716700000000515, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-11 explicit verification reason survives detail / spanish", + "status": "passed", + "duration": 0.11483400000000188, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-11 explicit verification reason survives detail / optional-next-steps", + "status": "passed", + "duration": 0.09354199999998514, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-11 explicit verification reason survives detail / all-done", + "status": "passed", + "duration": 0.08416599999998198, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-11 explicit verification reason survives detail / keep-going", + "status": "passed", + "duration": 0.3765420000000006, + "failureMessages": [] + }, + { + "name": "LCA runner protocol narrative pairs LCA-11 explicit verification reason survives detail / empty", + "status": "passed", + "duration": 0.45249999999998636, + "failureMessages": [] + } + ] + }, + { + "lane": "unit", + "file": "tests/lifecycle-baseline/authority.test.ts", + "pattern": "LCA-11", + "status": "pass", + "assertions": [ + { + "name": "LCA native authority pairs LCA-11 late failure / neutral", + "status": "passed", + "duration": 0.1376250000000141, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-11 late failure / no-approval", + "status": "passed", + "duration": 0.16433299999999917, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-11 late failure / scoped-negation", + "status": "passed", + "duration": 0.18666699999999992, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-11 late failure / historical-quote", + "status": "passed", + "duration": 0.1043749999999477, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-11 late failure / spanish", + "status": "passed", + "duration": 0.10358400000001211, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-11 late failure / optional-next-steps", + "status": "passed", + "duration": 0.11279199999995626, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-11 late failure / all-done", + "status": "passed", + "duration": 0.08966600000002245, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-11 late failure / keep-going", + "status": "passed", + "duration": 0.0767919999999549, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-11 late failure / empty", + "status": "passed", + "duration": 0.07554199999998445, + "failureMessages": [] + } + ] + }, + { + "lane": "runner", + "file": "packages/paperclip-runner/src/native-session-runtime.test.ts", + "pattern": "terminal|completion report|cleanup|handoff", + "status": "pass", + "assertions": [ + { + "name": "executeNativeSession recovery preserves durable success while quarantined cleanup stays bounded", + "status": "passed", + "duration": 3.2268340000000535, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery stops scheduled cleanup after the quarantine lifetime budget", + "status": "passed", + "duration": 2.677500000000009, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery retains late bootstrap cleanup through the next admission", + "status": "passed", + "duration": 1.6077909999999065, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery bounds post-terminal finalization when provider result never settles", + "status": "passed", + "duration": 0.7923339999999826, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery bounds post-terminal finalization when completion checkpoint never settles", + "status": "passed", + "duration": 0.5987499999998818, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery bounds post-terminal finalization when control-plane replay never settles", + "status": "passed", + "duration": 0.7762499999998909, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery bounds post-terminal finalization when final event append never settles", + "status": "passed", + "duration": 0.8074579999999969, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery bounds post-terminal finalization when run completion never settles", + "status": "passed", + "duration": 0.9764169999998558, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery commits cancellation before bounding failed provider cleanup", + "status": "passed", + "duration": 203.9091659999999, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery preserves a permanent integrity failure through required cleanup ({\"typed\":true,\"closeFails\":false})", + "status": "passed", + "duration": 0.8016250000000582, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery preserves a permanent integrity failure through required cleanup ({\"typed\":true,\"closeFails\":true})", + "status": "passed", + "duration": 0.5752079999997477, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery preserves a permanent integrity failure through required cleanup ({\"typed\":false,\"closeFails\":true})", + "status": "passed", + "duration": 0.5013750000002801, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery preserves a permanent integrity failure through required cleanup ({\"typed\":true,\"closeFails\":true,\"startupRace\":true})", + "status": "passed", + "duration": 0.75912500000004, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery commits a governed wait without waiting for abort-insensitive provider cleanup", + "status": "passed", + "duration": 101.20833300000004, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery uses the execution timeout when a completion report has no provider terminal", + "status": "passed", + "duration": 172.60533399999986, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery retains a reusable session while a semantic terminal releases its remote subscription", + "status": "passed", + "duration": 150.93237499999987, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery replaces a provider session that already ended with a failed terminal", + "status": "passed", + "duration": 0.6677919999997357, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery resolves a proposal-less durable disposition terminal through control-plane policy", + "status": "passed", + "duration": 1.031666999999743, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery resolves a checkpointed result-less disposition without resubmitting when its terminal event is missing", + "status": "passed", + "duration": 0.8783339999999953, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery keeps a reconstructed semantic result on its matched terminal turn", + "status": "passed", + "duration": 0.874250000000302, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery aborts and bounds a durable handoff that never settles", + "status": "passed", + "duration": 126.73416700000007, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery preserves terminal success while iterator teardown remains pending", + "status": "passed", + "duration": 51.213416999999936, + "failureMessages": [] + }, + { + "name": "executeNativeSession recovery preserves terminal success while quarantining stalled handoff cleanup", + "status": "passed", + "duration": 102.55220899999995, + "failureMessages": [] + } + ] + } + ], + "live": [] + }, + { + "id": "LCA-12", + "name": "Replay, restart and stale ownership", + "expected": "One successor, preserved receipts/budgets; stale finalizers cannot mutate new ownership", + "coverage": [ + { + "lane": "grading", + "file": "tests/runner-e2e/lifecycle-baseline.test.ts", + "pattern": "LCA-12", + "status": "pass", + "assertions": [ + { + "name": "LCA Product E2E evidence calibration LCA-12 rejects lost original receipt", + "status": "passed", + "duration": 0.108791999999994, + "failureMessages": [] + } + ] + }, + { + "lane": "unit", + "file": "tests/lifecycle-baseline/authority.test.ts", + "pattern": "LCA-12", + "status": "pass", + "assertions": [ + { + "name": "LCA narrative authority baseline LCA-10 LCA-12 legacy gate budget survives encouraging prose", + "status": "passed", + "duration": 0.19058300000000372, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-10 LCA-12 legacy gate duplicate survives encouraging prose", + "status": "passed", + "duration": 0.10020799999995234, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-10 LCA-12 legacy gate wrong-company survives encouraging prose", + "status": "passed", + "duration": 0.7651670000000195, + "failureMessages": [] + }, + { + "name": "LCA narrative authority baseline LCA-10 LCA-12 legacy gate paused-agent survives encouraging prose", + "status": "passed", + "duration": 0.152499999999975, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-12 already closed / neutral", + "status": "passed", + "duration": 0.08595800000000509, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-12 already closed / no-approval", + "status": "passed", + "duration": 0.07433400000002166, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-12 already closed / scoped-negation", + "status": "passed", + "duration": 0.084541999999999, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-12 already closed / historical-quote", + "status": "passed", + "duration": 0.09791699999999537, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-12 already closed / spanish", + "status": "passed", + "duration": 0.08420799999998962, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-12 already closed / optional-next-steps", + "status": "passed", + "duration": 0.0903329999999869, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-12 already closed / all-done", + "status": "passed", + "duration": 0.07699999999999818, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-12 already closed / keep-going", + "status": "passed", + "duration": 0.077541999999994, + "failureMessages": [] + }, + { + "name": "LCA native authority pairs LCA-12 already closed / empty", + "status": "passed", + "duration": 0.07595899999995481, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/src/__tests__/native-finalization-recovery.test.ts", + "pattern": ".", + "status": "pass", + "assertions": [ + { + "name": "P6-16/P6-25/P6-28 native finalization recovery fails closed into bounded named recovery without consulting the live flag or falling back", + "status": "passed", + "duration": 93.93299999999999, + "failureMessages": [] + }, + { + "name": "P6-16/P6-25/P6-28 native finalization recovery retires an older failed finalizer when a newer run already committed the issue", + "status": "passed", + "duration": 23.82787499999995, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery discovers exact committed results even with stale nativePhase or privately recovered errors", + "status": "passed", + "duration": 30.892166000000543, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes ineligible or previously attempted cleanup: {\"run\":{\"runtimeMode\":\"legacy\"}}", + "status": "passed", + "duration": 5.520208000000821, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes ineligible or previously attempted cleanup: {\"run\":{\"status\":\"running\"}}", + "status": "passed", + "duration": 6.274916999999732, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes ineligible or previously attempted cleanup: {\"run\":{\"finishedAt\":null}}", + "status": "passed", + "duration": 7.502541999999266, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes ineligible or previously attempted cleanup: {\"run\":{\"error\":\"another failure\"}}", + "status": "passed", + "duration": 5.0770000000002256, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes ineligible or previously attempted cleanup: {\"run\":{\"errorCode\":\"setup_failed\"}}", + "status": "passed", + "duration": 4.247667000000547, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes ineligible or previously attempted cleanup: {\"run\":{\"error\":\"newer failure\",\"errorCode\":\"adapter_failed\",\"resultJson\":{\"recoveredExecutionFailure\":{\"error\":\"provider_transport_failed: runner did not durably suspend before checkpoint\",\"errorCode\":\"adapter_failed\"}}}}", + "status": "passed", + "duration": 4.229916999999659, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes ineligible or previously attempted cleanup: {\"schemaStatus\":\"rejected\"}", + "status": "passed", + "duration": 3.795208000000457, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes ineligible or previously attempted cleanup: {\"coordinator\":{\"phase\":\"retryable_failure\"}}", + "status": "passed", + "duration": 4.030499999999847, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes ineligible or previously attempted cleanup: {\"coordinator\":{\"nextAttemptAt\":\"1970-01-01T00:00:00.000Z\"}}", + "status": "passed", + "duration": 3.7830000000003565, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes ineligible or previously attempted cleanup: {\"coordinator\":{\"leaseOwner\":\"another-controller\",\"leaseExpiresAt\":\"2026-09-22T15:30:55.261Z\"}}", + "status": "passed", + "duration": 4.802958999999646, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes ineligible or previously attempted cleanup: {\"coordinator\":{\"recoveryHistory\":[{\"kind\":\"native_cleanup_maintenance\",\"phase\":\"started\"}]}}", + "status": "passed", + "duration": 3.782165999999961, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes ineligible or previously attempted cleanup: {\"coordinator\":{\"recoveryHistory\":[{\"kind\":\"native_cleanup_maintenance\",\"phase\":\"settled\"}]}}", + "status": "passed", + "duration": 3.72820800000045, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes ineligible or previously attempted cleanup: {\"coordinator\":{\"recoveryHistory\":[{\"kind\":\"native_cleanup_maintenance\",\"phase\":\"operator_required\"}]}}", + "status": "passed", + "duration": 3.762207999999191, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes ineligible or previously attempted cleanup: {\"coordinator\":{\"recoveryHistory\":[{\"kind\":\"native_cleanup_source_archive\",\"phase\":\"operator_required\"}]}}", + "status": "passed", + "duration": 4.498000000000502, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes ineligible or previously attempted cleanup: {\"coordinator\":{\"recoveryHistory\":[{\"kind\":\"native_cleanup_source_archive\",\"phase\":\"prepared\"},{\"kind\":\"native_cleanup_runner_epoch\",\"phase\":\"spawned\",\"epoch\":1,\"pid\":88736}]}}", + "status": "passed", + "duration": 4.252375000000029, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery discovers a single legacy failed attempt only for independent physical proof", + "status": "passed", + "duration": 5.8793329999998605, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery discovers prelaunch source archival at prepared without changing authority", + "status": "passed", + "duration": 6.184290999999575, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery discovers prelaunch source archival at archived without changing authority", + "status": "passed", + "duration": 5.088708000000224, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery fences actual scoped admission until every archived owner has its matching latest settlement", + "status": "passed", + "duration": 20.06433300000026, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes legacy discovery with new epoch", + "status": "passed", + "duration": 4.385250000000269, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes legacy discovery with third attempt", + "status": "passed", + "duration": 5.348582999999962, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes legacy discovery with reordered phases", + "status": "passed", + "duration": 4.219833000000108, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes legacy discovery with different request", + "status": "passed", + "duration": 4.3295829999997295, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes legacy discovery with unversioned entry", + "status": "passed", + "duration": 4.285042000000431, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes legacy discovery with settled attempt", + "status": "passed", + "duration": 4.547708000000057, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes legacy discovery with unknown failure", + "status": "passed", + "duration": 3.844500000000153, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery excludes legacy discovery with missing source", + "status": "passed", + "duration": 3.9118329999992056, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery joins overlap and advances beyond a permanently ineligible first candidate", + "status": "passed", + "duration": 9.16662499999984, + "failureMessages": [] + }, + { + "name": "retained native cleanup discovery isolates one failure and resets its joined owner for the next bounded sweep", + "status": "passed", + "duration": 9.397500000000036, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/src/services/native-runtime/native-safe-replacement.test.ts", + "pattern": ".", + "status": "pass", + "assertions": [ + { + "name": "durable replacement and control recovery preserves saved work and a queued request at a controlled recovery boundary (verified)", + "status": "passed", + "duration": 348.9292089999999, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery preserves saved work and a queued request at a controlled recovery boundary (unproven)", + "status": "passed", + "duration": 343.0604580000004, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery preserves saved work and a queued request at a controlled recovery boundary (unknown_action)", + "status": "passed", + "duration": 379.7231249999995, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery requires stopped-session proof through commit (unproven)", + "status": "passed", + "duration": 328.33587499999976, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery requires stopped-session proof through commit (changed)", + "status": "passed", + "duration": 321.0245419999992, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery requires stopped-session proof through commit (verified)", + "status": "passed", + "duration": 281.0036250000003, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery honors blocking intent before safe replacement (missing_receipt)", + "status": "passed", + "duration": 319.10449999999946, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery honors blocking intent before safe replacement (other_run)", + "status": "passed", + "duration": 265.3092919999999, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery honors blocking intent before safe replacement (other_cause)", + "status": "passed", + "duration": 293.4490419999993, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery honors blocking intent before safe replacement (manual_reblock)", + "status": "passed", + "duration": 358.41404200000034, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery honors blocking intent before safe replacement (dependency_edit)", + "status": "passed", + "duration": 318.23212499999954, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery honors blocking intent before safe replacement (queued_comment)", + "status": "passed", + "duration": 287.69187500000044, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery automatically closes an exhausted incident once, preserves ownership, and records no replay", + "status": "passed", + "duration": 292.8360419999999, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery does not let a full batch awaiting replacement starve an eligible disposition", + "status": "passed", + "duration": 332.16854200000034, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery rolls back a crashed automatic disposition and completes it on the next sweep", + "status": "passed", + "duration": 299.58145799999966, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery does not let the automatic fallback preempt a safe replacement", + "status": "passed", + "duration": 288.1018330000006, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery closes stale recovery after closed without changing task state or granting replay", + "status": "passed", + "duration": 324.06795800000145, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery closes stale recovery after reassigned without changing task state or granting replay", + "status": "passed", + "duration": 284.67595900000015, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery closes stale recovery after new_execution without changing task state or granting replay", + "status": "passed", + "duration": 297.31487500000003, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery cancels a durable native retry even when its previous provider is already failed", + "status": "passed", + "duration": 346.7592089999998, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery atomically terminalizes unsupported legacy recovery and preserves its owner", + "status": "passed", + "duration": 287.1080839999995, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery does not reopen a reconciled legacy run while continuation is pending", + "status": "passed", + "duration": 330.6713750000017, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery surfaces a failed current reviewer without transferring the original assignment", + "status": "passed", + "duration": 293.9130409999998, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery does not turn an already reconciled continuation into a recovery assignment", + "status": "passed", + "duration": 334.2154580000006, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery keeps an unclassified transport terminal operator-owned", + "status": "passed", + "duration": 330.764165999999, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery does not reuse consumed wake authority after a later done transition", + "status": "passed", + "duration": 332.5149999999994, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery does not reuse consumed wake authority after a later cancelled transition", + "status": "passed", + "duration": 345.3962080000001, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery does not reuse consumed wake authority after a later review transition", + "status": "passed", + "duration": 380.7298750000009, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery persists exactly one linked successor under competing sweepers and restarts", + "status": "passed", + "duration": 369.94866700000057, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery retries status publication after a crash without dispatching provider work", + "status": "passed", + "duration": 335.0116249999992, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery routes status delivery only through a proven same-company task: native", + "status": "passed", + "duration": 311.10158299999966, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery routes status delivery only through a proven same-company task: legacy", + "status": "passed", + "duration": 313.66179100000045, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery routes status delivery only through a proven same-company task: native_precedes_context", + "status": "passed", + "duration": 325.3883330000008, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery routes status delivery only through a proven same-company task: missing", + "status": "passed", + "duration": 394.994834000001, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery routes status delivery only through a proven same-company task: nonexistent", + "status": "passed", + "duration": 342.65450000000055, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery routes status delivery only through a proven same-company task: deleted", + "status": "passed", + "duration": 349.92633399999977, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery routes status delivery only through a proven same-company task: foreign", + "status": "passed", + "duration": 313.5343749999993, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery routes status delivery only through a proven same-company task: malformed", + "status": "passed", + "duration": 360.98120799999924, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery routes status delivery only through a proven same-company task: object", + "status": "passed", + "duration": 368.4010420000013, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery routes status delivery only through a proven same-company task: array", + "status": "passed", + "duration": 278.05754199999865, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery routes status delivery only through a proven same-company task: number", + "status": "passed", + "duration": 302.6681659999995, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery routes status delivery only through a proven same-company task: json_null", + "status": "passed", + "duration": 276.262917, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery routes status delivery only through a proven same-company task: native_foreign", + "status": "passed", + "duration": 321.8732920000002, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery routes status delivery only through a proven same-company task: native_nonexistent", + "status": "passed", + "duration": 322.50779200000034, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery never resets an exhausted incident by assigning another run id", + "status": "passed", + "duration": 296.76745799999844, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery recovers a crash at successor_inserted without duplicate successors", + "status": "passed", + "duration": 434.17091699999946, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery recovers a crash at lineage_committed without duplicate successors", + "status": "passed", + "duration": 330.2552079999987, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery does not replay a provider-native command with unknown effects (PRP envelope: false)", + "status": "passed", + "duration": 385.45416599999953, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery does not replay a provider-native command with unknown effects (PRP envelope: true)", + "status": "passed", + "duration": 332.0750000000007, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery surfaces a reviewer's abandoned control transition for the operator", + "status": "passed", + "duration": 331.226375000002, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery fences a stranded finalization and surfaces one operator action after its deadline", + "status": "passed", + "duration": 309.28466599999956, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery bounds legacy finalization without adding a deadline to healthy provider execution", + "status": "passed", + "duration": 402.99954100000105, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery does not release another run's checkout or replace a reassigned task", + "status": "passed", + "duration": 386.37591699999757, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery requires explicit reconciled outcomes and rejects a still-running provider", + "status": "passed", + "duration": 356.40399999999863, + "failureMessages": [] + }, + { + "name": "durable replacement and control recovery retains a reconciliation delivery across dispatch failure and invalidates stale ownership", + "status": "passed", + "duration": 361.29979099999764, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/src/__tests__/question-response-delivery.test.ts", + "pattern": "concurrent|interrupted|stale|receipt", + "status": "pass", + "assertions": [ + { + "name": "question response delivery reuses the winning wake when a concurrent insert hits the idempotency fence", + "status": "passed", + "duration": 47.04424999999992, + "failureMessages": [] + }, + { + "name": "question response delivery reuses a durable wake receipt instead of issuing a duplicate continuation", + "status": "passed", + "duration": 35.816916000000674, + "failureMessages": [] + }, + { + "name": "question response delivery recovers a completed wake when receipt finalization was interrupted", + "status": "passed", + "duration": 54.44816600000013, + "failureMessages": [] + }, + { + "name": "question response delivery fences a stale worker after a newer claim generation takes ownership", + "status": "passed", + "duration": 96.27170899999965, + "failureMessages": [] + } + ] + } + ], + "live": [ + { + "id": "lifecycle-baseline:lifecycle-dependency-restart-neutral", + "status": "not_run" + }, + { + "id": "lifecycle-baseline:lifecycle-dependency-restart-challenge", + "status": "not_run" + }, + { + "id": "lifecycle-baseline:tool-review-restart", + "status": "not_run" + }, + { + "id": "everyday-workflows:recover-controller", + "status": "not_run" + } + ] + }, + { + "id": "LCA-13", + "name": "Owned review", + "expected": "Concrete reviewer; reviewer outcome drives next transition", + "coverage": [ + { + "lane": "unit", + "file": "server/src/services/native-runtime/status-arbiter.test.ts", + "pattern": "review", + "status": "pass", + "assertions": [ + { + "name": "native status authority a reviewer finishes its decision without completing rejected or still-reviewed work", + "status": "passed", + "duration": 1.6785840000000007, + "failureMessages": [] + }, + { + "name": "native status authority routes an unfinished reviewer action to bounded recovery instead of retrying the worker task", + "status": "passed", + "duration": 0.6360410000000059, + "failureMessages": [] + }, + { + "name": "native status authority creates explicit liveness paths for review, continuation, cancellation, and governance", + "status": "passed", + "duration": 0.7229580000000055, + "failureMessages": [] + }, + { + "name": "native status authority does not create a duplicate review after this run's review was already accepted", + "status": "passed", + "duration": 0.09091699999999037, + "failureMessages": [] + }, + { + "name": "native status authority does not create a duplicate review after this run's planning confirmation was already accepted", + "status": "passed", + "duration": 0.04887499999998113, + "failureMessages": [] + }, + { + "name": "native status authority routes each explicit request to its own reviewer", + "status": "passed", + "duration": 0.06879200000000196, + "failureMessages": [] + } + ] + }, + { + "lane": "integration", + "file": "server/src/__tests__/native-status-arbiter-corpus.test.ts", + "pattern": "ATT|review|corpus", + "status": "pass", + "assertions": [ + { + "name": "P6-31 Section 18.13 executable status-authority corpus executes all 53 fixtures in their production consumers and joins all 70 matrix rows", + "status": "passed", + "duration": 1014.0652500000001, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus fails independently when any asserted field category is mutated", + "status": "passed", + "duration": 799.9739170000003, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus fails mapped fixtures when live entrypoints or owning actions are removed despite matching policy labels", + "status": "passed", + "duration": 71.5927499999998, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus retires a proven automatic review and applies the current successful completion exactly once", + "status": "passed", + "duration": 63.43358399999943, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus completes a new merge run after an old CI review and bounds repeated incomplete results", + "status": "passed", + "duration": 69.04520800000046, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus rejects wrong, missing, and duplicate criterion IDs before accepting completion", + "status": "passed", + "duration": 13.40179199999966, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus keeps genuine approval actionable in the finish response and in finalization", + "status": "passed", + "duration": 64.3466670000007, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus preserves answered cards, explicit attention, stronger authority, and later task edits", + "status": "passed", + "duration": 226.9860410000001, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus rejects an empty needs_review report with actionable feedback without inventing an approval", + "status": "passed", + "duration": 28.591625000000022, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus withdraws obsolete policy reviews, restores the prior status, and is idempotent", + "status": "passed", + "duration": 51.68000000000029, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus leaves an already accepted review untouched", + "status": "passed", + "duration": 18.639584000000468, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus leaves an already rejected review untouched", + "status": "passed", + "duration": 18.771999999999935, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus preserves real completion reviews and limits cleanup to the requested runs", + "status": "passed", + "duration": 35.132292000000234, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus dismisses the obsolete card without undoing a later blocked status", + "status": "passed", + "duration": 27.772875000000568, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus dismisses the obsolete card without undoing a later done status", + "status": "passed", + "duration": 27.845874999999978, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus dismisses the obsolete card without undoing a later cancelled status", + "status": "passed", + "duration": 26.090041999999812, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus does not restore status after a newer decision or a status change back to review", + "status": "passed", + "duration": 57.67475000000013, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus keeps review status when a separate request still needs a response", + "status": "passed", + "duration": 22.47112500000003, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus isolates a failed cleanup candidate and retries it on the next pass", + "status": "passed", + "duration": 61.213292000000365, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus keeps committed cleanup and continues publication after a live event fails", + "status": "passed", + "duration": 50.05454100000043, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus continues native finalization when the obsolete-card lookup fails", + "status": "passed", + "duration": 27.42479099999946, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus preserves a later authoritative status during reconciliation", + "status": "passed", + "duration": 0.10970800000086456, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus supersedes the exact committed coordinator decision and sequences preserve decisions independently of issue status versions", + "status": "passed", + "duration": 12.393000000000029, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus keeps assessment lineage run-local while superseding an issue decision from another run", + "status": "passed", + "duration": 14.278249999999389, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus preserves an intermediate same-run assessment when the issue decision points to an older ancestor", + "status": "passed", + "duration": 10.681083999999828, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus ignores historical committed finalizations superseded by a newer authoritative decision", + "status": "passed", + "duration": 11.675792000000001, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus records run-scoped superseding assessment lineage with none predecessor", + "status": "passed", + "duration": 9.152500000000146, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus records run-scoped superseding assessment lineage with same_run predecessor", + "status": "passed", + "duration": 11.112625000000662, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus records run-scoped superseding assessment lineage with other_run predecessor", + "status": "passed", + "duration": 16.192207999999482, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus binds a tools-refresh continuation to its existing durable wake without a duplicate", + "status": "passed", + "duration": 18.915125000000444, + "failureMessages": [] + }, + { + "name": "P6-31 Section 18.13 executable status-authority corpus fails the transaction closed for an unknown status effect", + "status": "passed", + "duration": 7.388249999999971, + "failureMessages": [] + } + ] + } + ], + "live": [ + { + "id": "runner-evals:request-task-review", + "status": "not_run" + } + ] + } + ] +}