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:
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";