diff --git a/Cargo.lock b/Cargo.lock index d767cd76..33c2e82e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -554,7 +554,7 @@ dependencies = [ "toml", "tower", "vibescrobble-pds", - "vibescrobble-serve", + "didbot-serve", ] [[package]] @@ -3030,7 +3030,7 @@ dependencies = [ ] [[package]] -name = "vibescrobble-serve" +name = "didbot-serve" version = "0.1.0" dependencies = [ "axum", diff --git a/Cargo.toml b/Cargo.toml index d328acb7..05439b1a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ didbot-name = { version = "0.1.0", path = "crates/didbot-name" } vibescrobble-pds = { version = "0.1.0", path = "crates/vibescrobble-pds" } didbot-hookd = { version = "0.1.0", path = "crates/didbot-hookd" } didbot-mcp = { version = "0.1.0", path = "crates/didbot-mcp" } -vibescrobble-serve = { version = "0.1.0", path = "crates/vibescrobble-serve" } +didbot-serve = { version = "0.1.0", path = "crates/didbot-serve" } didbot-query = { version = "0.1.0", path = "crates/didbot-query" } didbot-swarm = { version = "0.1.0", path = "crates/didbot-swarm" } didbot-hook = { version = "0.1.0", path = "crates/didbot-hook" } @@ -74,7 +74,7 @@ tower = { version = "0.5", features = ["util"] } # are what a backtrace needs — file and line for every frame — and they are a # fraction of the size of the full DWARF a stepping debugger wants. # -# Measured by building `vibescrobble-dev` from cold into a target directory of +# Measured by building `didbot-dev` from cold into a target directory of # its own, once with each setting, so that neither answer was polluted by # artefacts of the other: the target directory went from 1.1 GB to 827 MB, the # binary from 106 MB to 43 MB, and the build from 59.6 s to 47.2 s. The diff --git a/crates/didbot-hookd/README.md b/crates/didbot-hookd/README.md index c9757ba5..816cb96d 100644 --- a/crates/didbot-hookd/README.md +++ b/crates/didbot-hookd/README.md @@ -125,7 +125,7 @@ Then start the development server, which listens on `http://localhost:3000` with the defaults this hook assumes: ```sh -cargo run --bin vibescrobble-dev +cargo run --bin didbot-dev ``` The hook does not decide permissions — it only rewrites the tool input — so the diff --git a/crates/didbot-hookd/src/config.rs b/crates/didbot-hookd/src/config.rs index 92085ddb..78a33785 100644 --- a/crates/didbot-hookd/src/config.rs +++ b/crates/didbot-hookd/src/config.rs @@ -3,7 +3,7 @@ //! A hook is invoked by the harness with a fixed command line it does not //! control, so there are no flags to parse. Everything comes from environment //! variables, all prefixed `VIBESCROBBLE_`, and every one has a default that -//! matches `cargo run --bin vibescrobble-dev` with no arguments. Pasting the +//! matches `cargo run --bin didbot-dev` with no arguments. Pasting the //! hooks block from the README into `settings.json` and starting the //! development server is meant to be enough. @@ -26,7 +26,7 @@ pub const ENV_NODE_ID: &str = "VIBESCROBBLE_NODE_ID"; /// Overrides the state file path. Default [`default_state_path`]. pub const ENV_STATE_FILE: &str = "VIBESCROBBLE_HOOK_STATE"; -/// Where `vibescrobble-dev` listens with no arguments. +/// Where `didbot-dev` listens with no arguments. pub const DEFAULT_PDS_URL: &str = "http://localhost:3000"; /// The development server's built-in secret. @@ -37,7 +37,7 @@ pub const DEFAULT_PDS_URL: &str = "http://localhost:3000"; /// and, before that, a real attestation backend. pub const DEFAULT_SHARED_SECRET: &str = "quernstone-placeholder-secret"; -/// The only node id `vibescrobble-dev` allowlists. +/// The only node id `didbot-dev` allowlists. pub const DEFAULT_NODE_ID: &str = "dev-node"; /// How long any request to the personal data server may take, in seconds. diff --git a/crates/didbot-hookd/src/pds.rs b/crates/didbot-hookd/src/pds.rs index 0fe910f5..0cd896a7 100644 --- a/crates/didbot-hookd/src/pds.rs +++ b/crates/didbot-hookd/src/pds.rs @@ -2,7 +2,7 @@ //! //! Provisioning and deletion, over `zone.quernstone.provisionAgent` and //! `zone.quernstone.deleteAgent`. The request bodies are built here rather -//! than borrowed from `vibescrobble-serve`, so that the hook does not depend +//! than borrowed from `didbot-serve`, so that the hook does not depend //! on the server crate to talk to the server over HTTP. //! //! # Secrets @@ -73,7 +73,7 @@ const MAX_ERROR_BODY: usize = 512; /// A claim rendered for the wire. /// -/// Mirrors `vibescrobble_serve::wire::WireClaim`. Duplicated rather than +/// Mirrors `didbot_serve::wire::WireClaim`. Duplicated rather than /// shared because a hook depending on the server crate would pull axum into a /// binary that makes two HTTP calls. #[derive(Debug, Serialize)] @@ -87,7 +87,7 @@ struct WireClaim { /// The harness's account of an agent, as the server takes it. /// -/// Mirrors `vibescrobble_serve::wire::WireRegistration`, duplicated for the same +/// Mirrors `didbot_serve::wire::WireRegistration`, duplicated for the same /// reason the claim's wire type is. Only the fields a harness can answer: the /// name, /// the creation time and the scrobble switch are the server's own knowledge diff --git a/crates/didbot-repo/tests/did_document.rs b/crates/didbot-repo/tests/did_document.rs index 0ae8f199..319844d5 100644 --- a/crates/didbot-repo/tests/did_document.rs +++ b/crates/didbot-repo/tests/did_document.rs @@ -9,7 +9,7 @@ //! signing key is dropped before the check, so it cannot be reached even by //! accident. //! -//! `crates/vibescrobble-serve/tests` runs the same shape one step further out, +//! `crates/didbot-serve/tests` runs the same shape one step further out, //! over HTTP against a live server's `/.well-known/did.json`. use didbot_identity::{AgentDid, DidDocument}; diff --git a/crates/vibescrobble-serve/Cargo.toml b/crates/didbot-serve/Cargo.toml similarity index 98% rename from crates/vibescrobble-serve/Cargo.toml rename to crates/didbot-serve/Cargo.toml index fc4733dc..43547c49 100644 --- a/crates/vibescrobble-serve/Cargo.toml +++ b/crates/didbot-serve/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "vibescrobble-serve" +name = "didbot-serve" description = "HTTP surface and the development server." version.workspace = true edition.workspace = true diff --git a/crates/vibescrobble-serve/src/bin/vibescrobble-dev.rs b/crates/didbot-serve/src/bin/didbot-dev.rs similarity index 99% rename from crates/vibescrobble-serve/src/bin/vibescrobble-dev.rs rename to crates/didbot-serve/src/bin/didbot-dev.rs index 29ffe0ca..70bd733c 100644 --- a/crates/vibescrobble-serve/src/bin/vibescrobble-dev.rs +++ b/crates/didbot-serve/src/bin/didbot-dev.rs @@ -1,7 +1,7 @@ //! One command that boots the whole development stack. //! //! Shared-secret attestation, loopback DNS and an account store, behind the -//! HTTP surface from [`vibescrobble_serve`], with every lifecycle transition +//! HTTP surface from [`didbot_serve`], with every lifecycle transition //! streamed to `/events` and written to the terminal. //! //! The store is in memory unless `--data ` is given, in which case @@ -41,7 +41,7 @@ use vibescrobble_pds::{ LifecycleSink, MemoryAccountStore, MemoryBlobStore, Naming, ProvisionRequest, Provisioner, RecordStore, RegistrationFacts, Registry, DEFAULT_HOLD, }; -use vibescrobble_serve::{ +use didbot_serve::{ app_with_streams, init_tracing, serve_router, BroadcastSink, Firehose, HealthTick, WireClaim, DEFAULT_HEALTH_INTERVAL, }; @@ -145,7 +145,7 @@ impl Default for Args { } const USAGE: &str = "\ -usage: vibescrobble-dev [options] +usage: didbot-dev [options] --port listen port (default 3000) --zone zone agents are minted under (default agents.localhost) @@ -605,7 +605,7 @@ where /// of the terminal, not to introduce the project. fn banner(args: &Args, pds_endpoint: &str, service_did: String, signer: &SharedSecretBackend) { let base = format!("http://localhost:{}", args.port); - println!("vibescrobble-dev"); + println!("didbot-dev"); println!(" zone {}", args.zone); println!(" listening [::]:{} (IPv4 and IPv6)", args.port); println!(" pds endpoint {pds_endpoint}"); diff --git a/crates/vibescrobble-serve/src/blobs.rs b/crates/didbot-serve/src/blobs.rs similarity index 100% rename from crates/vibescrobble-serve/src/blobs.rs rename to crates/didbot-serve/src/blobs.rs diff --git a/crates/vibescrobble-serve/src/error.rs b/crates/didbot-serve/src/error.rs similarity index 100% rename from crates/vibescrobble-serve/src/error.rs rename to crates/didbot-serve/src/error.rs diff --git a/crates/vibescrobble-serve/src/events.rs b/crates/didbot-serve/src/events.rs similarity index 100% rename from crates/vibescrobble-serve/src/events.rs rename to crates/didbot-serve/src/events.rs diff --git a/crates/vibescrobble-serve/src/firehose.rs b/crates/didbot-serve/src/firehose.rs similarity index 100% rename from crates/vibescrobble-serve/src/firehose.rs rename to crates/didbot-serve/src/firehose.rs diff --git a/crates/vibescrobble-serve/src/health.rs b/crates/didbot-serve/src/health.rs similarity index 100% rename from crates/vibescrobble-serve/src/health.rs rename to crates/didbot-serve/src/health.rs diff --git a/crates/vibescrobble-serve/src/lib.rs b/crates/didbot-serve/src/lib.rs similarity index 97% rename from crates/vibescrobble-serve/src/lib.rs rename to crates/didbot-serve/src/lib.rs index 0b511ea0..94baf220 100644 --- a/crates/vibescrobble-serve/src/lib.rs +++ b/crates/didbot-serve/src/lib.rs @@ -12,12 +12,12 @@ //! //! # Running it //! -//! The `vibescrobble-dev` binary in this crate wires a development stack -- +//! The `didbot-dev` binary in this crate wires a development stack -- //! shared-secret attestation, loopback DNS, an in-memory store -- and serves //! it, so that one command produces a live log of accounts being provisioned: //! //! ```text -//! cargo run -p vibescrobble-serve --bin vibescrobble-dev -- --demo 3 +//! cargo run -p didbot-serve --bin didbot-dev -- --demo 3 //! ``` //! //! # Routes diff --git a/crates/vibescrobble-serve/src/routes.rs b/crates/didbot-serve/src/routes.rs similarity index 100% rename from crates/vibescrobble-serve/src/routes.rs rename to crates/didbot-serve/src/routes.rs diff --git a/crates/vibescrobble-serve/src/tests.rs b/crates/didbot-serve/src/tests.rs similarity index 100% rename from crates/vibescrobble-serve/src/tests.rs rename to crates/didbot-serve/src/tests.rs diff --git a/crates/vibescrobble-serve/src/wire.rs b/crates/didbot-serve/src/wire.rs similarity index 100% rename from crates/vibescrobble-serve/src/wire.rs rename to crates/didbot-serve/src/wire.rs diff --git a/crates/vibescrobble-serve/tests/firehose_wire.rs b/crates/didbot-serve/tests/firehose_wire.rs similarity index 98% rename from crates/vibescrobble-serve/tests/firehose_wire.rs rename to crates/didbot-serve/tests/firehose_wire.rs index 4c7a7d80..3bb2ec32 100644 --- a/crates/vibescrobble-serve/tests/firehose_wire.rs +++ b/crates/didbot-serve/tests/firehose_wire.rs @@ -11,8 +11,8 @@ use std::path::PathBuf; +use didbot_serve::{CommitFrame, Info, InfoName}; use serde_json::Value; -use vibescrobble_serve::{CommitFrame, Info, InfoName}; /// Reads one vector, returning its event name and body. fn vector(name: &str) -> (String, Value) { diff --git a/crates/didbot-stack/src/lib.rs b/crates/didbot-stack/src/lib.rs index 7220f2ce..ce074f59 100644 --- a/crates/didbot-stack/src/lib.rs +++ b/crates/didbot-stack/src/lib.rs @@ -40,7 +40,7 @@ pub use config::{Binding, Config, ConfigError, Profile, Service, ServiceKind}; /// The filter every component runs under when nothing is turned up. /// -/// Duplicated from `vibescrobble_serve::DEFAULT_LOG_FILTER` rather than +/// Duplicated from `didbot_serve::DEFAULT_LOG_FILTER` rather than /// imported, because this crate 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. The two are checked against each other in the diff --git a/crates/didbot/Cargo.toml b/crates/didbot/Cargo.toml index 0ab68f36..27d3661f 100644 --- a/crates/didbot/Cargo.toml +++ b/crates/didbot/Cargo.toml @@ -16,7 +16,7 @@ didbot-hook.workspace = true didbot-identity.workspace = true didbot-key.workspace = true vibescrobble-pds.workspace = true -vibescrobble-serve.workspace = true +didbot-serve.workspace = true didbot-lexicon.workspace = true [dev-dependencies] diff --git a/crates/didbot/src/lib.rs b/crates/didbot/src/lib.rs index cbbbb4fa..c9adf6d5 100644 --- a/crates/didbot/src/lib.rs +++ b/crates/didbot/src/lib.rs @@ -9,7 +9,7 @@ pub use didbot_attest as attest; pub use didbot_hook as hook; pub use didbot_lexicon::{lexicon, nsid, nsid_syntax}; pub use vibescrobble_pds as pds; -pub use vibescrobble_serve as serve; +pub use didbot_serve as serve; #[doc = include_str!("../../../docs/architecture.md")] pub mod architecture {} diff --git a/crates/didbot/tests/conformance/wire.rs b/crates/didbot/tests/conformance/wire.rs index d11f495a..faac9d3e 100644 --- a/crates/didbot/tests/conformance/wire.rs +++ b/crates/didbot/tests/conformance/wire.rs @@ -834,12 +834,12 @@ async fn a_record_read_back_satisfies_the_lexicon_it_was_written_under() { fn the_scrobble_host_and_this_server_agree_on_the_turn_header() { assert_eq!( didbot_mcp::TURN_HEADER, - vibescrobble_serve::TURN_HEADER, + didbot_serve::TURN_HEADER, "the header the scrobble host sends is not the one this server reads" ); assert_eq!( didbot_mcp::TURN_MAX_LENGTH, - vibescrobble_serve::TURN_HEADER_MAX_LENGTH, + didbot_serve::TURN_HEADER_MAX_LENGTH, "one side would drop a turn identifier the other side would send" ); } diff --git a/crates/vibescrobble-pds/src/aturi.rs b/crates/vibescrobble-pds/src/aturi.rs index b015d0f2..150744fd 100644 --- a/crates/vibescrobble-pds/src/aturi.rs +++ b/crates/vibescrobble-pds/src/aturi.rs @@ -1,6 +1,6 @@ //! `at://` URIs: the names records answer to. //! -//! [`crate::records`] stores records and `vibescrobble-serve` hands out URIs +//! [`crate::records`] stores records and `didbot-serve` hands out URIs //! for them, but until now nothing in this project could read one back. That //! is the gap this module closes, and it is the reason an AT-URI parser lives //! in the repository crate rather than in identity or lexicon: an AT-URI's diff --git a/crates/vibescrobble-pds/tests/server.rs b/crates/vibescrobble-pds/tests/server.rs index 3c9139fc..8f8eb862 100644 --- a/crates/vibescrobble-pds/tests/server.rs +++ b/crates/vibescrobble-pds/tests/server.rs @@ -44,8 +44,7 @@ fn memory() -> Provisioner } fn scratch(name: &str) -> PathBuf { - let dir = - std::env::temp_dir().join(format!("vibescrobble-server-{name}-{}", std::process::id())); + let dir = std::env::temp_dir().join(format!("didbot-server-{name}-{}", std::process::id())); let _ = std::fs::remove_dir_all(&dir); dir } diff --git a/docs/conformance.md b/docs/conformance.md index 2874ac50..7d9c71d0 100644 --- a/docs/conformance.md +++ b/docs/conformance.md @@ -372,7 +372,7 @@ otherwise be the only evidence for. `didbot-repo/tests/car_framing.rs` walks the CARv1 framing back apart — every section as long as its prefix claims, every block hashing to the CID in front of it, a truncated file refused and a flipped byte breaking exactly one block — without decoding -anything. And `vibescrobble-serve`'s `sync` tests write records through the +anything. And `didbot-serve`'s `sync` tests write records through the HTTP surface, fetch the CAR through the HTTP surface, decode the commit block with a reader written from the specification rather than from this project's encoder, and verify its signature with a key taken out of diff --git a/docs/running-locally.md b/docs/running-locally.md index 1642a16d..d2c3ea5c 100644 --- a/docs/running-locally.md +++ b/docs/running-locally.md @@ -59,7 +59,7 @@ anyway; scrobbles are refused until the server is up. For the server alone, with some traffic to watch: ```sh -cargo run --bin vibescrobble-dev -- --demo 5 +cargo run --bin didbot-dev -- --demo 5 ``` which provisions five agents a second or so apart and exercises deletion and @@ -71,9 +71,9 @@ By default an account's handle is its own hostname, minted from the internal agent id. `--names` gives agents names instead: ```sh -cargo run --bin vibescrobble-dev -- --demo 5 --names mineral+creature # the dev stack's default -cargo run --bin vibescrobble-dev -- --names temper+colour+creature -cargo run --bin vibescrobble-dev -- --names chaos+./our-own-words.txt +cargo run --bin didbot-dev -- --demo 5 --names mineral+creature # the dev stack's default +cargo run --bin didbot-dev -- --names temper+colour+creature +cargo run --bin didbot-dev -- --names chaos+./our-own-words.txt ``` A *spec* is word lists joined with `+`, and each one contributes a part of the @@ -108,7 +108,7 @@ for a week should not look like one whose generator works. `--names-if-down` opts into the other behaviour: ```sh -cargo run --bin vibescrobble-dev -- --names cmd:./ask-a-model --names-if-down mood+blade +cargo run --bin didbot-dev -- --names cmd:./ask-a-model --names-if-down mood+blade ``` Two other forms exist for what a spec cannot say. `toml:` takes a @@ -132,7 +132,7 @@ keeps its accounts, their signing keys, their records and its name holds in a write-ahead log there: ```sh -cargo run --bin vibescrobble-dev -- --names mineral+creature --data ./pds-data +cargo run --bin didbot-dev -- --names mineral+creature --data ./pds-data ``` Stop it however you like — Ctrl-C, `kill -9`, closing the terminal — and start @@ -250,8 +250,8 @@ and the DID picks one, for the reason there is more than one word list — a population drawn one way is a population that looks the same. ```sh -cargo run --bin vibescrobble-dev -- --list-avatars -cargo run --bin vibescrobble-dev -- --demo 12 --avatar truchet # one style, to compare them +cargo run --bin didbot-dev -- --list-avatars +cargo run --bin didbot-dev -- --demo 12 --avatar truchet # one style, to compare them ``` `--avatar` is for looking at the styles side by side. A deployment that says @@ -606,7 +606,7 @@ curl -s -H "Host: $(echo "$did" | sed 's/^did:web://; s/%3A/:/')" \ ``` That string is what `plan/pds-writes.md`'s exit criterion is about, and the -loop is closed unattended in `vibescrobble-serve`'s `sync` tests, which +loop is closed unattended in `didbot-serve`'s `sync` tests, which decode the commit out of the CAR with a reader written from the specification rather than from this project's encoder. diff --git a/plan/account-types.md b/plan/account-types.md index ec0fe0f6..dd8cb8db 100644 --- a/plan/account-types.md +++ b/plan/account-types.md @@ -2,7 +2,7 @@ id: account-types title: Not every account is a session status: open -crates: [vibescrobble-pds, didbot-lexicon, didbot-name, vibescrobble-serve, didbot-hookd] +crates: [vibescrobble-pds, didbot-lexicon, didbot-name, didbot-serve, didbot-hookd] dependsOn: [agent-accounts, provenance] exitCriterion: > A service account provisioned from a CI run keeps its DID and its name across diff --git a/plan/agent-sites.md b/plan/agent-sites.md index a1833ef5..28f4ec1c 100644 --- a/plan/agent-sites.md +++ b/plan/agent-sites.md @@ -2,7 +2,7 @@ id: agent-sites title: An agent publishes a page of its own, at a name the zone already serves status: open -crates: [vibescrobble-pds, vibescrobble-serve, didbot-dns, didbot-lexicon, didbot-index] +crates: [vibescrobble-pds, didbot-serve, didbot-dns, didbot-lexicon, didbot-index] dependsOn: [agent-accounts, pds-writes] exitCriterion: > An agent writes a page, a stranger opens it over HTTPS at a hostname that is diff --git a/plan/app-allowlist.md b/plan/app-allowlist.md index 197937e6..0bb28ef7 100644 --- a/plan/app-allowlist.md +++ b/plan/app-allowlist.md @@ -2,7 +2,7 @@ id: app-allowlist title: An app an owner has not admitted gets nothing status: blocked -crates: [vibescrobble-serve] +crates: [didbot-serve] dependsOn: [oauth, policy-store] exitCriterion: > An OAuth client that is not on the owner's list is refused at the pushed diff --git a/plan/auth-types.md b/plan/auth-types.md index 7bcd5fef..158381f2 100644 --- a/plan/auth-types.md +++ b/plan/auth-types.md @@ -2,7 +2,7 @@ id: auth-types title: Every credential this server accepts, and what each one may do status: open -crates: [vibescrobble-serve, vibescrobble-pds] +crates: [didbot-serve, vibescrobble-pds] dependsOn: [agent-accounts, pds-writes] exitCriterion: > Every route the router serves names the credential types it accepts, a @@ -85,7 +85,7 @@ It is not presented over the wire and it authenticates nothing to this server. `AuthenticationRequired`, `ExpiredToken` and `InvalidToken` are distinct recoveries — retry, refresh, and give up — and a `WWW-Authenticate` or `DPoP-Nonce` header is how a client learns which. They join the mapping - in `crates/vibescrobble-serve/src/error.rs` rather than starting a + in `crates/didbot-serve/src/error.rs` rather than starting a second one. - [ ] **Take the account off the header.** `uploadBlob` names its repository in a request header because the lexicon takes no parameters and expects a diff --git a/plan/deploy.md b/plan/deploy.md index f0ac95a1..25011fc4 100644 --- a/plan/deploy.md +++ b/plan/deploy.md @@ -2,7 +2,7 @@ id: deploy title: A named version runs somewhere that is not a laptop status: open -crates: [vibescrobble-serve, vibescrobble-pds] +crates: [didbot-serve, vibescrobble-pds] dependsOn: [agent-accounts] exitCriterion: > A tagged release runs on a host nobody develops on, serving agents over real diff --git a/plan/dev-setup.md b/plan/dev-setup.md index cc560888..29cfeea1 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: [didbot-setup, didbot-stack, didbot-hookd, didbot-hook, didbot-mcp, vibescrobble-serve] +crates: [didbot-setup, didbot-stack, didbot-hookd, didbot-hook, didbot-mcp, didbot-serve] dependsOn: [] exitCriterion: > On a machine that has never run this, one command ends with an agent diff --git a/plan/e-stop.md b/plan/e-stop.md index 9e5d3548..e1938d8d 100644 --- a/plan/e-stop.md +++ b/plan/e-stop.md @@ -2,7 +2,7 @@ id: e-stop title: An operator can halt the swarm when nothing else is working status: open -crates: [vibescrobble-serve, vibescrobble-pds] +crates: [didbot-serve, vibescrobble-pds] dependsOn: [] exitCriterion: > With the owner's server unreachable and the web surface down, an operator diff --git a/plan/labels.md b/plan/labels.md index 710162be..769e8360 100644 --- a/plan/labels.md +++ b/plan/labels.md @@ -2,7 +2,7 @@ id: labels title: What is true about an agent arrives as a label an app already draws status: open -crates: [vibescrobble-pds, didbot-identity, vibescrobble-serve, didbot-lexicon] +crates: [vibescrobble-pds, didbot-identity, didbot-serve, didbot-lexicon] dependsOn: [pds-writes, ownership] exitCriterion: > The operator subscribes to this server in a client, and that client draws, on diff --git a/plan/local-dev.md b/plan/local-dev.md index 2d02e20c..48ac9af3 100644 --- a/plan/local-dev.md +++ b/plan/local-dev.md @@ -2,7 +2,7 @@ id: local-dev title: The whole stack runs on one machine, with traffic that looks real status: continuous -crates: [didbot-swarm, vibescrobble-serve, didbot-index, didbot-query] +crates: [didbot-swarm, didbot-serve, didbot-index, didbot-query] dependsOn: [] exitCriterion: > None. A development workflow is never finished; it is worked whenever @@ -169,7 +169,7 @@ that is what fills a machine: see the dev profile under Done. harness: one opens with nothing listening, gets no account, and scrobbles anyway once a server exists. - [x] `dev-pds.sh` and `dev-mcp.sh` stop a previous run by pidfile rather than - by command-line pattern. `pkill -f "vibescrobble-dev --port ${PORT}"` + by command-line pattern. `pkill -f "didbot-dev --port ${PORT}"` matched anything whose arguments contained that string, including another developer's server and the shell running the script — which happened while this was being written. `scripts/dev-pidfile.sh` reads diff --git a/plan/oauth.md b/plan/oauth.md index b1b8a8e8..12de723d 100644 --- a/plan/oauth.md +++ b/plan/oauth.md @@ -2,7 +2,7 @@ id: oauth title: A third-party app signs in as an agent, with nobody at the consent screen status: open -crates: [vibescrobble-serve, vibescrobble-pds] +crates: [didbot-serve, vibescrobble-pds] dependsOn: [pds-writes] exitCriterion: > An atproto client that has never heard of this project completes an OAuth diff --git a/plan/ops-dashboard.md b/plan/ops-dashboard.md index 7ba61991..6fe155d4 100644 --- a/plan/ops-dashboard.md +++ b/plan/ops-dashboard.md @@ -2,7 +2,7 @@ id: ops-dashboard title: A human can see what their agents are doing and stop them status: blocked -crates: [vibescrobble-serve] +crates: [didbot-serve] dependsOn: [scope-policy, app-allowlist, write-policy, e-stop] exitCriterion: > An owner signs in with their own atproto account and can see, for one agent, diff --git a/plan/pds-writes.md b/plan/pds-writes.md index 6f5c4200..b82c7f85 100644 --- a/plan/pds-writes.md +++ b/plan/pds-writes.md @@ -2,7 +2,7 @@ id: pds-writes title: A record is a signed commit in a repository status: open -crates: [vibescrobble-pds, didbot-key, didbot-data, didbot-repo, vibescrobble-serve] +crates: [vibescrobble-pds, didbot-key, didbot-data, didbot-repo, didbot-serve] dependsOn: [] exitCriterion: > A record written through the server appears in a CAR export whose commit diff --git a/plan/pds-xrpc.md b/plan/pds-xrpc.md index e987f1e4..a401720e 100644 --- a/plan/pds-xrpc.md +++ b/plan/pds-xrpc.md @@ -2,7 +2,7 @@ id: pds-xrpc title: A client nobody here wrote can talk to this server status: open -crates: [vibescrobble-serve, vibescrobble-pds] +crates: [didbot-serve, vibescrobble-pds] dependsOn: [oauth] exitCriterion: > An off-the-shelf atproto client reads and writes an agent's repository @@ -79,7 +79,7 @@ checked today. - [x] **XRPC error shapes**, so a client can recover. `RecordNotFound`, `RepoNotFound`, `InvalidRequest`, `InvalidRecord`, `InvalidSwap` and `MethodNotImplemented`, mapped in one place in - `crates/vibescrobble-serve/src/error.rs`, and a 405 and an unknown-path + `crates/didbot-serve/src/error.rs`, and a 405 and an unknown-path 501 in the same body shape rather than axum's empty ones. - [x] **Decided what `subscribeRepos` is here.** It is not implemented and diff --git a/plan/policy-store.md b/plan/policy-store.md index a1aed537..abe5cce3 100644 --- a/plan/policy-store.md +++ b/plan/policy-store.md @@ -2,7 +2,7 @@ id: policy-store title: Policy is the owner's record, in the owner's repository status: open -crates: [vibescrobble-pds, didbot-lexicon, vibescrobble-serve] +crates: [vibescrobble-pds, didbot-lexicon, didbot-serve] dependsOn: [ownership] exitCriterion: > The server refuses a request because of a policy record it read out of the diff --git a/plan/provenance.md b/plan/provenance.md index d723d57d..ea0dbc98 100644 --- a/plan/provenance.md +++ b/plan/provenance.md @@ -2,7 +2,7 @@ id: provenance title: A record says which agent, which model, and what spawned it status: open -crates: [didbot-avatar, didbot-hook, didbot-hookd, didbot-lexicon, vibescrobble-pds, vibescrobble-serve, didbot-index] +crates: [didbot-avatar, didbot-hook, didbot-hookd, didbot-lexicon, vibescrobble-pds, didbot-serve, didbot-index] dependsOn: [] exitCriterion: > A reader looking at one record can say which agent wrote it, what model wrote diff --git a/plan/repo-scale.md b/plan/repo-scale.md index d5946049..891e031a 100644 --- a/plan/repo-scale.md +++ b/plan/repo-scale.md @@ -2,7 +2,7 @@ id: repo-scale title: A write costs the same in an old repository as in a new one status: open -crates: [vibescrobble-pds, didbot-repo, vibescrobble-serve] +crates: [vibescrobble-pds, didbot-repo, didbot-serve] dependsOn: [pds-writes] exitCriterion: > A repository holding a hundred thousand records accepts a write in about the diff --git a/plan/scope-policy.md b/plan/scope-policy.md index c81f1cf7..41c57947 100644 --- a/plan/scope-policy.md +++ b/plan/scope-policy.md @@ -2,7 +2,7 @@ id: scope-policy title: An agent cannot be granted what its owner has not allowed status: blocked -crates: [vibescrobble-serve, vibescrobble-pds] +crates: [didbot-serve, vibescrobble-pds] dependsOn: [oauth, policy-store] exitCriterion: > An app requesting a scope outside an agent's profile is refused at the diff --git a/plan/spaces.md b/plan/spaces.md index b6fc86e3..16b89468 100644 --- a/plan/spaces.md +++ b/plan/spaces.md @@ -2,7 +2,7 @@ id: spaces title: Activity that is not public, without inventing a private tier status: blocked -crates: [vibescrobble-pds, vibescrobble-serve, didbot-index] +crates: [vibescrobble-pds, didbot-serve, didbot-index] dependsOn: [pds-xrpc, oauth] exitCriterion: > A scrobble written into a Space is readable by an admitted reader, invisible diff --git a/plan/write-policy.md b/plan/write-policy.md index 6763a1e9..a0baa23b 100644 --- a/plan/write-policy.md +++ b/plan/write-policy.md @@ -2,7 +2,7 @@ id: write-policy title: Which agents may write which record types status: open -crates: [vibescrobble-pds, vibescrobble-serve] +crates: [vibescrobble-pds, didbot-serve] dependsOn: [pds-writes] exitCriterion: > An agent whose profile does not permit a collection is refused when it writes diff --git a/scripts/dev-pds.sh b/scripts/dev-pds.sh index ab5976af..337f0d6e 100755 --- a/scripts/dev-pds.sh +++ b/scripts/dev-pds.sh @@ -64,12 +64,12 @@ watch_or_continue "$@" # in use", which reads as a port conflict with something else entirely. By # pidfile rather than by pattern: see dev-pidfile.sh for what a pattern matches # that it should not. -claim_port pds "${PORT}" vibescrobble-dev +claim_port pds "${PORT}" didbot-dev # The hook binary is built here rather than alongside the MCP host: it talks to # this server's provisioning API, so it goes stale when this side changes. say "building" -cargo test --quiet -p vibescrobble-pds -p vibescrobble-serve -p didbot-hookd +cargo test --quiet -p vibescrobble-pds -p didbot-serve -p didbot-hookd # The hook is the one binary that has to be on PATH, because the harness # invokes it by name from settings.json. It is installed in debug so it reuses @@ -91,5 +91,5 @@ if [[ -n "$DATA" ]]; then echo " data ${DATA} (accounts and records survive a restart)" fi -exec cargo run --quiet -p vibescrobble-serve --bin vibescrobble-dev -- \ +exec cargo run --quiet -p didbot-serve --bin didbot-dev -- \ --port "$PORT" --zone "$ZONE" --names "$NAMES" "${DATA_ARGS[@]}" "$@" diff --git a/scripts/dev-pidfile.sh b/scripts/dev-pidfile.sh index 3128f41f..79b0fc27 100644 --- a/scripts/dev-pidfile.sh +++ b/scripts/dev-pidfile.sh @@ -1,6 +1,6 @@ # Sourced by the dev-*.sh scripts that need to replace a previous run. # -# The thing this exists to stop: `pkill -f "vibescrobble-dev --port 3000"` +# The thing this exists to stop: `pkill -f "didbot-dev --port 3000"` # matches any process whose *arguments* contain that string. That includes # another developer's server, an editor with the command in a buffer, and — on # a bad day — the shell running the script, which is a `kill` that takes out diff --git a/vectors/firehose/README.md b/vectors/firehose/README.md index 84fb893e..ed103628 100644 --- a/vectors/firehose/README.md +++ b/vectors/firehose/README.md @@ -5,7 +5,7 @@ built from different repositories can each check themselves against it without either compiling against the other. The frame shape is not owned by either side. A server declares it as -`vibescrobble_serve::firehose::{CommitFrame, Info}`, an index declares it as +`didbot_serve::firehose::{CommitFrame, Info}`, an index declares it as `didbot_index::firehose::{Commit, StreamInfo}`, and the two declarations are deliberately not the same type: an index that compiled against a server's types could only read servers built from this repository. These files are what