Repository navigation
Description
[P1] Owned Agent waits: complete the public multi-turn lifecycle and durable recovery route
Scope and reviewed baseline
Remaining work from #296 (R20). Review date: 29 September 2026.
Branch: wavect/v070, PR #314, source commit 1ae35afe83f62f405b979f57ac90772cfec9daca.
Classification: Remaining public runtime implementation.
This ticket replaces only the unresolved portion of its predecessor. Migration of the old ticket is not a claim that its whole original scope was completed. A missing hosted CI receipt is not a blocker when the required implementation and substantive local execution are complete.
Already delivered: do not rebuild
Public Copy/model-wait and predecessor journal/frame profiles, aggregate carriers and numerous private owned-frame/Agent-stage building blocks are present. The branch already contains substantial SourceLive v8 causal-store and owned-stage work; it is not a request for another parallel journal design.
Remaining gap
The current owned-wait contract explicitly says implementation is in progress and the first-turn owned State/observe/model/proposal/authorize slice does not close initialize/reduce/Step/multiple-turn public execution.
Work to finish
- Finish the public owned Agent lifecycle across initialization, observation, model wait, authorization, reduction/Step and multiple turns, using the existing checked source association and retained actual State owner.
- Connect the required durable restart/recovery entry points to the single authenticated SourceLive v8 causal store, preserving acknowledged reservations, settlement uncertainty, same-owner transfer and fail-closed registered-lease checks.
- Complete owning tests for live execution, multi-turn resume, interrupted append/dispatch/cleanup, cancellation, refusal and no-redispatch. Cover each claimed executor without relabelling private/reference-only slices as public support.
- Preserve predecessor wire formats and already completed Copy/aggregate/frame behavior. Resolve the remaining implementation and test gaps against the current owned-wait contract rather than restarting its design.
Acceptance
- An actual public entry point runs a nontrivial multi-turn owned Agent, not an identity-only helper or a fixture-only facade.
- A real process restart resumes the authenticated history without duplicate dispatch, uncharged work, restored authority from inert data, double ownership or duplicate cleanup.
- Required local full-path and hostile tests pass; unsupported profiles refuse before effects. Hosted evidence alone is not an acceptance condition.
Boundaries
Use the existing mechanisms and frozen profiles. Do not silently weaken resource, source-authority, ownership, oracle or refusal requirements. This ticket does not authorize paid model/training calls, credentials, external deployment, signing, publication or a support-policy change. Obtain those authorities only where the remaining work actually needs them. Do not reopen excluded deferred work.
Evidence and entry points
- Current combined SourceLive v8 contract and explicit incomplete public lifecycle
- Already integrated private owned-Agent increments
Review basis: source/document inspection plus retained repository/issue test reports, not a new execution of the Semaprax test suite. Evidence remains bound to the revision and host on which it was actually produced. Confidence: High.
Activity
wsdt commentedon Sep 30, 2026
Progress on wavect/v070 at 4449d60: added a private second-turn Started→Decision physical cleanup/ACK ownership join and boxed cumulative adapter carriers after a stack overflow. The revised lib test binary compiled successfully. The six-case selector was interrupted after 12 minutes without a completed test; the exact one-fixture cancellation refusal was interrupted after 9 minutes without a completed test. This is unverified WIP. Outcome/Reduce, public multi-turn execution, restart recovery, and passing owning tests remain open.
wsdt commentedon Sep 30, 2026
Progress on pushed wavect/v080 head 2addeaf: immutable owned-wait capacity maxima are now cached under exact checked-binding identity. The focused reuse/crossed-proof regression passed 1/1 locally; prior future-template and effect-room cache selectors passed 3/3 each. The continued public multi-turn lifecycle and durable recovery route remain open, and no end-to-end speedup is claimed.
wsdt commentedon Sep 30, 2026
Progress on
wavect/v080at61030fec3: first-turn owned-wait v8 State admission now authenticates and folds the held journal before allowing a fresh owner. A real file-store regression starts the actual State→Observe→Prepared path, drops the held journal, re-acquires the exact registered store, and confirms fresh-entry refusal (Order) with exact bytes and sequence preserved. The focused selector passed 1/1 locally. This closes a duplicate-initialization edge; it does not claim public multi-turn execution or resumable owned-State recovery. #330 remains open for those full paths and their hostile tests.wsdt commentedon Sep 30, 2026
Progress on wavect/v080 (1d87852): a real owned-wait v8 Step::Continue holder now crosses the State and next-turn Observe journal acknowledgements while retaining its unique live owner across failure paths. Focused real-owner selector passed 1/1 locally. This remains a crate-private continuation boundary; later turn stages and public restart recovery are still open.
wsdt commentedon Sep 30, 2026
Progress on wavect/v080 (4f5981c): a real next-turn Start owner now enters the source evaluator exactly once, checkpoints, and persists the Prepared row while retaining the unique live owner through failure paths. Focused selector passed 1/1 locally. Model dispatch, later-turn completion, and public restart recovery remain open.
wsdt commentedon Sep 30, 2026
Progress on wavect/v080 (a0bfffc): a real next-turn Prepared owner now selects one checked Model intent and persists the Model ACK. Focused selector passed 1/1, proving no SDK provider construction or source resume at this boundary. Dispatch and public multi-turn recovery remain open.
wsdt commentedon Sep 30, 2026
Progress on wavect/v080 (bceccbd): a real next-turn Model request now dispatches once and durably records its Settled response before Usage/Resume. The focused selector passed 1/1 with exactly one provider start, one Settled ACK, and no source resume. Public multi-turn completion and recovery remain open.
wsdt commentedon Sep 30, 2026
Progress on wavect/v080 (fc93ae9): the real next-turn Model holder now crosses durable Usage and Resume-reservation ACKs before exactly one resumed-program entry. Focused selector passed 1/1. Completed-row publication, authorization, and public multi-turn recovery remain open.
wsdt commentedon Sep 30, 2026
Progress on wavect/v080 (43fb13c): the real next-turn resumed owner now durably ACKs its Completed row. Focused full-chain selector passed 1/1 locally, including one provider start and one source resume. Authorization, later turns, and public recovery remain open.
wsdt commentedon Sep 30, 2026
Progress on wavect/v080 (38e9345): the real next-turn Completed owner now crosses all four durable authorization ACKs, including transfer at ACK 2 and guarded stage entry at ACK 4. Focused real-chain selector passed 1/1 locally. Effect execution, later turns and public recovery remain open.
wsdt commentedon Sep 30, 2026
Pushed e0f7d28 on wavect/v080: the real next-turn owned chain now persists the fifth authorization ACK required for effect admission, then two effect ACKs through promotion. Focused real-chain selector passed 1/1 locally. Actual effect dispatch, public entry point, process restart and full acceptance remain open.
wsdt commentedon Sep 30, 2026
Pushed 877019b on wavect/v080. The real next-turn owned chain now performs guarded effect preparation and persists its actual Intent ACK after the five authorization and two effect ACKs. Focused selector passed 1/1 normally using a test-owned 16 MiB stack; no effect host dispatch is reachable from this helper. Actual effect dispatch, public multi-turn entry and restart recovery remain open.
wsdt commentedon Oct 1, 2026
Pushed 615bfa2 on wavect/v080: the actual next-turn owned effect now takes an explicit host handler, dispatches once, and persists ordinary settlement plus settlement-record ACKs. The focused real-chain selector passed 1/1 locally with one handler call, two rows, retained owner identity and no receipt-derived authority. Public entry, process restart recovery, later cleanup and full acceptance remain open.
wsdt commentedon Oct 1, 2026
wavect/v080now includes continued owned-effect Decision cleanup through the durable Started ACK, exactly one explicit physical cleanup observation, and the sticky Settled ACK (100acf9a9). The real next-turn model/effect/cleanup chain selector passed locally 1/1 in 305.34s, preserving one model dispatch and one effect-host dispatch while adding the two cleanup rows. Failure carriers retain the reached owner; a post-release failure has no route to run the observer again.This is still a private continued path. Continued Reduce/Step, terminal publication, public multi-turn entry, and process-restart recovery remain unimplemented; #330 stays open.
wsdt commentedon Oct 1, 2026
wavect/v080now includes a separate continued turn-1 Reduce reservation path (72e2f019d). It appends exactly one durableStageReservationafter the continued Decision cleanup Settled ACK and advances the held owner fromCleanupSettledtoSpentReduce; it preserves the original turn-0 path. The real next-turn model/effect/cleanup/Reduce selector passed locally 1/1 in 322.80s, asserting one added ACK and no extra model/effect dispatch or physical cleanup observation.The path is still private and stops before continued Step. Terminal publication, public multi-turn entry, and process-restart recovery remain open, so #330 is not ready to close.
11 remaining items
wsdt commentedon Oct 1, 2026
Pushed
wavect/v080commit9ede19127: the source-owned-wait v8 journal now exposes authenticated read-only terminal evidence after a complete terminal row. The route reopens the real store with retained registration and an explicit host grant, validates the full prefix, and returns copied status/evidence/carrier without reconstructing a physical owner or dispatching work. Transition-only and poisoned prewrite prefixes refuse terminal projection. The owning source spec and changelog were updated.Focused local real-chain selectors, serially from the compiled source snapshot:
owned_continue_driver_dispatches_next_turn_model_once_and_records_settlement: 1/1 passed (342.91s), including close/reopen of the actual journal and terminal read.owned_continued_terminal_prewrite_fault_retains_mapped_owner_and_poison: 1/1 passed (349.95s), including refusal of false terminal evidence.#330 remains open. A continued Step that chooses another Continue still needs its next-turn owner/ACK handoff; public Report delivery and full restart recovery remain separate.
wsdt commentedon Oct 1, 2026
Progress on
wavect/v080at3cc3ecf0e: a separate later-Continue owner carries the actual mapped turn-1 Step into the turn-2 State ACK and exact Observe reservation ACK, then enters the existing physical Observe engine. The owning three-turn success selector passed 1/1 in 338.40s; the turn-2 State-prewrite refusal selector passed 1/1 in 331.76s, retaining the mapped owner and unchanged persisted bytes. The test fixture now admits three effective turns by matching its deployed tool-call limit; the production iteration guard is unchanged. Keeping #330 open for later-turn downstream phases, public entry/Report delivery, and physical owner restoration after restart.wsdt commentedon Oct 1, 2026
Progress on
wavect/v080at8ee9cfb15: after the authenticated CompleteTerminalSnapshotACK, a private one-use claim now moves the actual physical Report into a store-backed owner. Claim checks the current terminal witness, turn, carrier bytes and digest against the live mapped Step; a borrowed delivery projection rechecks the terminal carrier. The real-chain owning success selector passed 1/1 in 332.74s, and terminal-prewrite refusal passed 1/1 in 329.85s, preserving the unclaimed mapped owner and poisoned journal boundary. This is private ownership work; public Report delivery, later-turn downstream/public entry, and physical owner restoration after restart remain open.wsdt commentedon Oct 1, 2026
Pushed 50efb1e on wavect/v080: the actual turn-two physical Observe owner now appends OwnedObserveSettled and TurnObserved through the fixed writer and cumulative hold registry. Focused local selectors passed 1/1 each: owned_continued_step_hands_real_state_to_turn_two_and_acks_observe (339.47s) and owned_continued_step_turn_two_settlement_prewrite_refusal_retains_observed_owner (335.69s). A rejected append retains the observed owner and exact reservation under quarantine. This is a private later-turn increment; public multi-turn entry, later Start/Model/Effect/Reduce, and durable physical-owner restoration remain open.
wsdt commentedon Oct 1, 2026
Pushed 1c201ba on wavect/v080. The actual later-turn Observe owner now carries physical State/Copy observation and both ACKs into turn-two OwnedWaitCreated and Start reservation via the fixed candidate/pending writer and cumulative hold registry. Focused local selectors passed 1/1 each: owned_continued_step_hands_real_state_to_turn_two_and_acks_observe (396.19s) and owned_continued_step_turn_two_created_prewrite_refusal_retains_later_owner (344.54s). This remains private; later physical source entry, Model/Effect/Reduce/Step, public entry and restart owner restoration are still open.
wsdt commentedon Oct 1, 2026
Pushed 3e832bb on wavect/v080, then merged origin/main at aaeacc9. The retained two-ACK later Start owner now enters the actual physical source wait using the same State/Copy observation and source helper. Focused success selector passed locally 1/1 (357.30s), and Start-prewrite refusal passed 1/1 (352.77s), proving no physical source entry on rejected reservation. After merging main, the owning success selector passed again 1/1 (341.98s). This remains a private increment; later checkpoint/Model/Effect/Reduce/Step, public entry and restart physical-owner restoration remain open.
wsdt commentedon Oct 1, 2026
Pushed b14a79d on wavect/v080. The turn-two physical Parked owner now selects its canonical checkpoint and appends the exact OwnedWaitPrepared ACK through the fixed ContinuedPrepared writer and cumulative hold, retaining the physical owner on prewrite refusal. Focused local selectors passed 1/1 each: owned_continued_step_hands_real_state_to_turn_two_and_acks_observe (358.78s) and owned_continued_step_turn_two_prepared_prewrite_refusal_retains_physical_park (357.72s). This is still a private owner join; later Model/Effect/Reduce/Step, public entry, and restart physical-owner restoration remain open.
wsdt commentedon Oct 1, 2026
v080 progress at 82064d8: the retained physical turn-two Prepared owner now validates its actual State, request, observation and prior-effect ordinal, builds the checked Model request origin, and appends the exact AttemptIntent ACK through the existing fixed writer/cumulative hold before SDK dispatch. Focused three-turn success passed locally (1/1, 380.29s); Model Intent prewrite-refusal retained the physical Parked owner (1/1, 366.26s). Later Model dispatch/Resume, Effect/Reduce/Step, public multi-turn entry, Report delivery and restart owner restoration remain; #330 stays open.
wsdt commentedon Oct 1, 2026
v080 progress at 93c357c: the retained turn-two physical owner now dispatches its checked Model request through the SDK guard, selects the actual AttemptSettled/AttemptFailed row, and appends the exact settlement ACK via the fixed writer/cumulative hold. The focused three-turn success selector passed 1/1 (892.47s); the settlement-prewrite refusal retained the dispatched owner, 1/1 (827.57s). Usage/Resume, later Effect/Reduce/Step, public multi-turn entry and restart restoration remain; #330 stays open.
wsdt commentedon Oct 1, 2026
v080 increment pushed at 1cd6494: the retained physical turn-two owner now ACKs the SDK-reported Model Usage, binds the decoded Proposal, and ACKs one full-fuel Resume reservation before physical Resume. Local owning success and both distinct Usage/Resume prewrite-refusal selectors passed (1/1 each; 445.96s, 411.87s, 422.52s). Physical Resume/Completed, later Effect/Reduce/Step, public multi-turn entry and restart recovery remain open; #330 stays open.
wsdt commentedon Oct 1, 2026
v080 physical turn-two increment pushed at fa52d17. A closed First/Later Resume permit lets the retained later Parked owner enter the existing physical Resume engine only after its exact full-fuel reservation ACK.
OwnedWaitCompletedis selected only from the actual checked Resumed State and appended through the fixed writer. Focused owning success passed 1/1 (440.64s); fault-15 Completed-prewrite refusal passed 1/1 (409.27s), retaining the resumed owner. Later Effect/Reduce/Step, public multi-turn entry/report, and restart restoration remain open; #330 stays open.wsdt commentedon Oct 1, 2026
Pushed the private turn-two physical Completed-owner join in
4de6e2e3d. It consumes the actual later Resume/Completed holder and exact model ACK history, validates cumulative accounting, retains the later Step's physical hold, and feeds the existing authorization/effect/Reduce/staged-Step path. The focused full-path success case passed locally 1/1 (817.26 s). The foreign-wait provenance refusal passed 1/1 (511.94 s) after the shared harness counters were extended for its new fault selector. A read-only semantic review found no actionable defect;git diff --checkand the graph refresh passed.The authorization-prewrite refusal case is authored but remains unexecuted. Later terminal/Report closure, failed-Observe cleanup, public multi-turn entry, and restart owner restoration also remain. This is a private partial gate, so #330 stays open.
wsdt commentedon Oct 1, 2026
Private turn-two Complete closure now reaches the original Report through six fixed cleanup, transfer, transition and terminal ACKs on wavect/v080 at 29065a0. The focused mapping regression passed 1/1; physical Complete→Report success passed 1/1 (811.35s) and terminal prewrite refusal retained the Report without delivery evidence 1/1 (808.97s), locally on 2 October 2026. Receipt-prewrite and authorization-prewrite cases remain unrun; later failed-Observe cleanup, public multi-turn entry, and restart owner restoration remain open, so #330 is not closed.
wsdt commentedon Oct 2, 2026
Implemented on pushed
wavect/v080through56db788472c8cc64972938a23694882bc86cc8e5.The checked public source-interpreter route now runs a nontrivial owned Agent through Initialize, Observe, Model wait, Authorize, Reduce/Step across two turns, and terminal Report using the actual retained State owner. Prepared and TransferCompleted recovery use the authenticated SourceLive v8 history; failed/uncertain transfers retain custody and refuse redispatch. The implementation also covers explicit cancellation, Refused cleanup, later-target settlement, and interruption at append/dispatch/cleanup boundaries. Unsupported native/C11, Core Wasm, and scalar artifact owned-wait routes refuse before effects.
Focused local evidence on the pushed head: Linux arm64 Apple Container, Rust 1.97.1, offline locked build, 2 MiB stack, exact public prepared process-restart plus hostile-tail selector 1 passed / 0 failed (517.69s). It verified independent preparer/resumer processes, completed the two-turn Report path, and refused fresh/generation/hostile histories. macOS arm64 focused gates passed for fresh and resumed public paths, TransferCompleted process restart, no-transfer refusal, State/Decision ACK faults, Refused settlement, cancellation and shutdown ACK/Stop faults, later-target settlement, owned-wait backend refusals, and narrow predecessor compatibility. The Linux log, exact head, environment, and bounded acceptance audit are retained locally at
/Users/kevin/Documents/ChatGPT/semaprax-evidence/issue330-v080/.This closes the ticket's admitted public source-interpreter and durable-recovery scope. It does not claim native/Wasm owned-wait execution, deferred Report/general destination-phase restoration, hosted CI, or the full local quality profile (waived for this closure).