Skip to content

Reload review history mode - #2731

Merged
Chris0Jeky merged 1 commit into
mainfrom
issue-2075/mode-reload
Sep 6, 2026
Merged

Reload review history mode#2731
Chris0Jeky merged 1 commit into
mainfrom
issue-2075/mode-reload

Conversation

@Chris0Jeky

Copy link
Copy Markdown
Owner

Summary

  • Treat live and archived review history as distinct queue read identities even when the board stays the same.
  • Reload on same-board history-mode transitions through the existing request-generation path and reject late responses from the prior mode.
  • Add regression coverage for live-to-archived, archived-to-live, settled-scope gating, and late-response suppression.

Verification

  • npx vitest --run --maxWorkers=2 src/tests/composables/useReviewProposals.spec.ts (174 passed)
  • npm run typecheck
  • npm run build
  • npx eslint src/composables/useReviewProposals.ts src/tests/composables/useReviewProposals.spec.ts
  • git diff --check

Refs #2075

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Fresh-context review record (coordinator, 2026-09-06; read-only Opus 5 reviewer over the diff against the merge base, with the #2638/#2694/#2445 retirement rules as the lens; route: the standing D-12 rule for Codex-session PRs).

VERDICT: SHIP, nothing fixed in-PR. Retirement-rule check passed: the mode reload is loadProposals with the default source: 'explicit', so it cannot retire a standing recovery sentence; recoveryAlreadyRaised and the composite semantics are untouched.

Recorded for #2075, not fixed: MEDIUM-1 — the new poll-side guard (isArchivedHistory.value !== requestedHistoryMode in isSupersededQueueRead) is not covered by either new spec; the "discards a late live response" test passes on the pre-existing request-id supersession because the watcher's reload bumps the counter first, so the three behaviours the guard changes (no proposals/landedQueueScope write, no recordQueueAccessRevoked on a late 403, no failure count for a poll spanning a mode switch) ship untested. Unverified hypothesis: reverting only that clause leaves the spec green. LOWs: landedQueueScope pairs a snapshotted board id with the live history mode (correct today only because isCurrentRead() covers the mode with no await between); the docstring's "empty filter is the unscoped live queue" restates a dead !== null guard (normalizeBoardIdQueryParam returns ''); the watcher source returns a fresh array literal and watch is mocked, so nothing proves no spurious reload; no current UI path produces a same-board mode transition, so the behaviour is defensive for a future toggle. Description accuracy: "reject late responses from the prior mode" oversells the added coverage.

@Chris0Jeky
Chris0Jeky merged commit 65976a8 into main Sep 6, 2026
35 checks passed
@github-project-automation github-project-automation Bot moved this from Pending to Done in Taskdeck Execution Sep 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant