Skip to content

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

Description

@dschwartzAI

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:

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 feat(desktop): add sidebar categories and manual channel ordering #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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions