Skip to content

Conversation

@wesm
Copy link
Collaborator

@wesm wesm commented Jan 25, 2026

Fixes #95

Summary

  • Commit message viewer (m key): View commit messages from queue or review view
  • Keyboard help modal (? key): Toggle help overlay with available shortcuts
  • Navigation feedback: Flash notifications at queue/review boundaries
  • Update notification: Moved to line 3, only shown in queue view
  • Terminology: Renamed "respond" to "comment" throughout CLI and API

Test plan

  • Verify m shows commit messages, ? toggles help modal
  • Verify navigation shows "No newer/older review" at boundaries
  • Run go test ./...

🤖 Generated with Claude Code

wesm and others added 18 commits January 25, 2026 11:49
- m key: Shows commit message(s) for selected job
  - Single commits: full message with author/date
  - Commit ranges: all commits with numbered list
  - Dirty reviews: flash "No commit message for uncommitted changes"
  - Run/prompt jobs: flash "No commit message for run tasks"

- ? key: Toggles keyboard help modal with all shortcuts
  - Returns to previous view (queue or review) on close

- Updated help lines to be more concise, moved less common
  shortcuts (r, c, p) to help modal only

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- CLI: `roborev comment` is the new command, `respond` is hidden alias
- TUI: "Add Comment" modal, "Comments" section in review view
- Help modal: "c: Add comment"
- Skills: Renamed roborev-respond to roborev-comment, updated SKILL.md files
- Address skill: Updated to use `roborev comment` command

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rename TUI internal variables from respond* to comment*
- Revert skill directories to roborev-respond (skill name roborev:respond)
- Update skill to also mark review as addressed
- Make 'roborev respond' visible as alias for 'comment'

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Prompt: "Comments on this review:" instead of "Responses"
- Sync output: "comments" instead of "responses"
- Temp file: roborev-comment-*.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Internal function/method renames for terminology consistency:
- AddResponse -> AddComment
- AddResponseToJob -> AddCommentToJob
- GetResponsesForCommit -> GetCommentsForCommit
- GetResponsesForJob -> GetCommentsForJob
- GetResponsesForCommitSHA -> GetCommentsForCommitSHA
- GetResponsesToSync -> GetCommentsToSync
- MarkResponseSynced -> MarkCommentSynced
- MarkResponsesSynced -> MarkCommentsSynced

The database schema (responses table) and API endpoints (/api/respond)
remain unchanged - this is purely internal code terminology.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- /api/respond -> /api/comment (POST: add comment)
- /api/responses -> /api/comments (GET: list comments)
- Keep backward compat aliases for /api/respond and /api/responses

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove backward compat /api/respond and /api/responses routes
- Rename API JSON keys: responder -> commenter, response -> comment
- Rename related variables and parameters throughout

Only the database schema (responses table with responder/response columns)
retains the old terminology.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix escape handler in commit message view to return to the originating
  view (queue or review) instead of always returning to queue
- Add sanitizeForDisplay() to strip ANSI escape sequences and control
  characters from commit messages before display, preventing terminal
  injection when viewing untrusted repos
- Add tests for commit message view navigation from both queue and review
- Add tests for help modal toggle/back behavior
- Add comprehensive tests for sanitization function

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Previously, GetSystemPrompt("agent", "run") fell through to the default
case and returned SystemPromptSingle (review instructions) for agents
without a run template. This incorrectly prepended review-style output
instructions to roborev run jobs for non-Gemini agents.

Now returns empty string for "run" when no template exists, so raw
prompts are used without preamble. Gemini still gets its run template.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The pattern only matched versions ending in -N-gHASH, so dirty dev
builds like v0.16.1-2-g75d300a-dirty were incorrectly treated as
release builds. Now allows optional -dirty suffix.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Handle job.GitRef == "dirty" and empty refs in fetchCommitMsg since
  job lists may not populate DiffContent field
- Fix ansiEscapePattern to match OSC sequences terminated by ST (\x1b\\)
  in addition to BEL (\x07)
- Fix copy-paste errors in sync_test.go test names and error messages

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Check job.GitRef == "prompt" instead of job.Prompt != "" to identify
run tasks. The Prompt field is populated for all jobs (storing the
review prompt used), not just run tasks.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tests verify that:
- Regular commits with Prompt populated are NOT detected as run tasks
- Run tasks (GitRef == "prompt") return appropriate error
- Dirty jobs (GitRef == "dirty" or DiffContent set) return appropriate error
- Empty GitRef returns appropriate error

The first case would have caught the bug where job.Prompt != "" was
incorrectly used instead of job.GitRef == "prompt".

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The 60-char separator lines wrapped awkwardly on narrow terminals.
Use blank lines instead for cleaner formatting at any width.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add ←/→ for previous/next review navigation in Review View section.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Job IDs provide more predictable ordering since they're monotonically
increasing. Previously ordered by enqueued_at which could result in
IDs appearing out of order if jobs were enqueued at similar times.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When hideAddressed is on and user marks a review as addressed from the
review view, do NOT update selectedIdx. The findNextViewableJob and
findPrevViewableJob functions start searching from selectedIdx +/- 1,
so left/right navigation naturally finds the correct adjacent visible
jobs. Moving selectedIdx would cause navigation to skip a job.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@wesm wesm force-pushed the show-commit-message branch from cbe7cf8 to 518142f Compare January 25, 2026 19:35
wesm and others added 5 commits January 25, 2026 14:39
Display "No newer review" or "No older review" when pressing right/left
arrows in review view and there's no adjacent review to navigate to.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Display the sticky update notification on the third line of the TUI
(above the job table) instead of at the bottom. This ensures it's
only visible in the queue view, not in the review view.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Display "No newer review" when pressing up at the top of the queue,
and "No older review" when pressing down at the bottom (when there
are no more jobs to load).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Check for prompt jobs before dirty jobs to handle backward compat
- Return clearer error for empty GitRef instead of claiming dirty
- Add tests for empty GitRef, backward compat run jobs, dirty edge cases
- Add tests for review navigation bounds flash messages
- Add tests for queue navigation bounds flash messages
- Add tests for update notification placement in queue view

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ition

- Add flashExpiresAt assertions to all boundary navigation tests
- Verify update notification appears on line 3 (above table) in queue view

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@wesm wesm changed the title Add commit message viewer, rename respond to comment, and bug fixes TUI improvements: commit viewer, help modal, navigation feedback Jan 25, 2026
@wesm wesm merged commit a12693f into main Jan 25, 2026
7 checks passed
@wesm wesm deleted the show-commit-message branch January 25, 2026 20:07
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.

consider displaying commit message in tui (perhaps with a toggle)

2 participants