Skip to content
This repository was archived by the owner on Oct 13, 2026. It is now read-only.

Keep Prism jobs advancing with T3 stream liveness (#132); 0.41.0 - #135

Merged
lukemaj merged 3 commits into
mainfrom
fix/132-prism-silent-jobs
Sep 28, 2026
Merged

lukemaj merged 3 commits into
mainfrom
fix/132-prism-silent-jobs

Conversation

@lukemaj

@lukemaj lukemaj commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Refs #132

Prism jobs keep advancing or report a state to the planner. This rebases the earlier controller, interrupt and cancellation fixes onto main cecc4b30be7adbe32f50066e6cce8d9e83ada065 (0.40.0), preserves #136's T3 waiting and #140's Chromeria launch recovery, and completes Issue #132's remaining Router liveness integration. Version: 0.41.0.

  • Poll T3's /api/prism/liveness?threadId= every second. A boolean stale is authoritative: true enters the interrupt/settle/next-route path within one poll; false never triggers Router's elapsed-silence check. The interim driver windows and their confirming snapshot remain fallback only when the decision is unavailable. Host sleep remains excluded.
  • Save the current turn's text and named text artifacts before interrupting. Carry their redacted excerpts and durable job-store paths into the planner notification and the eventual terminal report, including after subsequent retries succeed.
  • Record each stale decision's silenceMs, thresholdMs, thresholdSource, reason and staleSince; notify planner_t3_thread for every event and record delivery failures.
  • Retain the earlier status-based controller continuation, delayed-interrupt settling, and cancellation behavior for known finished turns.

Salvage copies up to 16 named regular text artifacts from the workspace or host temporary directories, up to 64 KiB each. Unsupported references, read failures and excerpt limits are explicit.

Proof

Candidate: 0ab66fb7bf52f828cc65788740c2c9fd2eff4192.

  • python3 scripts/test.py && python3 -m compileall -q runner scripts tests: 360 tests OK; compileall passed (exit 0).
  • versionctl release-check: candidate OK for v0.41.0 at the exact SHA above.
  • Regression coverage includes authoritative true/false, missing-field and unreachable-route fallback, sleep, stale predecessors behind queued messages, recovery during a fallback probe, salvage before interrupt, retained terminal evidence, ledger fields, and every-event planner posts. Liveness true/false and queued-predecessor tests were observed failing before their fixes.
  • HTTP wire tests use an isolated fake server. Chromeria Remove Terra from the policy; Codex resume uses the job's active dispatch route #62's new stale contract is exercised with fakes as requested; no live detector acceptance or installation was performed.

Independent review

Pending the dispatcher's independent review of the exact candidate above. The previous head's review is not reused.

Website/SEO impact: none; this changes runner control flow and its operational documentation, with no website or URL changes.

This remains Refs #132 while the cross-repository integration and broader Issue acceptance remain outstanding. No merge, tag, release or installation.

@lukemaj
lukemaj force-pushed the fix/132-prism-silent-jobs branch from 25c0e15 to 0ab66fb Compare September 28, 2026 18:23
@lukemaj lukemaj changed the title Prism jobs never go silent (#132); release 0.38.0 Keep Prism jobs advancing with T3 stream liveness (#132); 0.41.0 Sep 28, 2026
@lukemaj

lukemaj commented Sep 28, 2026

Copy link
Copy Markdown
Contributor Author

APPROVE — reviewed exact head 0ab66fb7bf52f828cc65788740c2c9fd2eff4192 against origin/main (cecc4b30be7adbe32f50066e6cce8d9e83ada065).

No findings.

Verified the requested paths: T3 stale: true becomes stalled on the same one-second poll; stale: false remains authoritative regardless of silence; missing/invalid stale field or an unavailable liveness endpoint uses the per-driver fallback; host sleep is subtracted from fallback silence; production watch calls carry no elapsed deadline; and interrupts poll until settled. Before interrupting, the controller saves redacted worker text and named text artifacts, persists the stale ledger fields (silenceMs, thresholdMs, thresholdSource, reason, staleSince), and notifies planner_t3_thread; salvage is included in terminal reports. Version mirrors, VERSION, and CHANGELOG.md are at 0.41.0.

I relied on the recorded candidate proof: 360 tests, compileall, versionctl release-check, and green CI run 36464857761. I did not rerun it.

@lukemaj
lukemaj merged commit 91d2c31 into main Sep 28, 2026
1 check passed
@lukemaj
lukemaj deleted the fix/132-prism-silent-jobs branch September 28, 2026 19:31
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant