Skip to content

Feat offline comment#47

Merged
amandal0903 merged 10 commits intomainfrom
feat-offline-comment
Mar 30, 2026
Merged

Feat offline comment#47
amandal0903 merged 10 commits intomainfrom
feat-offline-comment

Conversation

@amandal0903
Copy link
Copy Markdown
Collaborator

What

Offline comment display and storage

Why

Test plan

Avijit Mandal added 10 commits March 30, 2026 01:55
Add IWorkstreamCommentService for CRUD + JSON persistence of review
comments per workstream, and register a WorkstreamCommentController
with VS Code's built-in comment system so the "+" hover glyph appears
on every line in the editor. Clicking it opens the native comment
zone widget. Comment data is stored in .workstreams/comments/{name}.json
in a format compatible with the CLI.
Replace VS Code's built-in ReviewZoneWidget with a custom
WorkstreamCommentZoneWidget that has a simple textarea and
Comment/Cancel/Delete buttons. Clicking Comment saves to
.workstreams/comments/{name}.json via IWorkstreamCommentService.
- Zone widget has display mode (shows saved text + Edit/Delete) and
  edit mode (textarea + Comment/Cancel/Delete). Stays visible after submit.
- Comments store which side (old/new) they were added on and only
  display on the matching editor side in split view.
- Unified view shows notification prompting to switch to split view.
- Clicking "+" on left side in split view saves with side='old'.
- Default diff view forced to split (useInlineViewWhenSpaceIsLimited=false).
- Fix TrustedHTML violation (innerHTML→clearNode).
- Fix disposable leak on onDidClose listeners.
- Re-register controller on refresh to force CommentsController re-query.
- Debug logs prefixed [WSComments] for troubleshooting.
…le restore

- Force split diff mode and remove Inline View menu toggle
- Comments only appear in diff editors, not regular file editors
- Support git:// URIs (left/original side of diff) for commenting
- Show saved comments reliably via getDocumentComments trigger
- Dispose zone widgets on file switch and worktree switch
- Remove all inline/unified diff mode code paths
- Defer editor working set restore until after ext host settles (1.5s)
- Show progress indicator during worktree switch instead of error page
- Close zone widget after add/update, let _showSavedComments recreate
  from saved data to prevent duplicates from onDidChangeComments
- Add "Send Review Comments to Claude" command (Cmd+Shift+P)
  - Multi-select picker to choose which comments to send
  - Opens new terminal, starts Claude session, sends formatted prompt
  - Deletes sent comments and focuses terminal
- Dynamic zone widget height based on comment text length
- All user-visible strings use nls.localize()
- Magic numbers replaced with named constants
- console.log replaced with ILogService
- Removed unused IDialogService/INotificationService from controller
@amandal0903 amandal0903 merged commit 6ddd38c into main Mar 30, 2026
amandal0903 added a commit that referenced this pull request Apr 3, 2026
* feat: inline review comments on diff view (GitHub PR style)

Add IWorkstreamCommentService for CRUD + JSON persistence of review
comments per workstream, and register a WorkstreamCommentController
with VS Code's built-in comment system so the "+" hover glyph appears
on every line in the editor. Clicking it opens the native comment
zone widget. Comment data is stored in .workstreams/comments/{name}.json
in a format compatible with the CLI.

* feat: custom comment zone widget with save to JSON

Replace VS Code's built-in ReviewZoneWidget with a custom
WorkstreamCommentZoneWidget that has a simple textarea and
Comment/Cancel/Delete buttons. Clicking Comment saves to
.workstreams/comments/{name}.json via IWorkstreamCommentService.

* feat: display saved comments, side-aware storage, unified view handling

- Zone widget has display mode (shows saved text + Edit/Delete) and
  edit mode (textarea + Comment/Cancel/Delete). Stays visible after submit.
- Comments store which side (old/new) they were added on and only
  display on the matching editor side in split view.
- Unified view shows notification prompting to switch to split view.
- Clicking "+" on left side in split view saves with side='old'.
- Default diff view forced to split (useInlineViewWhenSpaceIsLimited=false).
- Fix TrustedHTML violation (innerHTML→clearNode).
- Fix disposable leak on onDidClose listeners.
- Re-register controller on refresh to force CommentsController re-query.
- Debug logs prefixed [WSComments] for troubleshooting.

* fix: diff comment controller — split-only mode, ghost cleanup, reliable restore

- Force split diff mode and remove Inline View menu toggle
- Comments only appear in diff editors, not regular file editors
- Support git:// URIs (left/original side of diff) for commenting
- Show saved comments reliably via getDocumentComments trigger
- Dispose zone widgets on file switch and worktree switch
- Remove all inline/unified diff mode code paths

* fix: smooth worktree switch + eliminate duplicate comment widgets

- Defer editor working set restore until after ext host settles (1.5s)
- Show progress indicator during worktree switch instead of error page
- Close zone widget after add/update, let _showSavedComments recreate
  from saved data to prevent duplicates from onDidChangeComments

* style: align comment widget with code area past line numbers

* fix: double-dispose guard, trailing-slash path matching, scheme filtering

* feat: send comments to Claude + code quality cleanup

- Add "Send Review Comments to Claude" command (Cmd+Shift+P)
  - Multi-select picker to choose which comments to send
  - Opens new terminal, starts Claude session, sends formatted prompt
  - Deletes sent comments and focuses terminal
- Dynamic zone widget height based on comment text length
- All user-visible strings use nls.localize()
- Magic numbers replaced with named constants
- console.log replaced with ILogService
- Removed unused IDialogService/INotificationService from controller

* updated readme and claude md files

* updated pause button
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