# Reusing the approved continuation interfaces

The original stopped screen and its interim report remain immutable evidence. A later explicit approval added thirteen recovery attempts and twelve scripted social-note attempts in this investigation. That authority belongs only to the frozen continuation manifest; these interfaces do not authorize arbitrary requests or reuse of consumed dispatches. The earlier `runner-reuse.md` describes the historical closure before this approval.

## Historical stop and later explicit amendment

Collection stopped after nine continuation attempts: eight valid replies and one invalid Markdown-fenced final JSON. The historical stopped evidence is `continuation-3/state.json` with `phase_stopped`; its semantic hash is `47b968a7e5e9d418261b91128913959350762498117ff2c265db5eb37c593a37`. That stopped phase alone authorizes no later request. A later explicit researcher approval is separately bound by `manifests/format-resume-v1.json`; it preserves all stopped blocks and permits only the sixteen unattempted frozen requests under the amended stopping rule. This authorization subsequently completed the four remaining screen questions. Collection is now closed. The latest verified state is `continuation-7/state.json`, semantic hash `d3c1d1ea56caa5ca0af665bedda41b3ae6e95c354b95ae5f00ad065c08431734`: all32 screen questions classified (31valid,1invalid), social10attempted (9valid,1truncated) and2unsent. All12allocations are used. The latest incomplete-response stop remains active. No consumed ticket or existing authorization permits a further send; future collection requires separate explicit authority.

## Minimal extension actually used

- `src/continuation-manifest.mjs` builds and verifies the approved phase manifests. `manifests/continuation-v2.json` freezes all twenty-five distinct attempt IDs, canonical question IDs, exact messages, oracle actions, order, phase limits and predecessor hash. The recovery and social phase files are separately inspectable. Earlier unversioned manifests are pre-execution drafts, never dispatched.
- `src/session-controller.mjs` keeps the original `validateState` and its stopped/unresolved guard. `validateContinuationState` validates a distinct, explicitly approved phase linked to the unchanged old state. Existing `reserveBlock`, `claimSubmission`, `beginBlock`, `finishBlock` and `validateTicket` bind the new phase, manifest, predecessor, four-request boundary and single-use dispatch.
- `src/prepare-continuation-dispatch.mjs` consumes the latest completed state plus its separate authority journal, prepares an exclusive ticket and claims it before one submission. A saved receipt records that submission. Never roll back both the state and coordinator, rerun a claimed ticket or infer provider idempotency.
- `src/run-continuation.mjs` calls the existing exported `send` function and existing wire builder, strict action scorer and hash-chained journal. It saves new state atomically after every journal append. It starts no request unless the explicit allocation deadline allows the full six-minute request window plus thirty seconds for saving. Pause retains in-flight evidence and prevents the next send; a refusal, incomplete response, protocol/provider/transport failure or applicable limit stops collection; the separately bound amendment below permits completed strict-format failures to remain invalid without halting.
- The existing sender now records request-start, allowlisted response identifiers at header arrival, body-complete and timeout timestamps. Credential and cookie headers are excluded. A focused synthetic body-hang test establishes that an available header identifier survives a timeout; it does not guarantee that the provider supplies one on every request.
- `src/analyze-continuation.mjs` audits saved payloads against exact frozen messages, re-runs the unchanged parser/scorer, preserves original attempt missingness, selects canonical-question answers, and reports social contrasts separately from the original screen. It sends no requests.

## Loading and interpretation

For a later block, use the latest durable `continuation-N/state.json` and `authority/` from the same completed handoff. The state includes the old immutable `legacy` object and the frozen manifest. `summary.json`, `accounting.json`, `execution.json`, and the original per-block `run/` journal provide compact and raw evidence. The handoff archive is a convenience, not a replacement for the per-request durable records.

The original timeout remains locally unresolved and strongly researcher-associated with a provider-reported cancellation; its cost attribution is not an exact local identifier join. Recovery uses a new attempt ID and does not change that record. The earlier HTTP429 cost remains unknown. Reservations are carried forward without recycling. Canonical-question coverage and attempt-level missingness are different quantities, and the original three-minute versus continuation six-minute retention windows must be reported when combining answers.

A future manifest needs fresh explicit authority, unique attempt IDs, exact prompts/order, checked oracle and scoring, phase-specific budgets, stopping rules, immutable predecessor provenance and a new single-use dispatch. Do not repurpose the unexecuted cost-candidate files or consumed continuation tickets. Neither this implementation nor returned explanations establish a model's internal objective.

## Format-failure resume extension
`src/format-resume.mjs` validates the exact stopped-state hash and freezes remaining IDs/payload hashes without changing the old continuation manifest. A new append-only authority journal starts with dispatch_resume_authorized; old authority and stopped journals are not edited. Only validated completed invalid_final_action results may continue, remaining invalid/action=null; refusals, incomplete, protocol/provider/transport failures, pause and limits still stop. All32 screen questions must be attempted/classified before social, rather than all32 valid. The current coordinator, unique IDs and unrecycled reservations still bind every dispatch. A later rollback of both state and coordinator remains unsafe, and provider idempotency is not claimed.

## Saved-text post-hoc diagnostic
`src/prepare-explanation-audit.py` constructs a source-hashed action-blinded corpus from existing evidence; it does not call a model. `src/aggregate-explanation-audit.py` validates adjudicated labels and exact quote offsets, then joins unchanged action scores. The frozen rubric and calibration anchors govern five stated checks. Read-only platform-harness annotations and parent adjudication are not external judge-provider calls or direct internal-objective measurements. The pilot is kept reference-only. Do not rebuild these exclusive output directories over preserved results.
