Skip to content

refactor: rename sprout backend to buzz#958

Merged
wpfleger96 merged 12 commits into
mainfrom
duncan/buzz-backend-rename
Jun 10, 2026
Merged

refactor: rename sprout backend to buzz#958
wpfleger96 merged 12 commits into
mainfrom
duncan/buzz-backend-rename

Conversation

@wpfleger96

Copy link
Copy Markdown
Collaborator

Summary

Renames all backend sprout references to buzz across the Rust workspace, infrastructure config, scripts, and documentation. This is the backend portion of the full rebrand — the desktop/ tree is handled separately.

Changes

Crate structure (Phase 1–3)

  • Renamed all 21 crates/sprout-* directories to crates/buzz-*
  • Updated all Cargo.toml package names and workspace dependency paths
  • Renamed all Rust use-paths and identifiers (sprout_*buzz_*)
  • Updated comments, metrics, and the countdown-bot example dependency

Env vars (Phase 4)

  • Renamed all SPROUT_* env var references to BUZZ_* in crates and examples
  • Updated git-sign-nostr env var reads (SPROUT_PRIVATE_KEYBUZZ_PRIVATE_KEY)

Docker/CI (Phase 5)

  • docker-compose.yml: container names, DB creds, network, volumes, labels
  • ci.yml: container refs, DSN, env vars, package names, binary paths
  • release.yml: updater env vars, package names, artifact/release tag names
  • sprig.yml: binary/package references
  • CODEOWNERS: team name (with verification TODO)

Scripts & docs (Phase 6)

  • All scripts/ files: binary names, env vars, DB/service refs, product name
  • All docs/ files: env vars, crate references, product name in prose

Intentionally preserved

  • github.com/block/sprout repo URLs (actual repo URL)
  • Sprout.app / Sprout Desktop product names in release.yml (macOS bundle name)
  • One historical path reference in docs/git-on-object-storage.md (PR feat(relay/git): git on Sprout, S3-backed #726 context)

Out of scope

  • desktop/ tree (~300+ references) — separate frontend PR

Verification

  • cargo check passes clean
  • rg "SPROUT_" crates/ examples/ → 0 hits
  • rg -i sprout docker-compose.yml .github/ → 0 hits (excluding preserved items above)
  • rg -i sprout scripts/ docs/ → 0 hits (excluding repo URL and historical path)

@wpfleger96 wpfleger96 requested a review from a team as a code owner June 10, 2026 20:52
npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 and others added 12 commits June 10, 2026 19:07
First step of the Sprout->Buzz backend rebrand. Moves all 20 crate
directories under crates/ and updates the workspace members list. The
workspace does not compile after this commit alone; Cargo.toml package
names and use-paths are renamed in following commits.

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Updates [package]/[lib]/[[bin]] names, workspace dependency keys and
path declarations, and every 'use sprout_*' / 'sprout_*::' crate-qualified
import across the workspace. Local variables that happen to start with
sprout_ (sprout_event, sprout_mytoken, etc.) are intentionally left
untouched; they are not crate references.

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
countdown-bot keeps its own name but is a workspace member, so its
path dependency on the renamed sdk crate must update in lockstep or the
workspace fails to load.

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Completes the Rust identifier rename pass: doc comments referencing
sprout-relay/sprout-pubsub, inline string mentions of 'sprout context',
and metrics names (sprout_fanout_recipients, sprout_search_index_errors_total)
all updated to buzz equivalents.

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
All SPROUT_ prefixed environment variable references replaced with BUZZ_
across documentation, Rust source (git-sign-nostr, countdown-bot), and
Cargo.toml comments. Wire-protocol strings were already clean from a
prior pass.

Co-authored-by: Will Pfleger <wpfleger@block.xyz>
Signed-off-by: Will Pfleger <wpfleger@block.xyz>
Hard rename of all sprout references in infrastructure config:
- docker-compose.yml: container names, DB creds, network, volumes, labels
- ci.yml: container refs, DSN, env vars, package names, binary paths
- release.yml: updater env vars, package names, artifact/release tag names
- sprig.yml: binary/package references
- CODEOWNERS: team name (with verification TODO)

Co-authored-by: Will Pfleger <wpfleger@squareup.com>
Signed-off-by: Will Pfleger <wpfleger@squareup.com>
Hard rename of all sprout references in scripts/ and docs/:
- Env vars SPROUT_* → BUZZ_*
- Binary names sprout-relay/acp/agent/dev-mcp/cli/proxy → buzz-*
- DB creds and container names matching compose renames
- Product name Sprout → Buzz in descriptive prose
- Email domain sprout.test → buzz.test
- Nostr tag sprout-channel → buzz-channel
- Kept github.com/block/sprout repo URLs unchanged
- Kept historical crates/sprout-relay/ path ref in git-on-object-storage.md

Co-authored-by: Will Pfleger <wpfleger@squareup.com>
Signed-off-by: Will Pfleger <wpfleger@squareup.com>
Formatting-only changes from cargo fmt run.

Co-authored-by: Will Pfleger <wpfleger@squareup.com>
Signed-off-by: Will Pfleger <wpfleger@squareup.com>
The desktop stub creation loop referenced old sprout-* binary names that no
longer match the renamed crate outputs (buzz-acp, buzz-agent, buzz-dev-mcp,
buzz).

Co-authored-by: Will Pfleger <wpfleger@squareup.com>
Signed-off-by: Will Pfleger <wpfleger@squareup.com>
…kerfile, and prometheus.yml

Co-authored-by: Will Pfleger <wpfleger96@gmail.com>
Signed-off-by: Will Pfleger <wpfleger96@gmail.com>
Desktop's sprout-core/sprout-persona/sprout-sdk path dependencies pointed
at the old crate directory names which no longer exist after the rename.
Use package aliases so desktop source code keeps importing as sprout_core
(Wes's PR 960 will handle the full desktop rename pass).

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Introduced by a recently-merged PR that added a use statement referencing
the old crate name. Missed during rebase conflict resolution because the
line was in a non-conflicting hunk.

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
@wpfleger96 wpfleger96 force-pushed the duncan/buzz-backend-rename branch from 8f25396 to 62a87a0 Compare June 10, 2026 23:16
@wpfleger96 wpfleger96 merged commit d99ad13 into main Jun 10, 2026
14 of 16 checks passed
@wpfleger96 wpfleger96 deleted the duncan/buzz-backend-rename branch June 10, 2026 23:29
tellaho added a commit that referenced this pull request Jun 11, 2026
`_ensure-sidecar-stubs` was renamed to produce `buzz-*` stub filenames as
part of #958, but `desktop/src-tauri/tauri.conf.json` still declares its
`externalBin` entries as `binaries/sprout-{acp,agent,dev-mcp,...}` and the
`staging` recipe also copies the real binary to `binaries/sprout-${TARGET}`.
The mismatch causes tauri-cli to abort with:

    resource path `binaries/sprout-acp-aarch64-apple-darwin` doesn't exist

Revert the stub names to `sprout-*` so they match the tauri.conf.json
contract and the staging recipe's `cp` target. A full buzz rename
(tauri.conf.json + staging cp + stubs) can come later as a single sweep.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
tellaho added a commit that referenced this pull request Jun 11, 2026
#958 renamed the cargo crates to buzz-* and updated `_ensure-sidecar-stubs`
to produce `buzz-*` stub filenames, but left `desktop/src-tauri/tauri.conf.json`
declaring `externalBin` as `binaries/sprout-*` and the `staging` /
`desktop-release-build` recipes still touching/copying `sprout-*` paths.
tauri-cli then aborts with:

    resource path `binaries/sprout-acp-aarch64-apple-darwin` doesn't exist

Update the three remaining sites (tauri.conf.json externalBin, staging cp
target, desktop-release-build stub touches) to `buzz-*` so everything
agrees on the rename direction.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
tellaho added a commit that referenced this pull request Jun 11, 2026
#958 renamed SPROUT_* env vars to BUZZ_* in scripts/instance-env.sh but
missed the `dev` and `staging` just recipes, which still reference
SPROUT_TAURI_CONFIG, SPROUT_VITE_PORT, and SPROUT_RELAY_URL. Running
`just dev` or `just staging` on a fresh checkout fails with
`SyntaxError: "undefined" is not valid JSON` because the recipes try to
JSON.parse an unset env var.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
tellaho added a commit that referenced this pull request Jun 11, 2026
#958 renamed the cargo crates to buzz-* and updated `_ensure-sidecar-stubs`
to produce `buzz-*` stub filenames, but left `desktop/src-tauri/tauri.conf.json`
declaring `externalBin` as `binaries/sprout-*` and the `staging` /
`desktop-release-build` recipes still touching/copying `sprout-*` paths.
tauri-cli then aborts with:

    resource path `binaries/sprout-acp-aarch64-apple-darwin` doesn't exist

Update the three remaining sites (tauri.conf.json externalBin, staging cp
target, desktop-release-build stub touches) to `buzz-*` so everything
agrees on the rename direction.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
tellaho added a commit that referenced this pull request Jun 11, 2026
#958 renamed SPROUT_* env vars to BUZZ_* in scripts/instance-env.sh but
missed the `dev` and `staging` just recipes, which still reference
SPROUT_TAURI_CONFIG, SPROUT_VITE_PORT, and SPROUT_RELAY_URL. Running
`just dev` or `just staging` on a fresh checkout fails with
`SyntaxError: "undefined" is not valid JSON` because the recipes try to
JSON.parse an unset env var.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
tellaho added a commit that referenced this pull request Jun 11, 2026
#958 renamed the cargo crates to buzz-* and updated `_ensure-sidecar-stubs`
to produce `buzz-*` stub filenames, but left `desktop/src-tauri/tauri.conf.json`
declaring `externalBin` as `binaries/sprout-*` and the `staging` /
`desktop-release-build` recipes still touching/copying `sprout-*` paths.
tauri-cli then aborts with:

    resource path `binaries/sprout-acp-aarch64-apple-darwin` doesn't exist

Update the three remaining sites (tauri.conf.json externalBin, staging cp
target, desktop-release-build stub touches) to `buzz-*` so everything
agrees on the rename direction.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
tellaho added a commit that referenced this pull request Jun 11, 2026
The staging recipe now exports BUZZ_RELAY_URL, but the desktop shell
still read SPROUT_RELAY_URL — so `just staging` would launch fine while
the app silently connected to ws://localhost:3000 instead of the
staging relay (and sidecars, which already read BUZZ_RELAY_URL, would
point at staging: split-brain). Rename the shell's relay env vars and
the build-time baked pair to BUZZ_* to match instance-env.sh and the
buzz-* crates.

The managed-agent spawn handoff (SPROUT_RELAY_URL/SPROUT_PRIVATE_KEY/
SPROUT_ACP_* in managed_agents/) is a separate pre-existing gap from
#958 and is left for a follow-up.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants