block / block/buzz

feat(cli): owner-authorized management of synced sidebar categories

Open
#3,590 2 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

## Problem

Buzz Desktop supports encrypted, identity-scoped custom sidebar sections/categories, but the `buzz` CLI exposes no way to read or manage them. This prevents an agent from helping an owner organize a busy workspace even when the owner explicitly requests it.

Today the owner must manually create every category and move each channel in Desktop. PR #2947 makes the Desktop category UI substantially better, but remains UI-only. PR #3165 and issue #3363 improve mobile sync/rendering, not automation.

## Proposed capability

Add programmatic sidebar-category management without exposing or copying the owner's private key.

### Direct current-identity CLI

A command family along these lines:

```text
buzz sidebar sections list
buzz sidebar sections create --name "Run the Business" --icon "🎯"
buzz sidebar sections assign --section "Run the Business" --channel main --channel system
buzz sidebar sections rename ...
buzz sidebar sections reorder ...
buzz sidebar sections delete ...
```

These commands should operate only on the CLI's current identity and reuse the existing encrypted `channel-sections` / category persistence and conflict-handling logic rather than introduce a competing document format.

### Managed-agent owner-review flow

For a managed agent acting on behalf of its owner, provide a reviewable mutation draft:

1. The agent proposes the complete category layout using channel IDs plus human-readable names.
2. Buzz Desktop shows the exact create/move/rename/delete effects for owner review.
3. The owner approves once.
4. Desktop applies and signs/encrypts the mutation using the owner's local identity.

An agent's own key must never impersonate the owner or publish owner-encrypted preferences. Owner attestation should authorize opening the review surface, not leak general signing authority.

## Requirements

- Preserve identity- and relay-scoped encrypted sync.
- Resolve names to IDs before preview; persist stable channel IDs.
- Support idempotent full-layout application as well as individual operations.
- Fail closed on ambiguous channel names, missing channels, stale category revisions, or authorization failure.
- Show a clear diff before an owner-reviewed write.
- Never print private keys, decrypted preference payloads, or owner authorization material.
- Remain compatible with the category model in #2947 if that lands.
- Add CLI tests plus Desktop end-to-end coverage for review, approval, cancellation, conflicts, and replay/idempotency.

## Example use case

An owner asks an agent to organize channels into:

- 🎯 Run the Business — `main`, `system`, `Big Rocks`, `roadmap`
- 🛠️ Build & Ship — build/review/QA/release channels
- 💰 Revenue — billing, Stripe reconciliation, and funnel channels

The agent should be able to propose that layout in one operation and the owner should approve it once, rather than manually moving every channel.

## Duplicate search

Searched open issues and PRs for `channel sections`, `sidebar sections`, `CLI`, `automation`, and owner-authorized preference management. The closest items are #2947, #3165, and #3363; none expose CLI or managed-agent category mutation.

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.