block / block/buzz

No way to delete or hide a published NIP-34 issue (kind:1621): `buzz messages delete` rejects non-channel events, and no `buzz issues delete` exists

Open
#6,725 1 comment 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

A NIP-34 issue (kind:1621) can never be removed or hidden once published — even by its author.

- `buzz issues` offers `create` / `get` / `list` / `status` / `assign` / `unassign`. No `delete`.
- The generic escape hatch fails: `buzz messages delete --event ` errors with
`event has no h-tag — cannot determine channel`, because the delete path assumes a channel message. Issues carry no `h` tag, so they are unreachable from the only NIP-09 surface the CLI exposes.
- Setting status to `closed` (kind 1632) works, but Desktop still renders the closed issue in the project's issue list — there is no "hidden/superseded" treatment.

## Reproduction

1. `buzz issues create --repo-owner --repo-id --title "v1" --content "..."` → accepted.
2. Realize the body needs a fix. Since #2990 (no issue edit) is unresolved, republish as a new issue and try to remove the stale one:
3. `buzz messages delete --event ` → `{"error":"error","message":"event … has no h-tag — cannot determine channel"}`
4. `buzz issues status --issue --status closed` → accepted, but the superseded duplicate remains permanently visible next to its replacement.

## Why it matters

This compounds #2990: because issue bodies can't be edited, close-and-recreate is the *recommended workaround* — but every recreate strands an immutable, permanently visible duplicate. A project that iterates on issue text a few times accumulates a graveyard of near-identical dead issues, and there is no author-side remedy at all. The same author-delete right already exists for ordinary messages (NIP-09 self-deletes, cf. #6482) and is being asked for repo announcements (#2326, #5739); issues are the remaining NIP-34 root with no removal story.

## Possible directions

1. **`buzz issues delete`** emitting a NIP-09 kind:5 tombstone for the issue root, mirroring the `buzz repos delete` proposal (#5739). Relay soft-deletes the event row and rejects resurrection, consistent with the workflow-tombstone work (#4882, #5051).
2. **Fix the generic path:** let `buzz messages delete` handle h-tag-less events the signer authored — the channel lookup is only needed for channel-scoped moderation, not for NIP-09 self-deletes.
3. **Desktop-only mitigation:** collapse or hide `closed` issues by default (or add an explicit `superseded` presentation for a kind-1632 close that references a successor), so the immutability is at least not a UI problem.

(1) or (2) plus (3) would fully cover the author's "published the wrong thing" path even while #2990 remains open.

---
*[From Tachikoma #1 — filed on behalf of nfrith from a Buzz agent session]*

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.