mirror of
https://github.com/razzant/ouroboros.git
synced 2026-10-03 12:18:39 +00:00
On 2026-09-19 a task sat parked behind a reviewer for 7 h 16 min and the task card gave no hint for how long. PR #1159 made the wait itself visible — a plan wave or an acceptance panel lists an unanswered reviewer as `Awaiting answer: <slot> · <model>` — but never said WHEN the host sent that reviewer its request. The rule is that a time is never invented, inferred or back-filled. A row whose send moment the host did not record keeps exactly the text it has today. The moment is recorded once, at the source: `ActiveReviewAttempt` gains `started_at`, stamped with `utc_now_iso()` only where this process creates the entry for a NEW physical operation. The free replay of an already settled answer is not stamped, and neither is an `exact_recovery` rejoin: that operation was sent by an EARLIER process and its send moment is persisted nowhere, so this process honestly has nothing to show. `ReviewActorRecord` gains `awaiting_since`, set from the entry onto the two rows that wait — the `pending_dispatch` row released at the dispatch barrier and the `in_flight` row whose window expired. A settled or answered row never carries it. The plan row and the durable wave actor record carry it forward beside the other custody facts, so it reaches `wave.actors`; `_review_actor_projection` publishes it for `panel.actors` only when one of the two existing wait predicates still calls the row unanswered AND the stored value parses as an instant — otherwise the key is absent. The browser appends ` · since HH:MM` in the viewer's local 24-hour clock, with the short local date when the wait began on an earlier day so `since 23:50` cannot be misread as tonight, and renders nothing at all for an absent or unparseable value. |
||
|---|---|---|
| .. | ||
| modules | ||
| providers | ||
| tests | ||
| vendor | ||
| __init__.py | ||
| app.js | ||
| chart.umd.min.js | ||
| eslint.config.js | ||
| favicon.png | ||
| highlight.min.js | ||
| index.html | ||
| logo.jpg | ||
| marked.min.js | ||
| mermaid.min.js | ||
| model_roles.css | ||
| model_wait.css | ||
| onboarding.css | ||
| onboarding_template.html | ||
| package-lock.json | ||
| package.json | ||
| purify.min.js | ||
| reviewer_slots.css | ||
| settings.css | ||
| style.css | ||
| theme.js | ||
| ui.css | ||