diff --git a/CLAUDE.md b/CLAUDE.md index c633753c..1a1e9a7a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,4 +1,4 @@ -# vibescrobble +# didbot ## Copywriting diff --git a/crates/didbot-index/Cargo.toml b/crates/didbot-index/Cargo.toml index 670101df..9c3ab3e0 100644 --- a/crates/didbot-index/Cargo.toml +++ b/crates/didbot-index/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "didbot-index" -description = "Finds vibescrobble personal data servers and reads the agent feeds worth indexing." +description = "Finds didbot personal data servers and reads the agent feeds worth indexing." version.workspace = true edition.workspace = true rust-version.workspace = true diff --git a/crates/didbot-index/src/bin/didbot-survey.rs b/crates/didbot-index/src/bin/didbot-survey.rs index b1418910..11862bb2 100644 --- a/crates/didbot-index/src/bin/didbot-survey.rs +++ b/crates/didbot-index/src/bin/didbot-survey.rs @@ -1,4 +1,4 @@ -//! Surveys the configured vibescrobble servers and prints what would be +//! Surveys the configured didbot servers and prints what would be //! indexed. //! //! Usage: `didbot-survey [--voucher ] [--servers ] [--feed diff --git a/crates/didbot-index/src/directory.rs b/crates/didbot-index/src/directory.rs index 6ec3dd7a..41469e31 100644 --- a/crates/didbot-index/src/directory.rs +++ b/crates/didbot-index/src/directory.rs @@ -229,7 +229,7 @@ impl ServerDirectory for StaticDirectory { /// /// The chain is: a voucher's DID resolves to their personal data server, that /// server holds their `zone.quernstone.agent.vouch` records, each live vouch -/// names a subject, and the subject's DID resolves to the vibescrobble server +/// names a subject, and the subject's DID resolves to the didbot server /// to read and bounds what may be read from it. /// /// The list of vouchers is configuration, and it is the only configuration diff --git a/crates/didbot-index/src/handle.rs b/crates/didbot-index/src/handle.rs index a20b829c..01cab1ee 100644 --- a/crates/didbot-index/src/handle.rs +++ b/crates/didbot-index/src/handle.rs @@ -23,7 +23,7 @@ //! `did:plc` the two directions come from two parties — a website or a DNS //! zone on one side, the PLC directory on the other — and the round trip is //! what stops either from renaming an account alone. For a `did:web` under a -//! vibescrobble zone, the same server answers both, so a hostile one can make +//! didbot zone, the same server answers both, so a hostile one can make //! itself agree with itself and the round trip proves only self-consistency. //! What it cannot do is hold a name outside its zone, and that is the check //! the survey makes for free. diff --git a/crates/didbot-index/src/lib.rs b/crates/didbot-index/src/lib.rs index b914305f..7a4053d9 100644 --- a/crates/didbot-index/src/lib.rs +++ b/crates/didbot-index/src/lib.rs @@ -26,7 +26,7 @@ //! //! A [`Target`] carries both, deliberately apart. The *endpoint* comes out of //! the subject's DID document and may be any host: an atproto account is free -//! to name a hosting provider, and a vibescrobble server is no different. The +//! to name a hosting provider, and a didbot server is no different. The //! *[`Authority`]* comes off the vouched DID itself — for a `did:web`, the //! hostname in the identifier — so no matter which host answers, it can only //! answer for names at or below the one the human vouched for. diff --git a/crates/didbot-index/src/replay.rs b/crates/didbot-index/src/replay.rs index 32dc2425..76fc23c9 100644 --- a/crates/didbot-index/src/replay.rs +++ b/crates/didbot-index/src/replay.rs @@ -139,7 +139,7 @@ impl Recording { /// The zone the recorded accounts were minted under, if it can be told. /// /// An index refuses to survey a server whose `/health` does not name a - /// zone — that is how it tells a vibescrobble server from anything else + /// zone — that is how it tells a didbot server from anything else /// answering on a port — so a replay has to name one or it is a firehose /// nobody will read past. /// diff --git a/crates/didbot-index/src/report.rs b/crates/didbot-index/src/report.rs index 6f75a162..893525db 100644 --- a/crates/didbot-index/src/report.rs +++ b/crates/didbot-index/src/report.rs @@ -84,12 +84,12 @@ pub enum Rejection { /// The AT-URI of the record that revoked it. by: String, }, - /// The health endpoint answered, but not as a vibescrobble server. + /// The health endpoint answered, but not as a didbot server. /// /// Its own zone is the one thing a server must be able to state: what it /// may speak for is decided against that zone. - #[error("{server}: answered /health without a zone; this is not a vibescrobble server")] - NotVibescrobble { + #[error("{server}: answered /health without a zone; this is not a didbot server")] + NotDidbot { /// The server that was read. server: String, }, diff --git a/crates/didbot-index/src/resolve.rs b/crates/didbot-index/src/resolve.rs index 20e40f02..c1122691 100644 --- a/crates/didbot-index/src/resolve.rs +++ b/crates/didbot-index/src/resolve.rs @@ -3,7 +3,7 @@ //! Two methods, because those are the two this system actually meets. A human //! vouching for their agents is an ordinary atproto account, so their DID is //! almost always a `did:plc` resolved through the PLC directory. The thing -//! they vouch *for* is a vibescrobble server or an account on one, which is a +//! they vouch *for* is a didbot server or an account on one, which is a //! `did:web` resolved from the hostname it names. //! //! Neither answer is trusted further than it goes. The document's `id` is diff --git a/crates/didbot-index/src/server.rs b/crates/didbot-index/src/server.rs index f95c9f7d..211f4bb2 100644 --- a/crates/didbot-index/src/server.rs +++ b/crates/didbot-index/src/server.rs @@ -32,7 +32,7 @@ pub enum UrlError { NoHost(String), } -/// A vibescrobble personal data server, as a base URL and the host it names. +/// A didbot personal data server, as a base URL and the host it names. /// /// The hostname is kept beside the URL because it is the anchor for every /// containment decision this crate makes, and re-parsing it at each use is how diff --git a/crates/didbot-index/src/survey.rs b/crates/didbot-index/src/survey.rs index 8a5854a8..68d2f2f8 100644 --- a/crates/didbot-index/src/survey.rs +++ b/crates/didbot-index/src/survey.rs @@ -115,7 +115,7 @@ impl Survey { } } -/// Reads vibescrobble servers over `H`. +/// Reads didbot servers over `H`. #[derive(Debug, Clone)] pub struct Indexer { http: H, @@ -260,11 +260,13 @@ impl Indexer { ) -> Result { let url = server.health_url(); let health: HealthView = fetch_json(&self.http, server.base_url(), &url).await?; - let zone = health.zone.filter(|zone| !zone.is_empty()).ok_or_else(|| { - Rejection::NotVibescrobble { - server: server.base_url().to_owned(), - } - })?; + let zone = + health + .zone + .filter(|zone| !zone.is_empty()) + .ok_or_else(|| Rejection::NotDidbot { + server: server.base_url().to_owned(), + })?; if let Authority::Host(host) = authority { if !hostname_is_at_or_below(&zone, host) && !hostname_is_at_or_below(host, &zone) { diff --git a/crates/didbot-index/src/tests.rs b/crates/didbot-index/src/tests.rs index 6c51e9ec..21793584 100644 --- a/crates/didbot-index/src/tests.rs +++ b/crates/didbot-index/src/tests.rs @@ -271,7 +271,7 @@ async fn reports_a_server_that_is_not_one_of_ours() { assert!(matches!( &survey.rejections()[0], - Rejection::NotVibescrobble { .. } + Rejection::NotDidbot { .. } )); } @@ -404,7 +404,7 @@ fn plain_vouch(subject: &str) -> Value { }) } -/// The service document the vibescrobble server serves on its zone host. +/// The service document the didbot server serves on its zone host. fn service_document() -> Value { let zone = Zone::new(ZONE) .expect("zone host is valid") @@ -429,7 +429,7 @@ fn did_web_url(did: &str) -> String { } /// The whole chain, stubbed: the voucher's DID, their repository, the vouch -/// records in it, the subject's DID, and the vibescrobble server itself. +/// records in it, the subject's DID, and the didbot server itself. fn chain(records: Vec, agents: Value) -> Arc { Arc::new(chain_stub(records, agents)) } diff --git a/crates/didbot-setup/Cargo.toml b/crates/didbot-setup/Cargo.toml index f795323d..34289968 100644 --- a/crates/didbot-setup/Cargo.toml +++ b/crates/didbot-setup/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "didbot-setup" -description = "Wires a machine's harness up to a vibescrobble stack, and says what is wrong with one that is already wired." +description = "Wires a machine's harness up to a didbot stack, and says what is wrong with one that is already wired." version.workspace = true edition.workspace = true rust-version.workspace = true diff --git a/crates/didbot-setup/README.md b/crates/didbot-setup/README.md index 637bf09d..2dd5e8e5 100644 --- a/crates/didbot-setup/README.md +++ b/crates/didbot-setup/README.md @@ -1,6 +1,6 @@ # didbot-setup -Wires this machine's harness to a vibescrobble stack, and says what is wrong +Wires this machine's harness to a didbot stack, and says what is wrong with one that is already wired. ```sh @@ -200,7 +200,7 @@ didbot-setup disk --clean # orphans only ```text 22.3G this worktree …/.claude/worktrees/dev-setup/target 10.1G in use …/.claude/worktrees/mst-diff-suite/target - 8.6G idle …/vibescrobble/target + 8.6G idle …/didbot/target 41.0G in total ``` diff --git a/crates/didbot-setup/src/bin/didbot-setup.rs b/crates/didbot-setup/src/bin/didbot-setup.rs index 08fd3be5..072d80cb 100644 --- a/crates/didbot-setup/src/bin/didbot-setup.rs +++ b/crates/didbot-setup/src/bin/didbot-setup.rs @@ -19,7 +19,7 @@ use didbot_stack::{Config as Stack, Profile, Service, ServiceKind}; /// What `--help` prints. const USAGE: &str = "\ -didbot-setup — wire this machine's harness to a vibescrobble stack +didbot-setup — wire this machine's harness to a didbot stack didbot-setup [check] what is wrong with the setup here didbot-setup apply make the changes, after showing them diff --git a/crates/didbot-setup/src/harness.rs b/crates/didbot-setup/src/harness.rs index 4d804786..d373cc09 100644 --- a/crates/didbot-setup/src/harness.rs +++ b/crates/didbot-setup/src/harness.rs @@ -104,7 +104,7 @@ const STOP_EVENTS: [&str; 2] = ["SubagentStop", "SessionEnd"]; /// /// A pattern rather than a literal tool name, and this is the reason the /// committed settings file never has to change again: a machine running two -/// scrobble hosts declares them as `vibescrobble` and `vibescrobble-beta`, and +/// scrobble hosts declares them as `didbot` and `vibescrobble-beta`, and /// one anchored expression covers every host this project will ever declare. /// The hook re-checks the tool name itself, so a matcher slightly broader than /// the truth costs a process rather than a wrong rewrite. diff --git a/crates/didbot-setup/src/lib.rs b/crates/didbot-setup/src/lib.rs index 557caeff..67f4c61e 100644 --- a/crates/didbot-setup/src/lib.rs +++ b/crates/didbot-setup/src/lib.rs @@ -1,4 +1,4 @@ -//! Wires a machine's harness up to a vibescrobble stack, and says what is +//! Wires a machine's harness up to a didbot stack, and says what is //! wrong with one that is already wired. //! //! # What this is for diff --git a/crates/didbot-swarm/src/lib.rs b/crates/didbot-swarm/src/lib.rs index 9d88c7fd..f803aef8 100644 --- a/crates/didbot-swarm/src/lib.rs +++ b/crates/didbot-swarm/src/lib.rs @@ -166,7 +166,7 @@ impl Pds { let health: Health = self.get(&url).await?; health.zone.ok_or_else(|| SwarmError::Malformed { url, - message: "no zone; this is not a vibescrobble server".to_owned(), + message: "no zone; this is not a didbot server".to_owned(), }) } diff --git a/docs/overview.md b/docs/overview.md index bd8b0967..f13ad9f2 100644 --- a/docs/overview.md +++ b/docs/overview.md @@ -1,4 +1,4 @@ -# vibescrobble +# didbot An attestation-gated identity provider for AI agents, built as a custom ATProto personal data server. Agent contexts are provisioned real, protocol-native diff --git a/plan/README.md b/plan/README.md index 229e6ed7..bb06df64 100644 --- a/plan/README.md +++ b/plan/README.md @@ -1,6 +1,6 @@ # Plan -What vibescrobble has built and what it is building. One file per epic. +What didbot has built and what it is building. One file per epic. [milestones.md](milestones.md) is the other view of the same work: releases worth naming, in prose, and the only place a milestone is named. diff --git a/plan/stamp-contract.md b/plan/stamp-contract.md index 880299f6..dd0b5c5e 100644 --- a/plan/stamp-contract.md +++ b/plan/stamp-contract.md @@ -27,8 +27,8 @@ split. `SCROBBLE_TOOL`, `SCROBBLE_SERVER`, `is_scrobble_tool` and be trusted knows a product's tool by name. - [ ] **Say what the stamp is, apart from what writes it.** Six keys — - `_vibescrobbleAgentDid`, `_vibescrobbleTurn`, `_vibescrobbleModel`, - `_vibescrobbleEffort`, `_vibescrobbleAgentType`, `_vibescrobbleParentDid` + `_didbotAgentDid`, `_didbotTurn`, `_didbotModel`, + `_didbotEffort`, `_didbotAgentType`, `_didbotParentDid` — and the rule that each is droppable on its own. A reader must be able to implement against the contract without reading this crate. - [ ] **Keep the property, not the spelling.** The stamp is trusted because the diff --git a/web/index.html b/web/index.html index f21a38e9..b6ed0121 100644 --- a/web/index.html +++ b/web/index.html @@ -3,7 +3,7 @@ - vibescrobble appview + didbot appview @@ -12,7 +12,7 @@
- vibescrobble + didbot mock