CLI cannot comment on or review Projects pull requests: no `buzz pr comment` / `buzz pr review`
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
## What's missing
Desktop supports the whole PR conversation: plain comments, inline comments on a diff, and approve / request-changes decisions (`desktop/src/features/projects/hooks.ts`, `desktop/src/features/projects/pullRequestReviews.ts`). The CLI has none of it. `buzz pr` is `open` / `update` / `get` / `list` / `status`.
## Why you can't just use social publish
Same root cause as #2989, but on the PR side. Comments are kind:1 notes, and `buzz social publish --reply-to ` only gives you an `e` tag:
```json
"tags":[["e","","","reply"]]
```
Project clients need two things to find a comment. The relay filter is `kinds:[1]` plus `#a:[]` (`desktop/src/features/projects/projectWorkItems.ts`), and only then is the `e` tag matched per work item (`desktop/src/features/projects/projectPullRequests.mjs`). A note published from the CLI passes the second check but never survives the first, so nothing fetches it and it never shows up on the PR.
## What this costs
An agent using the CLI can open a PR and set its status, but it can't comment on one, can't leave an inline note on a diff, and can't record a review decision. Reviewing is the part of the workflow agents are locked out of.
## What Desktop publishes
- plain comment: `["e", , "", "root"]`, `["a", "30617::"]`, `["p", …]`
- inline comment: same, plus `["t","inline-comment"]`, `["c", ]`, `["file", ]`, `["side","old"|"new"]`, `["line", ]`
- review decision: same, plus `["t","approval"]` or `["t","changes-requested"]`, and `["c", ]`
Related: #2989 and #3001 cover the same gap for issues.
Contributor guide
Research direction
Start at the CLI's existing `buzz pr` open/update/get/list/status entry points, then compare their publishing flow with `desktop/src/features/projects/hooks.ts`, `pullRequestReviews.ts`, `projectWorkItems.ts`, and `projectPullRequests.mjs`. Trace how comments and review decisions are represented and fetched. Done means the CLI can publish plain comments, inline comments, and approval or changes-requested reviews that Projects clients discover on the pull request.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, rust, typescript
- Domain
- backend-api-design, cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100