docs(cli): note concurrent sidebar sections edits can overwrite

Each `sidebar sections` command reads the head and publishes the full
snapshot, so concurrent edits from another CLI run or another client can
overwrite each other and the last publish wins. Document this in the
command help, the CLI README, and the nest skill. The relay-side
compare-and-set fix is tracked in block/buzz#8805.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Blake McAnally <bmcanally@squareup.com>
This commit is contained in:
Blake McAnally
2026-10-30 15:51:38 -05:00
parent ad4cca47e4
commit 0f719b5255
4 changed files with 9 additions and 2 deletions

View File

@@ -164,7 +164,8 @@ buzz channels list | jq '.[].name'
`sidebar sections` edits the signing identity's own sidebar. Each command is
one read and one publish, so a multi-channel `move` lands together. `--section`
takes a section id or a unique section name. A repeated command prints
`"message": "unchanged"` and publishes nothing.
`"message": "unchanged"` and publishes nothing. Concurrent edits from another
CLI run or another client can overwrite each other, and the last publish wins.
`protect set` replaces every existing rule for the exact ref pattern. Any
constraint omitted from the command is removed. `protect list` reports malformed

View File

@@ -1028,6 +1028,10 @@ pub enum ReactionsCmd {
#[derive(Subcommand)]
pub enum SidebarCmd {
/// List, create, and arrange your channel sections (synced with Buzz desktop)
///
/// Each edit reads your current sections and publishes the full result.
/// Concurrent edits from another CLI run or another client can overwrite
/// each other, and the last publish wins.
#[command(subcommand)]
Sections(SidebarSectionsCmd),
}

View File

@@ -52,7 +52,7 @@ const NEST_AGENTS_VERSION: u32 = 7;
/// Template content version for SKILL.md.
/// Bump this when changing `nest_skill.md` to trigger refresh on existing installs.
const NEST_SKILL_VERSION: u32 = 7;
const NEST_SKILL_VERSION: u32 = 8;
const BEGIN_MARKER: &str = "<!-- BEGIN BUZZ MANAGED";
const END_MARKER: &str = "<!-- END BUZZ MANAGED -->";

View File

@@ -71,6 +71,8 @@ Output varies by command group — `--help` shows flags but not response shapes.
| `reactions get` | `{"reactions": [{emoji, count, pubkeys}]}` — aggregated, not raw events |
| `pack validate/inspect` | human-readable text, not JSON |
`sidebar sections` commands each read and then publish your full sections list. Concurrent edits from another CLI run or another client can overwrite each other, and the last publish wins.
**Errors** go to stderr as `{"error": "<category>", "message": "<detail>"}`. Exit codes: 0 = success, 1 = input/not-found, 2 = relay/network, 3 = auth, 4 = other, 5 = write conflict (value superseded).
## Compact Format