Skip to content

feat: review queue for resolved annotations#5

Merged
alexgorbatchev merged 8 commits intomainfrom
feat/review-queue
Mar 10, 2026
Merged

feat: review queue for resolved annotations#5
alexgorbatchev merged 8 commits intomainfrom
feat/review-queue

Conversation

@alexgorbatchev
Copy link
Owner

@alexgorbatchev alexgorbatchev commented Mar 10, 2026

Summary

  • Keep resolved/dismissed annotations visible as faded green checkmark markers instead of removing them
  • Add a review queue panel (toggle via button or Q key) that lists all resolved annotations with their original comment, agent reply, and status
  • Users can check off reviewed items individually or via "Select All", then "Clear Selected" deletes them from the server
  • Resolved markers fade further once reviewed; clearing removes both markers and server-side data

Details

  • isRenderableAnnotation now allows all annotations through — resolved ones render with .resolved CSS class
  • SSE annotation.updated handler updates status in place instead of exit animation + remove
  • Review queue panel follows the existing settings panel pattern (same positioning, animation, dark/light theming)
  • Badge count on toolbar uses active (non-resolved) annotations only
  • Mutual exclusivity: opening review queue closes settings and vice versa
  • 21 behavior tests covering marker visibility, panel interactions, select/clear, server deletion, and SSE updates

Test plan

  • pnpm build passes
  • pnpm test — all 846 tests pass
  • Visual testing: connect to MCP server, create annotations, have agent resolve them
  • Verify resolved markers show as faded green checkmarks
  • Verify review queue button appears with unreviewed count badge
  • Open panel, check items, verify "Clear Selected" removes from server
  • Without server: feature is inert (no resolved annotations), no regressions

🤖 Generated with Claude Code

alexgorbatchev and others added 8 commits March 10, 2026 16:34
Keep resolved/dismissed annotations in state instead of removing them.
They render as faded green checkmark markers and can be reviewed via a
new panel (between clear and settings). Users check off items and clear
them when done. Keyboard shortcut R toggles the panel.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
R conflicts with browser reload. Button stays left of settings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add Select All button (disabled when all already selected)
- Rename to "Clear Selected" (enabled when any are checked)
- Style both as proper buttons with hover states

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Panel 650x450 (was 320x240)
- Agent reply no longer line-clamped
- 2px border (white 0.2 dark, black 0.12 light)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wrap setAnnotations with a gate that filters dismissed IDs on every
call. Cleared annotation IDs are stored in localStorage and loaded
into a ref on mount, so no load path (initial, SSE, reconnect,
session fetch) can reintroduce a cleared annotation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove dismissed IDs localStorage machinery. Clear Selected now
deletes annotations from the server (same pattern as the trash
button), so they don't come back on reload regardless of
localStorage state.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
21 tests covering:
- Resolved/dismissed annotations stay visible as markers
- Review queue button visibility and badge count
- Panel shows annotation details, comments, and agent replies
- Mutual exclusivity with settings panel
- Checking/unchecking reviewed items updates counter and marker CSS
- Select All / Clear Selected button states and behavior
- Clear Selected removes only checked items
- Clear Selected sends DELETE to server
- SSE resolution keeps annotation visible with resolved marker

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@alexgorbatchev alexgorbatchev merged commit c67744f into main Mar 10, 2026
1 check passed
@alexgorbatchev alexgorbatchev deleted the feat/review-queue branch March 10, 2026 23:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant