block / block/buzz

CLI cannot comment on or review Projects pull requests: no `buzz pr comment` / `buzz pr review`

Open
#3,008 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.