lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README | LICENSE

commit f9bf2d7b83782c6f6e879de31ff0a8b33f0f67e1
parent f727032fae7ded10471927a2aadf6f6356291360
Author: triesap <tyson@radroots.org>
Date:   Wed, 18 Mar 2026 18:34:17 +0000

bd init: initialize beads issue tracking


Diffstat:
A.beads/.gitignore | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.beads/PRIME.md | 60++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.beads/README.md | 81+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.beads/config.yaml | 56++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.beads/metadata.json | 8++++++++
M.gitignore | 4++++
Mcontract/coverage/POLICY.md | 4++--
Mflake.nix | 2+-
8 files changed, 278 insertions(+), 3 deletions(-)

diff --git a/.beads/.gitignore b/.beads/.gitignore @@ -0,0 +1,66 @@ +# Dolt database (managed by Dolt, not git) +dolt/ +dolt-access.lock + +# Runtime files +.beads-credential-key +bd.sock +bd.sock.startlock +sync-state.json +last-touched +.exclusive-lock + +# Daemon runtime (lock, log, pid) +daemon.* + +# Interactions log (runtime, not versioned) +interactions.jsonl + +# Push state (runtime, per-machine) +push-state.json + +# Lock files (various runtime locks) +*.lock + +# Local version tracking (prevents upgrade notification spam after git ops) +.local_version + +# Worktree redirect file (contains relative path to main repo's .beads/) +# Must not be committed as paths would be wrong in other clones +redirect + +# Sync state (local-only, per-machine) +# These files are machine-specific and should not be shared across clones +.sync.lock +export-state/ + +# Ephemeral store (SQLite - wisps/molecules, intentionally not versioned) +ephemeral.sqlite3 +ephemeral.sqlite3-journal +ephemeral.sqlite3-wal +ephemeral.sqlite3-shm + +# Dolt server management (auto-started by bd) +dolt-server.pid +dolt-server.log +dolt-server.lock +dolt-server.port + +# Corrupt backup directories (created by bd doctor --fix recovery) +*.corrupt.backup/ + +# Backup data (auto-exported JSONL, local-only) +backup/ + +# Legacy files (from pre-Dolt versions) +*.db +*.db?* +*.db-journal +*.db-wal +*.db-shm +db.sqlite +bd.db +# NOTE: Do NOT add negation patterns here. +# They would override fork protection in .git/info/exclude. +# Config files (metadata.json, config.yaml) are tracked by git by default +# since no pattern above ignores them. diff --git a/.beads/PRIME.md b/.beads/PRIME.md @@ -0,0 +1,60 @@ +# Radroots Core Libraries Beads Prime + +Read `AGENTS.md` first. That file remains the authoritative code and commit-style contract for this repository. + +## RCL +- This repo uses RCL for multi-commit work. +- When Beads is active, Beads is the live execution state. +- Every goal is an epic. +- Only the next 1-3 slices may be concrete at any time. +- Every slice needs a clear scope, a definition of green, and one dominant verify lane. +- Do not create markdown TODO trackers when Beads is active. +- Do not use `bd edit`. + +## Start Of Session +- `bd ready --json` +- `bd show <id>` +- `bd update <id> --claim --json` +- Trust cwd auto-filtering when working from a mapped crate or repo surface. + +## Environment Contract +- Nix is the canonical environment contract for this workspace. +- Prefer `nix develop` or `direnv allow` before targeted cargo work. +- Prefer repo-owned Nix lanes over ad hoc raw commands for closeout validation. + +## Slice Rules +- Keep slices small enough that one dominant verify lane can prove them green. +- If a slice needs unrelated lanes, split it. +- If new work is discovered, create it immediately and link it with `discovered-from:<parent-id>`. +- Use stdin-based `bd create` or `bd update` forms when text contains backticks or quotes. + +## Verify Lanes +- repo-wide pure formatting, workflow linting, and Rust check/test validation + - `nix flake check` +- repo-aware SDK contract, export, and manifest validation + - `nix run .#contract` +- release workflow or publish-surface changes + - `nix run .#release-preflight` +- targeted crate iteration inside the Nix shell + - `cargo check -p <crate>` + - `cargo test -p <crate>` +- targeted xtask iteration inside the Nix shell + - `cargo run -q -p xtask -- sdk validate` + - `cargo run -q -p xtask -- sdk release preflight` + +## Closeout Guidance +- any contract, export, conformance, release, flake, or multi-crate slice should close on a Nix lane, not on targeted cargo alone +- crate-local slices may iterate with targeted cargo commands, but should still finish with the narrowest canonical Nix lane that proves the change green + +## RCL-Swarm +- In `rcl-swarm`, the Beads issue id is the Agent Mail thread id. +- Use the same Beads issue id as the reservation reason. +- Reserve files before the first write. +- Use build slots for long-running singleton resources when needed: + - `rr-contract` + - `rr-release-preflight` + - `rr-wasm-builds` + +## End Of Session +- `bd close <id> --reason "..."` +- `bd dolt push` diff --git a/.beads/README.md b/.beads/README.md @@ -0,0 +1,81 @@ +# Beads - AI-Native Issue Tracking + +Welcome to Beads! This repository uses **Beads** for issue tracking - a modern, AI-native tool designed to live directly in your codebase alongside your code. + +## What is Beads? + +Beads is issue tracking that lives in your repo, making it perfect for AI coding agents and developers who want their issues close to their code. No web UI required - everything works through the CLI and integrates seamlessly with git. + +**Learn more:** [github.com/steveyegge/beads](https://github.com/steveyegge/beads) + +## Quick Start + +### Essential Commands + +```bash +# Create new issues +bd create "Add user authentication" + +# View all issues +bd list + +# View issue details +bd show <issue-id> + +# Update issue status +bd update <issue-id> --claim +bd update <issue-id> --status done + +# Sync with Dolt remote +bd dolt push +``` + +### Working with Issues + +Issues in Beads are: +- **Git-native**: Stored in Dolt database with version control and branching +- **AI-friendly**: CLI-first design works perfectly with AI coding agents +- **Branch-aware**: Issues can follow your branch workflow +- **Always in sync**: Auto-syncs with your commits + +## Why Beads? + +✨ **AI-Native Design** +- Built specifically for AI-assisted development workflows +- CLI-first interface works seamlessly with AI coding agents +- No context switching to web UIs + +🚀 **Developer Focused** +- Issues live in your repo, right next to your code +- Works offline, syncs when you push +- Fast, lightweight, and stays out of your way + +🔧 **Git Integration** +- Automatic sync with git commits +- Branch-aware issue tracking +- Dolt-native three-way merge resolution + +## Get Started with Beads + +Try Beads in your own projects: + +```bash +# Install Beads +curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash + +# Initialize in your repo +bd init + +# Create your first issue +bd create "Try out Beads" +``` + +## Learn More + +- **Documentation**: [github.com/steveyegge/beads/docs](https://github.com/steveyegge/beads/tree/main/docs) +- **Quick Start Guide**: Run `bd quickstart` +- **Examples**: [github.com/steveyegge/beads/examples](https://github.com/steveyegge/beads/tree/main/examples) + +--- + +*Beads: Issue tracking that moves at the speed of thought* ⚡ diff --git a/.beads/config.yaml b/.beads/config.yaml @@ -0,0 +1,56 @@ +issue-prefix: "rr" +no-git-ops: true + +create: + require-description: true + +validation: + on-create: warn + on-sync: none + +dolt: + auto-commit: on + auto-push: false + shared-server: true + +backup: + enabled: false + +directory: + labels: + contract: area:contract + conformance: area:conformance + docs: area:docs + nix: area:nix + scripts: area:scripts + + crates/app-core: crate:app_core + crates/app-wasm: crate:app_wasm + crates/core: crate:core + crates/events: crate:events + crates/events-codec: crate:events_codec + crates/events-codec-wasm: crate:events_codec_wasm + crates/events-indexed: crate:events_indexed + crates/identity: crate:identity + crates/log: crate:log + crates/net: crate:net + crates/net-core: crate:net_core + crates/nostr: crate:nostr + crates/nostr-accounts: crate:nostr_accounts + crates/nostr-ndb: crate:nostr_ndb + crates/nostr-runtime: crate:nostr_runtime + crates/runtime: crate:runtime + crates/sql-core: crate:sql_core + crates/sql-wasm-bridge: crate:sql_wasm_bridge + crates/sql-wasm-core: crate:sql_wasm_core + crates/replica-db-schema: crate:replica_db_schema + crates/replica-db: crate:replica_db + crates/replica-db-wasm: crate:replica_db_wasm + crates/replica-sync: crate:replica_sync + crates/replica-sync-wasm: crate:replica_sync_wasm + crates/trade: crate:trade + crates/types: crate:types + crates/xtask: crate:xtask + +external_projects: + plat: ../../../.. diff --git a/.beads/metadata.json b/.beads/metadata.json @@ -0,0 +1,7 @@ +{ + "database": "dolt", + "backend": "dolt", + "dolt_mode": "server", + "dolt_database": "rr", + "project_id": "48cc1be9-bd1e-40c6-9603-f8d0b7878527" +} +\ No newline at end of file diff --git a/.gitignore b/.gitignore @@ -48,3 +48,7 @@ prompt*.txt .direnv/ .treefmt-cache/ result + +# Beads / Dolt runtime files +.beads/dolt/ +.beads/dolt-access.lock diff --git a/contract/coverage/POLICY.md b/contract/coverage/POLICY.md @@ -1,6 +1,6 @@ -# radroots oss rust coverage policy +# Radroots Core Libraries Rust Coverage Policy -This document defines the required coverage gate for the oss rust workspace. +This document defines the required coverage gate for the Radroots Core Libraries Rust workspace. ## gate contract diff --git a/flake.nix b/flake.nix @@ -1,5 +1,5 @@ { - description = "radroots core libraries"; + description = "Radroots Core Libraries"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";