Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 39 additions & 26 deletions .beads/.gitignore
Original file line number Diff line number Diff line change
@@ -1,39 +1,52 @@
# SQLite databases
*.db
*.db?*
*.db-journal
*.db-wal
*.db-shm
# Dolt database (managed by Dolt, not git)
dolt/
dolt-access.lock

# Daemon runtime files
daemon.lock
daemon.log
daemon.pid
# Runtime files
bd.sock
bd.sock.startlock
sync-state.json
last-touched

# Local version tracking (prevents upgrade notification spam after git ops)
.local_version

# Legacy database files
db.sqlite
bd.db

# Worktree redirect file (contains relative path to main repo's .beads/)
# Must not be committed as paths would be wrong in other clones
redirect

# Merge artifacts (temporary files from 3-way merge)
beads.base.jsonl
beads.base.meta.json
beads.left.jsonl
beads.left.meta.json
beads.right.jsonl
beads.right.meta.json
# 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

# NOTE: Do NOT add negation patterns (e.g., !issues.jsonl) here.
# They would override fork protection in .git/info/exclude, allowing
# contributors to accidentally commit upstream issue databases.
# The JSONL files (issues.jsonl, interactions.jsonl) and config files
# are tracked by git by default since no pattern above ignores them.
# Dolt server management (auto-started by bd)
dolt-server.pid
dolt-server.log
dolt-server.lock
dolt-server.port
dolt-server.activity
dolt-monitor.pid

# Legacy files (from pre-Dolt versions)
*.db
*.db?*
*.db-journal
*.db-wal
*.db-shm
db.sqlite
bd.db
daemon.lock
daemon.log
daemon-*.log.gz
daemon.pid
# 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.
42 changes: 38 additions & 4 deletions .beads/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,46 @@ bd init
bd create "Try out Beads"
```

## Dolt Backend

Beads uses [Dolt](https://www.dolthub.com/) as its database engine. Dolt must be installed for beads to work.

```bash
# Install Dolt
brew install dolt
```

The `.beads/` directory contains:
- **Dolt database** (the `dolt/` directory)
- **`issues.jsonl`** — JSONL backup of all issues (portable, used for recovery)
- **`dolt-server.lock`** — PID file for the Dolt SQL server daemon

### Recovery / Re-importing Issues

If beads stops working (e.g., "no beads database found" after a fresh clone, Dolt reinstall, or corrupted state), re-import from the JSONL backup:

```bash
# Re-initialize and import all issues from JSONL backup
bd init --force --prefix <project-prefix> --from-jsonl

# For this project:
bd init --force --prefix uncov --from-jsonl
```

This reads `.beads/issues.jsonl` and rebuilds the Dolt database. The `--force` flag is required when `.beads/` already exists.

### Stale Daemon

If you see connection errors, the Dolt server daemon may have a stale PID. Check and kill it:

```bash
cat .beads/dolt-server.lock # Shows the PID
kill <pid> # Kill stale process
bd list # Will restart the daemon automatically
```

## 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* ⚡
13 changes: 13 additions & 0 deletions .beads/backup/backup_state.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"last_dolt_commit": "ce2k10ue6864cd9gc024iqh08r99nhv6",
"last_event_id": 0,
"timestamp": "2026-03-11T20:20:20.327917Z",
"counts": {
"issues": 47,
"events": 47,
"comments": 0,
"dependencies": 32,
"labels": 0,
"config": 11
}
}
Empty file added .beads/backup/comments.jsonl
Empty file.
11 changes: 11 additions & 0 deletions .beads/backup/config.jsonl
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{"key":"auto_compact_enabled","value":"false"}
{"key":"compact_batch_size","value":"50"}
{"key":"compact_parallel_workers","value":"5"}
{"key":"compact_tier1_days","value":"30"}
{"key":"compact_tier1_dep_levels","value":"2"}
{"key":"compact_tier2_commits","value":"100"}
{"key":"compact_tier2_days","value":"90"}
{"key":"compact_tier2_dep_levels","value":"5"}
{"key":"compaction_enabled","value":"false"}
{"key":"issue_prefix","value":"uncov"}
{"key":"schema_version","value":"6"}
32 changes: 32 additions & 0 deletions .beads/backup/dependencies.jsonl
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{"created_at":"2026-02-03T02:56:18Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-kah","issue_id":"uncov-0lq","type":"blocks"}
{"created_at":"2026-02-03T02:56:18Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-kah","issue_id":"uncov-0ou","type":"blocks"}
{"created_at":"2026-02-03T02:56:17Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-fn0","issue_id":"uncov-2bo","type":"blocks"}
{"created_at":"2026-02-03T02:56:17Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-mv8","issue_id":"uncov-2bo","type":"blocks"}
{"created_at":"2026-02-03T02:56:17Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-ocy","issue_id":"uncov-2bo","type":"blocks"}
{"created_at":"2026-02-03T02:56:17Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-s2m","issue_id":"uncov-2bo","type":"blocks"}
{"created_at":"2026-02-03T02:56:16Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-brm","issue_id":"uncov-38c","type":"blocks"}
{"created_at":"2026-02-03T02:56:16Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-ocy","issue_id":"uncov-38c","type":"blocks"}
{"created_at":"2026-02-03T02:56:16Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-p0r","issue_id":"uncov-38c","type":"blocks"}
{"created_at":"2026-02-03T02:56:16Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-q77","issue_id":"uncov-38c","type":"blocks"}
{"created_at":"2026-02-03T02:56:18Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-38c","issue_id":"uncov-b90","type":"blocks"}
{"created_at":"2026-02-03T02:56:08Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-3ky","issue_id":"uncov-brm","type":"blocks"}
{"created_at":"2026-02-03T02:56:08Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-ed6","issue_id":"uncov-brm","type":"blocks"}
{"created_at":"2026-02-03T02:56:17Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-brm","issue_id":"uncov-e27","type":"blocks"}
{"created_at":"2026-02-03T02:56:17Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-mv8","issue_id":"uncov-e27","type":"blocks"}
{"created_at":"2026-02-03T02:56:18Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-ocy","issue_id":"uncov-e27","type":"blocks"}
{"created_at":"2026-02-03T02:56:17Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-p0r","issue_id":"uncov-e27","type":"blocks"}
{"created_at":"2026-02-03T02:56:07Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-3ky","issue_id":"uncov-ed6","type":"blocks"}
{"created_at":"2026-02-03T02:56:09Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-3ky","issue_id":"uncov-fn0","type":"blocks"}
{"created_at":"2026-02-03T02:56:09Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-ed6","issue_id":"uncov-fn0","type":"blocks"}
{"created_at":"2026-02-03T02:56:18Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-b90","issue_id":"uncov-kah","type":"blocks"}
{"created_at":"2026-02-03T02:56:08Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-3ky","issue_id":"uncov-mv8","type":"blocks"}
{"created_at":"2026-02-03T02:56:09Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-ed6","issue_id":"uncov-mv8","type":"blocks"}
{"created_at":"2026-02-03T02:56:07Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-3ky","issue_id":"uncov-ocy","type":"blocks"}
{"created_at":"2026-02-03T02:56:08Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-3ky","issue_id":"uncov-p0r","type":"blocks"}
{"created_at":"2026-02-03T02:56:08Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-ed6","issue_id":"uncov-p0r","type":"blocks"}
{"created_at":"2026-02-03T02:56:08Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-qu3","issue_id":"uncov-p0r","type":"blocks"}
{"created_at":"2026-02-03T02:56:18Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-38c","issue_id":"uncov-p2k","type":"blocks"}
{"created_at":"2026-02-03T02:56:07Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-3ky","issue_id":"uncov-q77","type":"blocks"}
{"created_at":"2026-02-03T02:56:07Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-3ky","issue_id":"uncov-qu3","type":"blocks"}
{"created_at":"2026-02-03T02:56:09Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-3ky","issue_id":"uncov-s2m","type":"blocks"}
{"created_at":"2026-02-03T02:56:09Z","created_by":"Logan Lindquist Land","depends_on_id":"uncov-ed6","issue_id":"uncov-s2m","type":"blocks"}
47 changes: 47 additions & 0 deletions .beads/backup/events.jsonl
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":1,"issue_id":"uncov-0lq","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":2,"issue_id":"uncov-0ou","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":3,"issue_id":"uncov-0xe","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":4,"issue_id":"uncov-17j","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":5,"issue_id":"uncov-19b","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":6,"issue_id":"uncov-1e5","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":7,"issue_id":"uncov-1yi","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":8,"issue_id":"uncov-2bo","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":9,"issue_id":"uncov-2ur","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":10,"issue_id":"uncov-38c","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":11,"issue_id":"uncov-38p","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":12,"issue_id":"uncov-3ky","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":13,"issue_id":"uncov-3te","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":14,"issue_id":"uncov-4bm","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":15,"issue_id":"uncov-4du","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":16,"issue_id":"uncov-54t","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":17,"issue_id":"uncov-5yk","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":18,"issue_id":"uncov-67r","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":19,"issue_id":"uncov-6no","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":20,"issue_id":"uncov-77g","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":21,"issue_id":"uncov-a4f","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":22,"issue_id":"uncov-b90","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":23,"issue_id":"uncov-bq5","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":24,"issue_id":"uncov-brm","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":25,"issue_id":"uncov-cgy","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":26,"issue_id":"uncov-e27","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":27,"issue_id":"uncov-ed6","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":28,"issue_id":"uncov-efk","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":29,"issue_id":"uncov-ejy","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":30,"issue_id":"uncov-eqy","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":31,"issue_id":"uncov-fn0","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":32,"issue_id":"uncov-iz5","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":33,"issue_id":"uncov-kah","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":34,"issue_id":"uncov-l2y","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":35,"issue_id":"uncov-mc5","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":36,"issue_id":"uncov-mv8","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":37,"issue_id":"uncov-o9j","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":38,"issue_id":"uncov-ocy","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":39,"issue_id":"uncov-p0r","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":40,"issue_id":"uncov-p2k","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":41,"issue_id":"uncov-q77","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":42,"issue_id":"uncov-qu3","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":43,"issue_id":"uncov-r6p","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":44,"issue_id":"uncov-s2m","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":45,"issue_id":"uncov-tr8","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":46,"issue_id":"uncov-uar","new_value":"","old_value":""}
{"actor":"Logan Lindquist Land","comment":null,"created_at":"2026-03-11T15:20:13Z","event_type":"created","id":47,"issue_id":"uncov-xg6","new_value":"","old_value":""}
Loading
Loading