Order Inbox status polls and detail refreshes together - #2959
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Round-1 hold: immediately after publication, the implementation worker identified a possible uncached first-load interaction. A newer status-only poll may supersede the foreground full-detail read without populating a full body, leaving detail selection unresolved. The independent reviewer is examining this with the response-order contract. No merge until the scenario is reproduced/classified and any HIGH finding is repaired in the bounded fix round. Passing existing tests do not establish this case. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1dddbac224
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Round-1 independent review: SHIP at 1dddbac; no confirmed CRITICAL/HIGH. Reviewer ran 194 polling/store/orchestrator tests successfully and an in-memory probe for the first-load concern. The probe confirms a MEDIUM store contract gap, now #2960: a status-only read can supersede an uncached detail read without replacing the full body. No ordinary visible failure path was established: Legacy triage starts with cached detail and retains it, view teardown stops watches, and Paper editing consumes the returned body directly. The earlier investigation hold is resolved by this classification; no fix batch is required under the bounded review policy. The gap is not claimed fixed. Supersession, terminal hydration, timeout/retry, re-enqueue, logout, scope exit, retirement and fairness held. Browser evidence remains the implementer's four real-auth/synthetic-response journeys; hosted CI is still pending. Review round 1 complete. |
|
Cleanup: pushed source is preserved at 1dddbac. The clean implementation worktree was removed with plain git worktree remove after exporting ignored logs, browser results and cleanup inventory to C:\Users\Public\codex-shell-home\taskdeck-alpha-evidence\2956. Synthetic databases and disposable build/dependency outputs were removed with it. No owned browser/API listeners remain. The primary checkout retains only the unrelated bash.exe.stackdump. No active file writer; this PR retains its module lease until disposition. |
|
Current-base qualification at 10a2fdd: merged main7695211a0d31590c19845fd0e4cd559be521384e (#2949). Independent scoped review found no interaction blocker. The inbound 41-file type payload is byte-identical across the four Alpha candidates (SHA2566F80C8B1197DCDB73E63FF728DAF14A65645B1B2D2767DB410E95F57A7D95EBF), and this PR's owned paths are disjoint. Original source review stands; this was a read-only source/diff interaction pass, not new test execution. Fresh exact-head hosted CI remains required and pending. |
|
Current-base qualification at 2e20119: merged main 93ca1cd. The added payload is exactly #2957's WorkspaceObservationReader.cs and WorkspaceObservationApiTests.cs changes. Independent scoped interaction review confirms the original PR diff is unchanged and found no direct interaction defect. Normalized binary diff SHA-256 matches main's landed payload: 4ABA3D6CE91FDC934ED93418723239C8FAF4C6B86DBA2200349C4BBCFCB6F2DE. No local tests were repeated for these disjoint paths. Fresh exact-head hosted CI remains pending; this is not yet merge qualification. |
|
Current-base qualification at 150a1fc, based on main 02abedf: all four feature files are byte-identical to the previously reviewed head. Bounded independent interaction review SHIP; hierarchy/card-store refresh, WIP and manifest changes do not enter capture status/detail ownership maps or APIs. #2960 remains tracked.
|
Capture status polls and full-detail refreshes used separate read guards. Either delayed response could overwrite the newer state. They now share per-item read ownership; terminal hydration continues its status read's ownership, and a newer failed or cancelled read keeps older responses obsolete. Existing polling cadence, request deadlines, session/write guards and explicit recovery remain in place.
Validation: both response orders reproduced before repair (3 failing tests, 23 passing). The two store suites pass 117 tests; full frontend passes 6,502 with three existing skips across 420 files. Typecheck, production build, scoped lint, docs/link/governance checks and diff check pass. Four Chromium journeys pass, covering Paper/Legacy timeout recovery and both delayed-response orders through Legacy Refresh Detail; each ordering journey also proves a later fresh terminal poll retires the watch. Browser proof uses real authentication with synthetic capture responses for deterministic timing.
Four files changed: the store, focused regressions, browser regression and
docs/product/INBOX_TRIAGE_POLLING.md. No backend behavior changes. Full backend and actual assistive-technology output were not rerun. Exact-head hosted CI is pending. Canonical docs remain with their existing owners; the lane release will carry the sync packet.Closes #2956
Independent review: 194 polling/store/orchestrator tests pass, no CRITICAL/HIGH. MEDIUM #2960 tracks an uncached full-detail recovery contract gap reproduced at store level; no current ordinary user-visible failure was established. This PR does not claim that gap fixed.