real dev verification, 2026-10-28, linux boat vm main: 2349c81afc (github/main fetched this turn) pr: f25ccc9dac1060afd8877c6e4c2668030656eeb2 client: repo Playwright 1.60.0, /usr/bin/google-chrome, 1440x900 provider: codex, gpt-6.1-sol, local configured responses proxy all scenario state was created through the web UI. separate real git workspace: /home/user/snooze-verification main: start isolated dev server; add project; select gpt-6.1-sol; send "Reply with exactly: snooze verification ready. Do not modify files." received "snooze verification ready." custom snooze -> duration 1 minute; navigate away; wait for actual expiry; click "Dismiss Woke notification"; context menu -> "Mark unread". observed: Woke returns (before-badge.png). $ node /tmp/state.mjs /home/user/main/.t3/userdata/statev2.sqlite {"title":"Snooze Verification","model":{"instanceId":"codex","model":"gpt-6.1-sol"},"updatedAt":"2026-10-28T07:49:11.803Z","lastVisitedAt":"2026-10-28T07:43:59.477Z","snoozedUntil":"2026-10-28T07:47:12.048Z","snoozedAt":"2026-10-28T07:46:12.053Z","lastSnoozeWakeAt":"2026-10-28T07:45:32.367Z","settledAt":null} stopped main by captured process-group pid 27496, then copied stopped dev state into PR isolated .t3 and ran exact PR head. same thread and completion. click "Dismiss Woke notification"; context menu -> "Mark unread". observed: Done replaces Woke (after-badge.png). snoozedUntil=null; snoozedAt=null; lastSnoozeWakeAt=2026-10-28T07:47:12.048Z. lastVisitedAt=2026-10-28T07:43:59.477Z; updatedAt unchanged. pr fresh codex turn: received "pr head provider verified." future snooze: choose 1 hour; mark unread while snoozed. $ node /tmp/state.mjs {"title":"Snooze Verification","model":{"instanceId":"codex","model":"gpt-6.1-sol"},"updatedAt":"2026-10-28T07:55:29.748Z","lastVisitedAt":"2026-10-28T07:54:56.466Z","snoozedUntil":"2026-10-28T08:55:29.624Z","snoozedAt":"2026-10-28T07:55:29.748Z","lastSnoozeWakeAt":"2026-10-28T07:47:12.048Z","settledAt":null} future snooze expiry and snoozedAt match values recorded before mark unread. Wake now returns the thread. custom snooze 1 minute again produces fresh Woke. recorded inactive and active Mark unread: fresh snooze produced Woke 2026-10-28T07:58:32.054Z inactive mark unread: Done; Woke absent 0 active mark unread remains Done 2026-10-28T07:58:38.397Z video /tmp/pr24080-evidence/pr-video/page@2fb816e6b5a23715ff92a1ba9b0bbc0e.webm then, while open: mark unread -> Done; submit new real codex turn. received "fresh activity still works."; sidebar no longer Done or Woke. blacksmith: 72/72 focused tests passed across Orchestrator.control-reads, ThreadSettlementService, threadSnoozed, and threadVisits. blacksmith: vp run check:changed 1316d48b0c68151afd8b47eb0c11a114cf0b4daa passed format, lint, knip, graphql, 8 affected/dependent typechecks, 24 tests. worker shallow history initially lacked merge base; fetched PR history with --depth=5, then reran successfully. no local checks used. ci: 29 successful, 0 failing, 0 pending. no source changes, commits, pushes, merges, rebases, label changes, or force pushes. not exercised: native mobile, electron, macos/windows, relay/tunnel/multi-device, other providers. shared tracker checked via web and existing automated tests.