Repository navigation
fix(server): keep Cue skipped across serving restarts (#271) - #277
Conversation
|
Agent Observer had no sessions in scope for this task after sync, so there is no cost comment. The gap is measurement, not the change. |
|
What: Clean independent review of PR #277 at Reviewed base Blocking findings: none. Acceptance checked by source inspection:
The overnight explanation correctly separates rocky's process-lifetime resets from bestia's long-lived skip and retains the unexplained in-phase re-arms as a limit. I reviewed the issue's evidence and explanation; I did not independently query either live host. A genuine Cue health document permits recovery under the stated contract, and I found no defect requiring a second consecutive-probe policy. No tests were run, as requested: no finding required execution. No repository files were changed, and neither Chromeria nor Cue was stopped or restarted. Reviewer: gpt-6.1-sol, medium reasoning effort, Codex harness. |
bf406f7 to
8d75e65
Compare
|
Rebased onto main after #274. The only conflict was the test helper return: it keeps both |
|
What: Independent Sol round 2 review of Reviewed the full
Blocking findings: none. Non-blocking findings: none. No tests run: no finding depended on execution, per the requested proof limit. No repository edits, checkouts, or service restarts performed. Model and harness: gpt-6.1-sol, Codex in T3 Code. |
|
What: Clean independent review of PR #277 at Reviewed base Blocking findings: none.
|
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
8d75e65 to
69b4eef
Compare
|
Typecheck on Head is |
|
What: Round 3 independent review is clean on 69b4eef. Blocking findings: none. Verified the worktree HEAD and live PR head both equal 69b4eef, with base 51ab123. Read the complete Connect failures synchronously record the URL as down; a new client reads that state. Subsequent score/start requests skip transport while down. Recovery requires HTTP 200, Inspected the focused tests for restart persistence, valid health recovery, timeout isolation, and exact-key injection while down. No tests were run in this review because no finding required execution. Author-reported test/typecheck results were not treated as independently executed proof. The accepted genuine-health-document recovery limit remains unchanged. No files or services were modified, and no service was stopped or restarted. Reviewer: gpt-6.1-sol, medium reasoning effort, Codex harness. |
|
Independent review, round 3. Head Blocking: none. Checked on this head:
No version bump. Tests were not re-run; no finding depended on a run. |
What: Chromeria's Cue client stays skipped after one connect failure until
/healthreturns Cue's health document, including after the serving process restarts.Why: The down flag lived only in memory, so rocky's overnight crash loop (#256) started each new process by calling Cue again. Bestia's long-lived process held the skip against the same dead port. A probe also treated any HTTP 200 as recovery.
So what: Merge after
review/independent-solandreview/independent-groksucceed on this head. No version bump. Do not restart Cue or Chromeria for proof.Closes #271.
Elon record
Requirements and who asked: Machine-wide skip after a connect failure until health succeeds, including across rocky's crash-loop restarts (user via #271 and contextmd#13 acceptance).
Deleted: Changing the user-message wait or the window (#248). Stopping Cue to test. A second backoff policy besides the existing probe. Treating bestia's hold as if rocky had the same process lifetime.
Bottleneck: In-memory
availableresets on process start, and a living process re-armed when the probe treated HTTP 200 as recovery.Checked myself: Rocky's serving sqlite (read-only), heartbeat phase resets, crash reports, bestia's cue journal,
Cue.tsbefore this change, and a closed-port reproduction that returnsconnect_failedrather than HTTP 200.Proof
Focused tests on this worktree, node 26,
npx -y pnpm@11.10.0 exec vp test runofCue.test.ts,ServingState.test.ts, andContextmdRoute.test.ts: 92 passed (12, 55, 25). The route test copies the sqlite after the firstconnect_failedand starts a second server that logsnot_calledwith no further transport call. Exact-key injection still completes while Cue is down.Upstream
pingdotgg/t3codehas noCueClient(code search, 0 hits). These files are fork-owned and are not listed inscripts/fork-upstream-edits.txt.No version bump: the task and chromeria
AGENTS.mdforbid one.release-checkis not the gate for this PR.Website impact: none. This is internal serving behavior with no public setup or capability change.
Limit
The health-document check (
ok: trueand a non-emptyadapter) stops a bare HTTP 200. It does not stop a real Cue health body. Some overnight re-arms sat inside one stable heartbeat phase, so they were not process restarts. The old code can setavailableback to true only from a probe that saw HTTP 200, andcontextmd-cue.servicestayed stopped from 2026-10-13 19:52:42Z until 2026-10-14 06:21:55Z. A closed port on this machine returnsECONNREFUSED, not 200. Those in-process re-arms are recorded, and this change does not claim to explain a genuine Cue health document.