An easy-to-host PDS on the ATProtocol, MacOS. Grandma-approved.

fix(MM-64): address PR review — targets, devenv.nix, CLAUDE.md, test plan

- rust-toolchain.toml: add x86_64-apple-darwin and aarch64-unknown-linux-gnu
targets (flake supports 4 systems; toolchain only listed 2)
- devenv.nix: simplify function signature to { pkgs, ... }: (lib and config
were unused)
- CLAUDE.md: expand --accept-flake-config explanation; add Cachix cache,
nixpkgs pin (devenv-nixpkgs/rolling fork), sqlite dev headers note
- test plan: use git ls-files --error-unmatch in step 1.6; remove hardcoded
rustc version; cargo-audit --version (not cargo audit); add cargo check step

+10 -7
+4 -2
CLAUDE.md
··· 9 9 - Task Runner: just 10 10 11 11 ## Commands 12 - - `nix develop --impure --accept-flake-config` - Enter dev shell (flags required; devenv needs --impure for CWD detection) 12 + - `nix develop --impure --accept-flake-config` - Enter dev shell (flags required; --impure for devenv CWD detection, --accept-flake-config activates the Cachix binary cache in nixConfig — without it, a cold build takes 20+ minutes) 13 13 - `cargo build` - Build all crates 14 14 - `cargo test` - Run all tests 15 15 - `cargo clippy` - Lint ··· 19 19 - Managed entirely by Nix flake + devenv; do not install tools globally 20 20 - direnv auto-activates via `.envrc` (`use flake`) 21 21 - Rust toolchain pinned in `rust-toolchain.toml` (stable, with rustfmt + clippy + rust-analyzer) 22 - - Shell provides: just, cargo-audit, sqlite, pkg-config 22 + - Shell provides: just, cargo-audit, sqlite (runtime binary + dev headers/library for rusqlite), pkg-config 23 23 - `LIBSQLITE3_SYS_USE_PKG_CONFIG=1` is set automatically by devenv 24 + - Binary cache: devenv.cachix.org (activated by `--accept-flake-config`); speeds up cold shell builds significantly 25 + - nixpkgs pin: `cachix/devenv-nixpkgs/rolling` (devenv's own nixpkgs fork — package versions may differ from upstream nixpkgs.search.dev) 24 26 25 27 ## Project Structure 26 28 - `crates/relay/` - Web relay (axum-based)
+1 -1
devenv.nix
··· 1 - { pkgs, lib, config, ... }: 1 + { pkgs, ... }: 2 2 { 3 3 languages.rust = { 4 4 enable = true;
+4 -3
docs/test-plans/2026-03-07-MM-64.md
··· 29 29 | 1.3 | Open `rust-toolchain.toml` | Contains `channel = "stable"` and `components = ["rustfmt", "clippy", "rust-analyzer"]`. | 30 30 | 1.4 | Open `devenv.nix` | Contains `languages.rust.enable = true`, `toolchainFile = ./rust-toolchain.toml`, and packages list with `just`, `cargo-audit`, `sqlite`, `pkg-config`. Also sets `LIBSQLITE3_SYS_USE_PKG_CONFIG = "1"`. | 31 31 | 1.5 | Open `.envrc` | Contains exactly `use flake` (one line). | 32 - | 1.6 | Run `git status` from repo root | `.envrc`, `flake.nix`, `devenv.nix`, `rust-toolchain.toml`, `flake.lock`, `.gitignore` are all tracked (not untracked or modified). | 32 + | 1.6 | Run `git ls-files --error-unmatch .envrc flake.nix devenv.nix rust-toolchain.toml flake.lock .gitignore` from repo root | Command exits 0 (all six files are tracked by git). | 33 33 34 34 --- 35 35 ··· 38 38 | Step | Action | Expected | 39 39 |------|--------|----------| 40 40 | 2.1 | `nix develop --impure --command bash -c 'echo "shell activated"'` | Prints "shell activated" and exits with code 0. devenv task output may appear on stderr (normal). | 41 - | 2.2 | `nix develop --impure --command bash -c 'rustc --version'` | Prints `rustc 1.94.0 (...)` or a similar stable version. No "nightly" or "beta" in the output. | 42 - | 2.3 | `nix develop --impure --command bash -c 'cargo --version && rust-analyzer --version && cargo clippy --version && rustfmt --version && just --version && cargo audit --version'` | All six commands succeed (exit 0). Each prints a version string. | 41 + | 2.2 | `nix develop --impure --command bash -c 'rustc --version'` | Prints a stable Rust version (e.g. `rustc 1.XX.0 (...)`). No "nightly" or "beta" in the output. | 42 + | 2.3 | `nix develop --impure --command bash -c 'cargo --version && rust-analyzer --version && cargo clippy --version && rustfmt --version && just --version && cargo-audit --version'` | All six commands succeed (exit 0). Each prints a version string. (`cargo-audit --version` — note the hyphen; the Cargo subcommand `cargo audit --version` doubles the name in output.) | 43 + | 2.6 | `nix develop --impure --command cargo check` | Cargo type-checks all workspace crates. Exit code 0. Confirms toolchain, sqlite3 headers, and pkg-config integrate correctly. | 43 44 | 2.4 | `nix develop --impure --command bash -c 'sqlite3 --version && pkg-config --libs sqlite3'` | sqlite3 prints a version (3.x.x). pkg-config prints `-L/nix/store/.../lib -lsqlite3`. Both succeed. | 44 45 | 2.5 | `nix develop --impure --command bash -c 'echo $LIBSQLITE3_SYS_USE_PKG_CONFIG'` | Prints `1`. | 45 46
+1 -1
rust-toolchain.toml
··· 1 1 [toolchain] 2 2 channel = "stable" 3 3 components = ["rustfmt", "clippy", "rust-analyzer"] 4 - targets = ["aarch64-apple-darwin", "x86_64-unknown-linux-gnu"] 4 + targets = ["aarch64-apple-darwin", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu", "aarch64-unknown-linux-gnu"]