feat(cli): owner-authorized management of synced sidebar categories
- 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
Assessment
This issue has not been assessed yet.