From 6a589742be2eec6adcc922715b5bf12d75ebdcd5 Mon Sep 17 00:00:00 2001 From: "@permadeath.com" Date: Fri, 28 Aug 2026 19:19:46 -0400 Subject: [PATCH] refactor(stack)!: rename the crate to didbot-stack Co-Authored-By: Claude Opus 5 (1M context) Change-Id: I310bd49cf74f3876091c3832ead8147250eee41b --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- crates/didbot-hookd/Cargo.toml | 2 +- crates/didbot-hookd/README.md | 2 +- crates/didbot-hookd/src/config.rs | 2 +- crates/{vibescrobble-stack => didbot-stack}/Cargo.toml | 2 +- crates/{vibescrobble-stack => didbot-stack}/README.md | 2 +- crates/{vibescrobble-stack => didbot-stack}/src/config.rs | 0 .../{vibescrobble-stack => didbot-stack}/src/defaults.rs | 0 crates/{vibescrobble-stack => didbot-stack}/src/lib.rs | 0 .../{vibescrobble-stack => didbot-stack}/src/validate.rs | 0 crates/vibescrobble-setup/Cargo.toml | 2 +- crates/vibescrobble-setup/src/apply.rs | 2 +- crates/vibescrobble-setup/src/bin/vibescrobble-setup.rs | 4 ++-- crates/vibescrobble-setup/src/check.rs | 4 ++-- crates/vibescrobble/Cargo.toml | 2 +- crates/vibescrobble/tests/conformance/wire.rs | 4 ++-- docs/running-locally.md | 2 +- plan/dev-setup.md | 4 ++-- 19 files changed, 22 insertions(+), 22 deletions(-) rename crates/{vibescrobble-stack => didbot-stack}/Cargo.toml (93%) rename crates/{vibescrobble-stack => didbot-stack}/README.md (99%) rename crates/{vibescrobble-stack => didbot-stack}/src/config.rs (100%) rename crates/{vibescrobble-stack => didbot-stack}/src/defaults.rs (100%) rename crates/{vibescrobble-stack => didbot-stack}/src/lib.rs (100%) rename crates/{vibescrobble-stack => didbot-stack}/src/validate.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index b09e8c19..88f38bbf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -591,7 +591,7 @@ dependencies = [ "thiserror", "time", "tokio", - "vibescrobble-stack", + "didbot-stack", ] [[package]] @@ -2901,7 +2901,7 @@ dependencies = [ "vibescrobble-mcp", "vibescrobble-pds", "vibescrobble-serve", - "vibescrobble-stack", + "didbot-stack", ] [[package]] @@ -3025,11 +3025,11 @@ dependencies = [ "tokio", "toml", "vibescrobble-mcp", - "vibescrobble-stack", + "didbot-stack", ] [[package]] -name = "vibescrobble-stack" +name = "didbot-stack" version = "0.1.0" dependencies = [ "serde", diff --git a/Cargo.toml b/Cargo.toml index fa8e0520..bf787612 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,7 +31,7 @@ didbot-key = { version = "0.1.0", path = "crates/didbot-key" } didbot-lexicon = { version = "0.1.0", path = "crates/didbot-lexicon" } didbot-data = { version = "0.1.0", path = "crates/didbot-data" } didbot-repo = { version = "0.1.0", path = "crates/didbot-repo" } -vibescrobble-stack = { version = "0.1.0", path = "crates/vibescrobble-stack" } +didbot-stack = { version = "0.1.0", path = "crates/didbot-stack" } vibescrobble-setup = { version = "0.1.0", path = "crates/vibescrobble-setup" } # jacquard is pinned exactly. Its unreleased mainline moves serde_ipld_dagcbor, diff --git a/crates/didbot-hookd/Cargo.toml b/crates/didbot-hookd/Cargo.toml index 715c1711..00aa2a07 100644 --- a/crates/didbot-hookd/Cargo.toml +++ b/crates/didbot-hookd/Cargo.toml @@ -19,7 +19,7 @@ tokio.workspace = true didbot-attest.workspace = true didbot-hook.workspace = true didbot-identity.workspace = true -vibescrobble-stack.workspace = true +didbot-stack.workspace = true [lints] workspace = true diff --git a/crates/didbot-hookd/README.md b/crates/didbot-hookd/README.md index b903ab4e..fd47e950 100644 --- a/crates/didbot-hookd/README.md +++ b/crates/didbot-hookd/README.md @@ -190,7 +190,7 @@ server on startup, and identical on every machine. It authenticates nothing. `VIBESCROBBLE_PDS_URL` set explicitly always wins. Unset, the server is resolved from the working directory on the hook payload against -`~/.config/vibescrobble/stack.toml` — see `vibescrobble-stack` — and a machine +`~/.config/vibescrobble/stack.toml` — see `didbot-stack` — and a machine with no such file gets `http://localhost:3000`, which is what the development scripts bind. Resolution happens once, when an account is minted, and the answer is recorded beside the DID; a subagent that creates a worktree and moves diff --git a/crates/didbot-hookd/src/config.rs b/crates/didbot-hookd/src/config.rs index 62573405..ff7ec180 100644 --- a/crates/didbot-hookd/src/config.rs +++ b/crates/didbot-hookd/src/config.rs @@ -120,7 +120,7 @@ impl Config { if self.pinned_pds_url { return self.clone(); } - let stack = match vibescrobble_stack::Config::load_default() { + let stack = match didbot_stack::Config::load_default() { Ok(stack) => stack, Err(err) => { diag(format_args!("{err}; continuing on the defaults")); diff --git a/crates/vibescrobble-stack/Cargo.toml b/crates/didbot-stack/Cargo.toml similarity index 93% rename from crates/vibescrobble-stack/Cargo.toml rename to crates/didbot-stack/Cargo.toml index fbc48c03..cbd53d82 100644 --- a/crates/vibescrobble-stack/Cargo.toml +++ b/crates/didbot-stack/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "vibescrobble-stack" +name = "didbot-stack" description = "Which services exist on this machine, and which one a directory talks to." version.workspace = true edition.workspace = true diff --git a/crates/vibescrobble-stack/README.md b/crates/didbot-stack/README.md similarity index 99% rename from crates/vibescrobble-stack/README.md rename to crates/didbot-stack/README.md index 8f0afb15..df46b773 100644 --- a/crates/vibescrobble-stack/README.md +++ b/crates/didbot-stack/README.md @@ -1,4 +1,4 @@ -# vibescrobble-stack +# didbot-stack Which services exist on this machine, and which one a directory talks to. diff --git a/crates/vibescrobble-stack/src/config.rs b/crates/didbot-stack/src/config.rs similarity index 100% rename from crates/vibescrobble-stack/src/config.rs rename to crates/didbot-stack/src/config.rs diff --git a/crates/vibescrobble-stack/src/defaults.rs b/crates/didbot-stack/src/defaults.rs similarity index 100% rename from crates/vibescrobble-stack/src/defaults.rs rename to crates/didbot-stack/src/defaults.rs diff --git a/crates/vibescrobble-stack/src/lib.rs b/crates/didbot-stack/src/lib.rs similarity index 100% rename from crates/vibescrobble-stack/src/lib.rs rename to crates/didbot-stack/src/lib.rs diff --git a/crates/vibescrobble-stack/src/validate.rs b/crates/didbot-stack/src/validate.rs similarity index 100% rename from crates/vibescrobble-stack/src/validate.rs rename to crates/didbot-stack/src/validate.rs diff --git a/crates/vibescrobble-setup/Cargo.toml b/crates/vibescrobble-setup/Cargo.toml index c13fca9a..e0bcccf8 100644 --- a/crates/vibescrobble-setup/Cargo.toml +++ b/crates/vibescrobble-setup/Cargo.toml @@ -18,7 +18,7 @@ tokio.workspace = true didbot-hook.workspace = true didbot-hookd.workspace = true vibescrobble-mcp.workspace = true -vibescrobble-stack.workspace = true +didbot-stack.workspace = true [lints] workspace = true diff --git a/crates/vibescrobble-setup/src/apply.rs b/crates/vibescrobble-setup/src/apply.rs index be87efc7..a592a0d8 100644 --- a/crates/vibescrobble-setup/src/apply.rs +++ b/crates/vibescrobble-setup/src/apply.rs @@ -6,7 +6,7 @@ use std::path::Path; -use vibescrobble_stack::Config as Stack; +use didbot_stack::Config as Stack; use crate::check; use crate::edit::{self, Edit, FileError}; diff --git a/crates/vibescrobble-setup/src/bin/vibescrobble-setup.rs b/crates/vibescrobble-setup/src/bin/vibescrobble-setup.rs index c652ddc9..9e955801 100644 --- a/crates/vibescrobble-setup/src/bin/vibescrobble-setup.rs +++ b/crates/vibescrobble-setup/src/bin/vibescrobble-setup.rs @@ -10,12 +10,12 @@ use std::io::{IsTerminal, Write}; use std::path::{Path, PathBuf}; use std::process::ExitCode; +use didbot_stack::{Config as Stack, Profile, Service, ServiceKind}; use vibescrobble_setup::apply::{self, Undone}; use vibescrobble_setup::check::{self, Level}; use vibescrobble_setup::disk; use vibescrobble_setup::harness::Scope; use vibescrobble_setup::{ledger::Ledger, verify}; -use vibescrobble_stack::{Config as Stack, Profile, Service, ServiceKind}; /// What `--help` prints. const USAGE: &str = "\ @@ -86,7 +86,7 @@ fn main() -> ExitCode { } }; - let config_path = vibescrobble_stack::default_config_path(); + let config_path = didbot_stack::default_config_path(); let stack = match Stack::load(&config_path) { Ok(stack) => stack, Err(err) => { diff --git a/crates/vibescrobble-setup/src/check.rs b/crates/vibescrobble-setup/src/check.rs index 4dedacac..a2b24aba 100644 --- a/crates/vibescrobble-setup/src/check.rs +++ b/crates/vibescrobble-setup/src/check.rs @@ -14,7 +14,7 @@ use std::collections::BTreeMap; use std::path::{Path, PathBuf}; use std::time::Duration; -use vibescrobble_stack::{Config as Stack, ServiceKind}; +use didbot_stack::{Config as Stack, ServiceKind}; use crate::edit; use crate::harness::{ClaudeCode, Desired, Harness, Scope}; @@ -663,7 +663,7 @@ pub(crate) fn desired(dir: &Path, stack: &Stack) -> Option { // The default profile keeps the plain name, so a machine that has // never been configured declares what the committed `.mcp.json` // already says and nothing has to change. - server: if profile == vibescrobble_stack::DEFAULT_PROFILE { + server: if profile == didbot_stack::DEFAULT_PROFILE { didbot_hook::SCROBBLE_SERVER.to_owned() } else { format!("{}-{profile}", didbot_hook::SCROBBLE_SERVER) diff --git a/crates/vibescrobble/Cargo.toml b/crates/vibescrobble/Cargo.toml index 499e4feb..51a79b63 100644 --- a/crates/vibescrobble/Cargo.toml +++ b/crates/vibescrobble/Cargo.toml @@ -35,7 +35,7 @@ vibescrobble-mcp.workspace = true # And the stack description, for the same reason once more: it names the log # filter the development scripts export, and the server is what that filter has # to mean the same thing to. -vibescrobble-stack.workspace = true +didbot-stack.workspace = true # And the hook handler, so that `tests/hook_to_record.rs` can drive the whole # path from a harness payload to a stored record. It is the only crate that can # see the hook, the scrobble host and the server at once, which is the same diff --git a/crates/vibescrobble/tests/conformance/wire.rs b/crates/vibescrobble/tests/conformance/wire.rs index 28a7f46c..7ba04fa5 100644 --- a/crates/vibescrobble/tests/conformance/wire.rs +++ b/crates/vibescrobble/tests/conformance/wire.rs @@ -895,7 +895,7 @@ async fn the_turn_header_does_not_reach_the_record() { /// The quiet filter the development scripts export is the server's own default. /// -/// Two constants again, and for the same reason: `vibescrobble-stack` is read +/// Two constants again, and for the same reason: `didbot-stack` is read /// by the hook, a process that makes two HTTP calls and exits, and depending /// on the server crate to learn a string would pull axum into it. If these /// drift, turning debugging off leaves the stack running under a filter @@ -903,7 +903,7 @@ async fn the_turn_header_does_not_reach_the_record() { #[test] fn the_quiet_log_filter_is_the_servers_own_default() { assert_eq!( - vibescrobble_stack::QUIET_LOG_FILTER, + didbot_stack::QUIET_LOG_FILTER, vibescrobble::serve::DEFAULT_LOG_FILTER ); } diff --git a/docs/running-locally.md b/docs/running-locally.md index d02deee1..e2d3fb47 100644 --- a/docs/running-locally.md +++ b/docs/running-locally.md @@ -41,7 +41,7 @@ cargo run -p vibescrobble-setup -- verify A machine that has never been configured runs one of everything on the ports below and needs no configuration file at all. For two personal data servers, or two scrobble hosts over one server, see -[vibescrobble-stack](../crates/vibescrobble-stack/README.md). Each `dev-*.sh` +[didbot-stack](../crates/didbot-stack/README.md). Each `dev-*.sh` sources `scripts/dev-profile.sh`, which puts the current directory's profile in the environment, so a worktree bound to a second stack gets that stack's ports with nothing here edited. A variable already set still wins: diff --git a/plan/dev-setup.md b/plan/dev-setup.md index a2f8d8d4..01024cab 100644 --- a/plan/dev-setup.md +++ b/plan/dev-setup.md @@ -2,7 +2,7 @@ id: dev-setup title: One command takes a new machine to a working stack status: open -crates: [vibescrobble-setup, vibescrobble-stack, didbot-hookd, didbot-hook, vibescrobble-mcp, vibescrobble-serve] +crates: [vibescrobble-setup, didbot-stack, didbot-hookd, didbot-hook, vibescrobble-mcp, vibescrobble-serve] dependsOn: [] exitCriterion: > On a machine that has never run this, one command ends with an agent @@ -25,7 +25,7 @@ not. ## What the shape turned out to be Three tables in `~/.config/vibescrobble/stack.toml`, read by -[vibescrobble-stack](../crates/vibescrobble-stack/README.md): a *service* is +[didbot-stack](../crates/didbot-stack/README.md): a *service* is one process, a *profile* names one service per role, and a *binding* maps a directory to a profile. -- 2.51.2