You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Only run-liveness.test.ts:166 supplies one. This is the #570 pattern exactly: the helper is tested, the call sites are not, so the column reads as implemented while nothing populates it. Measured live: waitingUntil null on 89 of 89 runs, including one that parked ~6h51m by its own wall clock.
The instant exists and is thrown away
coding-wait.ts:210 returns until: now + ms, consumed at coding-pause.ts:174, and rendered into chat prose at coding-wait.ts:274,304. It never reaches recordLiveness, because pauseDeps(round, parkReason) closes over the reason only.
Two descriptions disagree, and the wrong one is the general-purpose read
composition.ts:255 — "waiting (deliberately parked — waitNote says what for and until when)"
coding.ts:170 — "saying what for"
The sibling that omits the promise is the correct one, which is the tell. work-report.ts:127's "expected to resume in …" clause is unreachable code.
Why this misleads
"Parked, resuming at 16:00" and "parked, indefinitely" are different decisions for the owner. The platform computes the first and reports the second.
Acceptance criteria
recordLiveness receives the instant coding-wait.ts:210 already computes; waitingUntil is populated wherever a park has a known end.
A park with genuinely no known end stores NULL and the prose says so — the distinction is the point, not the field being non-null.
composition.ts:255 matches behaviour, or behaviour matches it.
Red demonstrated: an engine-limit park records its reset instant.
Verified vs inferred
Verified: the single writer, all three call sites, the test-only supplier, both descriptions, coding-wait.ts:210/coding-pause.ts:174, and the 89/89 live measurement.
waiting_untilcan only ever be NULL, and the MCP description promises itOne writer:
agent-loop-store.ts:272-273, bindingwait?.until ?? null. Three production call sites, none passesuntil:coding-session.ts:440—null(a clear)coding-session.ts:581—{ reason: wait }coding-session.ts:713—{ reason: "platform_interrupt" }Only
run-liveness.test.ts:166supplies one. This is the #570 pattern exactly: the helper is tested, the call sites are not, so the column reads as implemented while nothing populates it. Measured live:waitingUntilnull on 89 of 89 runs, including one that parked ~6h51m by its own wall clock.The instant exists and is thrown away
coding-wait.ts:210returnsuntil: now + ms, consumed atcoding-pause.ts:174, and rendered into chat prose atcoding-wait.ts:274,304. It never reachesrecordLiveness, becausepauseDeps(round, parkReason)closes over the reason only.Two descriptions disagree, and the wrong one is the general-purpose read
composition.ts:255— "waiting(deliberately parked —waitNotesays what for and until when)"coding.ts:170— "saying what for"The sibling that omits the promise is the correct one, which is the tell.
work-report.ts:127's "expected to resume in …" clause is unreachable code.Why this misleads
"Parked, resuming at 16:00" and "parked, indefinitely" are different decisions for the owner. The platform computes the first and reports the second.
Acceptance criteria
recordLivenessreceives the instantcoding-wait.ts:210already computes;waitingUntilis populated wherever a park has a known end.composition.ts:255matches behaviour, or behaviour matches it.instance_runtime_nodes.statusis a write-once "online" column — every machine an instance has ever seen reports online forever, including one last seen four days ago #570.Verified vs inferred
coding-wait.ts:210/coding-pause.ts:174, and the 89/89 live measurement.