Publish assistant text and reasoning through the headless task query
Headless model progress is published as task files and followed through the shared client query before the provider completes. Canonical execution events and their chunk files commit atomically, so recovery cannot skip unpublished text.
Interleaved executions also render correctly: after A1, B1, A2, the materialized view retains A's first publication position and separately records its latest update. The renderer finds the earliest head changed since its consumed cursor and rewinds when that precedes its resume anchor. Live row patches equal an independently reopened view, including deferred A/B updates, both assistant channels and reverse-sorted execution IDs.
Decisions
- Derive attempt identity once from every prepared condition and mutation. Unrelated task-file writes cannot reuse a cached-conflict identity. Chunk namespaces carry execution identity; publication order uses the task-wide durable sequence, reserved then rechecked under the index lock. All preparation paths enforce immutability.
- Keep publication ordering through scoped indexes and window selection. Latest-update indexes contain one entry per retained head; querying a render cut visits changed heads rather than retained history. None of this adds a second durable clock or a new protocol.
- Keep a fenced, funded journal summary/cursor and replay only the suffix. The cache model enters the actual append/refresh guard and nested provider locks through the production synchronization shim; the negative releases that actual guard early.
- Preserve the single traced_future branch and one-box factory. The allocation oracle checks exact concrete boxed layouts rather than compiler-sensitive future-size constants.
- Encode chunk payloads directly from borrowed authenticated bytes. Exact physical/native allocation, work and complete-output assertions retain quadratic and payload-copy negative controls.
- Merge pinned main8b62eca4345a0655041ba948315fc029432b9b43 to resolve the actual PR conflict. Main #821 changed the shared bounded native JSON codec; native pins now include its encoding/buffer charges. Unmetered pins are unchanged. No resource limit or negative assertion was relaxed. The packing control remains exactly one physical allocation more when it copies the payload.
- GraphCoder stays thin. The loopback consumes the current public JSONL codec, and the live-progress test retains its native-runtime dev dependency. An explicit chunk acknowledgement releases terminal SSE; a separate watchdog covers the test. The final-output-only negative explicitly releases completion.
Validation
Head794c8c5558ef3308b2b6665cb47dc0ca96ef51f5: 114 unique focused native cases PASS (90Harness,2live-progress,16client-query,2GraphCoder task-render,4swarm task-files). The two newly pinned copy-control assertions were rebuilt at this head;112 other cases reused unchanged production/test bodies from4993b2772 per the build budget.
- Materialized live/reopen interleaving property and disabled-rewind negative: .03s. Uses real task-volume chunk preparation/commit, actual recorded session data, the public SwarmUpdate/ClientViews materialized path and reopened TaskVolume heads. Tests assert that the fixture contains TextHead files.
- Changed-head lookup: exactly2 examined items and0 allocations with64/128 unrelated and same-task historical heads; restored full scan examines exactlyN+4. .03s. Existing scoped text/query candidate pins also pass.
- Whole-append N/2N physical/native work and full-prefix negative:2.89s; projection/copy controls:.67s/.31s; independent complete-turn requests/publications:3.31s; exact one-box oracle:.24s. None and original-native IO, rejected appends, exact retries, crash cuts and native custody remain covered.
- Real Responses loopback: text/reasoning before completion .37s; final-only negative .53s. No credentials; fixture configuration/state roots only.
- Three production-lock Loom models and negatives PASS on merged07973cb40 (journal/model paths unchanged afterward): cache1.22s, complete prepared identity .13s, task-wide sequence .21s. Model build7m43s.
- Windows GNU library/tests proof: PASS4m44s (job1792287603523-2199707,exit0).
All focused cases use a nine-second watchdog. No whole-workspace gate or CI wait. Native build5m17s; the final two-control rebuild3m32s. Remaining native cases resumed directly from the built executables without recompilation.
Exact bb1 commands (Q:/lanes/bs.ps1; saved gate/runner files under Q:/lanes):
RUSTFLAGS="--cfg acyclic_harness_loom --cfg acyclic_loom" cargo test --locked -p acyclic-harness --features filesystem-local,native-execution,terminal,tui,test-support,grpc,search-http,model-checking --test journal-identity-loom --no-run --message-format=json | python3 scripts/qualify-graphcoder-artifact.py complete_prepared_identity_survives_unrelated_writer_with_negative_control cached_execution_summary_keeps_cursor_and_fence_atomic_with_negative_control task_wide_chunk_sequence_rechecks_reservations_with_negative_control
cargo test --locked -p acyclic-harness -p graphcoder --lib --bin graphcoder --test client-swarm-views --test live-progress --test client-query --features acyclic-harness/grpc,acyclic-harness/search-http --no-run --message-format=json | python3 .fix-live-839-release.py
cargo check --locked -p graphcoder -p acyclic-harness -p acyclic-test-support -p acyclic-fs --lib --tests --features acyclic-harness/grpc,acyclic-harness/search-http --target x86_64-pc-windows-gnu
Paired measurements without rebuilding:
<harness-test-artifact> tui::render::stream_text::tests::changed_head_lookup_has_exact_work_independent_of_unrelated_history --exact --nocapture
<harness-test-artifact> filesystem::execution_journal::chunk_tests::entire_append_has_exact_linear_work_with_prefix_replay_negative --exact --nocapture
<harness-test-artifact> filesystem::execution_journal::chunk_tests::chunk_projection_has_exact_linear_work_and_allocations --exact --nocapture
Known main-owned failure
The coordinator requested the same exact archive-property filter on clean origin/main before assigning ownership. Unmodified8b62eca4345a0655041ba948315fc029432b9b43 also FAILS tests::task_files::archive_projection_survives_retention_and_history_cuts at line153,cut0,left["a"],right[],.04s (job1792282215435-1489318; seed7fabdc727e6a84438a4845a210a2fc39c6c3fa1a7aed1994996f218066ffe928). Main-green owns this. The property, archive production code, retention guards and repository test selection are unchanged here. Exact comparison evidence.