Review follow-ups: PR #628 — fix: identify and clear bulk lister review warnings #876

Open
opened 2026-09-27 23:41:53 +00:00 by gambit-admin · 0 comments
Owner

Non-blocking findings from the auto code review of PR #628 (fix: identify and clear bulk lister review warnings) — captured for batch cleanup rather than blocking the PR.
Commit 45920fa · https://github.com/Gambit-Inc/gambit/pull/628

SHOULD-FIX:

  • frontend/app/hq/lister/bulk/page.js:870 — The new inline "Confirm card & finish" button in the list view calls updateRow(row.id, confirmReview(row)), which only sets reviewedSelection and does not set checked: true. Compare to the identically-labeled button in the one-by-one reviewer (page.js:732, onClick={() => acceptAndNext(row, {})}), where acceptAndNext sets checked: true as part of confirming. Result: clicking "Confirm card & finish" on an unchecked, ambiguous row in the list view flips its badge to "Confirmed" and removes it from the "Needs attention" filter (needsReview becomes false), but the card is still not in checkedRows and won't be sent to the Lister batch. The only remaining signal is the generic "N unselected cards won't be sent" banner at the confirm step — a user who trusts the "Confirmed" badge can walk away believing this card is queued when it isn't.
  • frontend/app/hq/lister/bulk/page.js:582-586 — acceptAndNext(row, {}) now early-returns via the canSelectCard guard (page.js:535) before doing anything else. Previously, pressing Enter on a no_match/error row still advanced to the next card (setIndex ran unconditionally); now Enter is a no-op on those rows, silently stalling keyboard-only navigation through the one-by-one reviewer (arrow keys still work, but this is a regression for a workflow this feature explicitly optimizes for keyboard speed).

NITS:

  • frontend/app/hq/lister/bulk/page.js:1971 (card?.name || "Unmatched card" in the selectedAttentionRows list) — dead fallback: every row here comes from checkedRows, which already requires canSelectCard(row) (i.e., selectedCard(row) truthy), so card can never be null/undefined at this point.

Filed from a Claude Code session

Non-blocking findings from the auto code review of **PR #628** (fix: identify and clear bulk lister review warnings) — captured for batch cleanup rather than blocking the PR. Commit `45920fa` · https://github.com/Gambit-Inc/gambit/pull/628 SHOULD-FIX: - `frontend/app/hq/lister/bulk/page.js:870` — The new inline "Confirm card & finish" button in the list view calls `updateRow(row.id, confirmReview(row))`, which only sets `reviewedSelection` and does **not** set `checked: true`. Compare to the identically-labeled button in the one-by-one reviewer (`page.js:732`, `onClick={() => acceptAndNext(row, {})}`), where `acceptAndNext` sets `checked: true` as part of confirming. Result: clicking "Confirm card & finish" on an unchecked, ambiguous row in the list view flips its badge to "Confirmed" and removes it from the "Needs attention" filter (`needsReview` becomes false), but the card is still not in `checkedRows` and won't be sent to the Lister batch. The only remaining signal is the generic "N unselected cards won't be sent" banner at the confirm step — a user who trusts the "Confirmed" badge can walk away believing this card is queued when it isn't. - `frontend/app/hq/lister/bulk/page.js:582-586` — `acceptAndNext(row, {})` now early-returns via the `canSelectCard` guard (`page.js:535`) before doing anything else. Previously, pressing Enter on a `no_match`/`error` row still advanced to the next card (`setIndex` ran unconditionally); now Enter is a no-op on those rows, silently stalling keyboard-only navigation through the one-by-one reviewer (arrow keys still work, but this is a regression for a workflow this feature explicitly optimizes for keyboard speed). NITS: - `frontend/app/hq/lister/bulk/page.js:1971` (`card?.name || "Unmatched card"` in the `selectedAttentionRows` list) — dead fallback: every row here comes from `checkedRows`, which already requires `canSelectCard(row)` (i.e., `selectedCard(row)` truthy), so `card` can never be null/undefined at this point. --- Filed from a Claude Code session
gambit-admin added the enhancement label 2026-09-27 23:41:53 +00:00
Sign in to join this conversation.