Skip to content

Commit c5fe6c9

Browse files
committed
Merge branch 'next'
2 parents c853515 + d45a7d4 commit c5fe6c9

83 files changed

Lines changed: 7073 additions & 89 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.beads/.gitignore

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Dolt database (managed by Dolt, not git)
2+
dolt/
3+
dolt-access.lock
4+
5+
# Runtime files
6+
bd.sock
7+
bd.sock.startlock
8+
sync-state.json
9+
last-touched
10+
.exclusive-lock
11+
12+
# Daemon runtime (lock, log, pid)
13+
daemon.*
14+
15+
# Interactions log (runtime, not versioned)
16+
interactions.jsonl
17+
18+
# Push state (runtime, per-machine)
19+
push-state.json
20+
21+
# Lock files (various runtime locks)
22+
*.lock
23+
24+
# Credential key (encryption key for federation peer auth — never commit)
25+
.beads-credential-key
26+
27+
# Local version tracking (prevents upgrade notification spam after git ops)
28+
.local_version
29+
30+
# Worktree redirect file (contains relative path to main repo's .beads/)
31+
# Must not be committed as paths would be wrong in other clones
32+
redirect
33+
34+
# Sync state (local-only, per-machine)
35+
# These files are machine-specific and should not be shared across clones
36+
.sync.lock
37+
export-state/
38+
39+
# Ephemeral store (SQLite - wisps/molecules, intentionally not versioned)
40+
ephemeral.sqlite3
41+
ephemeral.sqlite3-journal
42+
ephemeral.sqlite3-wal
43+
ephemeral.sqlite3-shm
44+
45+
# Dolt server management (auto-started by bd)
46+
dolt-server.pid
47+
dolt-server.log
48+
dolt-server.lock
49+
dolt-server.port
50+
dolt-server.activity
51+
52+
# Corrupt backup directories (created by bd doctor --fix recovery)
53+
*.corrupt.backup/
54+
55+
# Backup data (auto-exported JSONL, local-only)
56+
backup/
57+
58+
# Per-project environment file (Dolt connection config, GH#2520)
59+
.env
60+
61+
# Legacy files (from pre-Dolt versions)
62+
*.db
63+
*.db?*
64+
*.db-journal
65+
*.db-wal
66+
*.db-shm
67+
db.sqlite
68+
bd.db
69+
# NOTE: Do NOT add negation patterns here.
70+
# They would override fork protection in .git/info/exclude.
71+
# Config files (metadata.json, config.yaml) are tracked by git by default
72+
# since no pattern above ignores them.

.beads/README.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Beads - AI-Native Issue Tracking
2+
3+
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.
4+
5+
## What is Beads?
6+
7+
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.
8+
9+
**Learn more:** [github.com/steveyegge/beads](https://github.com/steveyegge/beads)
10+
11+
## Quick Start
12+
13+
### Essential Commands
14+
15+
```bash
16+
# Create new issues
17+
bd create "Add user authentication"
18+
19+
# View all issues
20+
bd list
21+
22+
# View issue details
23+
bd show <issue-id>
24+
25+
# Update issue status
26+
bd update <issue-id> --claim
27+
bd update <issue-id> --status done
28+
29+
# Sync with Dolt remote
30+
bd dolt push
31+
```
32+
33+
### Working with Issues
34+
35+
Issues in Beads are:
36+
- **Git-native**: Stored in Dolt database with version control and branching
37+
- **AI-friendly**: CLI-first design works perfectly with AI coding agents
38+
- **Branch-aware**: Issues can follow your branch workflow
39+
- **Always in sync**: Auto-syncs with your commits
40+
41+
## Why Beads?
42+
43+
**AI-Native Design**
44+
- Built specifically for AI-assisted development workflows
45+
- CLI-first interface works seamlessly with AI coding agents
46+
- No context switching to web UIs
47+
48+
🚀 **Developer Focused**
49+
- Issues live in your repo, right next to your code
50+
- Works offline, syncs when you push
51+
- Fast, lightweight, and stays out of your way
52+
53+
🔧 **Git Integration**
54+
- Automatic sync with git commits
55+
- Branch-aware issue tracking
56+
- Dolt-native three-way merge resolution
57+
58+
## Get Started with Beads
59+
60+
Try Beads in your own projects:
61+
62+
```bash
63+
# Install Beads
64+
curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
65+
66+
# Initialize in your repo
67+
bd init
68+
69+
# Create your first issue
70+
bd create "Try out Beads"
71+
```
72+
73+
## Learn More
74+
75+
- **Documentation**: [github.com/steveyegge/beads/docs](https://github.com/steveyegge/beads/tree/main/docs)
76+
- **Quick Start Guide**: Run `bd quickstart`
77+
- **Examples**: [github.com/steveyegge/beads/examples](https://github.com/steveyegge/beads/tree/main/examples)
78+
79+
---
80+
81+
*Beads: Issue tracking that moves at the speed of thought*

.beads/config.yaml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Beads Configuration File
2+
# This file configures default behavior for all bd commands in this repository
3+
# All settings can also be set via environment variables (BD_* prefix)
4+
# or overridden with command-line flags
5+
6+
# Issue prefix for this repository (used by bd init)
7+
# If not set, bd init will auto-detect from directory name
8+
# Example: issue-prefix: "myproject" creates issues like "myproject-1", "myproject-2", etc.
9+
# issue-prefix: ""
10+
11+
# Use no-db mode: JSONL-only, no Dolt database
12+
# When true, bd will use .beads/issues.jsonl as the source of truth
13+
# no-db: false
14+
15+
# Enable JSON output by default
16+
# json: false
17+
18+
# Feedback title formatting for mutating commands (create/update/close/dep/edit)
19+
# 0 = hide titles, N > 0 = truncate to N characters
20+
# output:
21+
# title-length: 255
22+
23+
# Default actor for audit trails (overridden by BEADS_ACTOR or --actor)
24+
# actor: ""
25+
26+
# Export events (audit trail) to .beads/events.jsonl on each flush/sync
27+
# When enabled, new events are appended incrementally using a high-water mark.
28+
# Use 'bd export --events' to trigger manually regardless of this setting.
29+
# events-export: false
30+
31+
# Multi-repo configuration (experimental - bd-307)
32+
# Allows hydrating from multiple repositories and routing writes to the correct database
33+
# repos:
34+
# primary: "." # Primary repo (where this database lives)
35+
# additional: # Additional repos to hydrate from (read-only)
36+
# - ~/beads-planning # Personal planning repo
37+
# - ~/work-planning # Work planning repo
38+
39+
# JSONL backup (periodic export for off-machine recovery)
40+
# Auto-enabled when a git remote exists. Override explicitly:
41+
# backup:
42+
# enabled: false # Disable auto-backup entirely
43+
# interval: 15m # Minimum time between auto-exports
44+
# git-push: false # Disable git push (export locally only)
45+
# git-repo: "" # Separate git repo for backups (default: project repo)
46+
47+
# Integration settings (access with 'bd config get/set')
48+
# These are stored in the database, not in this file:
49+
# - jira.url
50+
# - jira.project
51+
# - linear.url
52+
# - linear.api-key
53+
# - github.org
54+
# - github.repo

.beads/hooks/post-checkout

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/usr/bin/env sh
2+
# --- BEGIN BEADS INTEGRATION v0.62.0 ---
3+
# This section is managed by beads. Do not remove these markers.
4+
if command -v bd >/dev/null 2>&1; then
5+
export BD_GIT_HOOK=1
6+
_bd_timeout=${BEADS_HOOK_TIMEOUT:-300}
7+
if command -v timeout >/dev/null 2>&1; then
8+
timeout "$_bd_timeout" bd hooks run post-checkout "$@"
9+
_bd_exit=$?
10+
if [ $_bd_exit -eq 124 ]; then
11+
echo >&2 "beads: hook 'post-checkout' timed out after ${_bd_timeout}s — continuing without beads"
12+
_bd_exit=0
13+
fi
14+
else
15+
bd hooks run post-checkout "$@"
16+
_bd_exit=$?
17+
fi
18+
if [ $_bd_exit -eq 3 ]; then
19+
echo >&2 "beads: database not initialized — skipping hook 'post-checkout'"
20+
_bd_exit=0
21+
fi
22+
if [ $_bd_exit -ne 0 ]; then exit $_bd_exit; fi
23+
fi
24+
# --- END BEADS INTEGRATION v0.62.0 ---

.beads/hooks/post-merge

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/usr/bin/env sh
2+
# --- BEGIN BEADS INTEGRATION v0.62.0 ---
3+
# This section is managed by beads. Do not remove these markers.
4+
if command -v bd >/dev/null 2>&1; then
5+
export BD_GIT_HOOK=1
6+
_bd_timeout=${BEADS_HOOK_TIMEOUT:-300}
7+
if command -v timeout >/dev/null 2>&1; then
8+
timeout "$_bd_timeout" bd hooks run post-merge "$@"
9+
_bd_exit=$?
10+
if [ $_bd_exit -eq 124 ]; then
11+
echo >&2 "beads: hook 'post-merge' timed out after ${_bd_timeout}s — continuing without beads"
12+
_bd_exit=0
13+
fi
14+
else
15+
bd hooks run post-merge "$@"
16+
_bd_exit=$?
17+
fi
18+
if [ $_bd_exit -eq 3 ]; then
19+
echo >&2 "beads: database not initialized — skipping hook 'post-merge'"
20+
_bd_exit=0
21+
fi
22+
if [ $_bd_exit -ne 0 ]; then exit $_bd_exit; fi
23+
fi
24+
# --- END BEADS INTEGRATION v0.62.0 ---

.beads/hooks/pre-commit

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/usr/bin/env sh
2+
# --- BEGIN BEADS INTEGRATION v0.62.0 ---
3+
# This section is managed by beads. Do not remove these markers.
4+
if command -v bd >/dev/null 2>&1; then
5+
export BD_GIT_HOOK=1
6+
_bd_timeout=${BEADS_HOOK_TIMEOUT:-300}
7+
if command -v timeout >/dev/null 2>&1; then
8+
timeout "$_bd_timeout" bd hooks run pre-commit "$@"
9+
_bd_exit=$?
10+
if [ $_bd_exit -eq 124 ]; then
11+
echo >&2 "beads: hook 'pre-commit' timed out after ${_bd_timeout}s — continuing without beads"
12+
_bd_exit=0
13+
fi
14+
else
15+
bd hooks run pre-commit "$@"
16+
_bd_exit=$?
17+
fi
18+
if [ $_bd_exit -eq 3 ]; then
19+
echo >&2 "beads: database not initialized — skipping hook 'pre-commit'"
20+
_bd_exit=0
21+
fi
22+
if [ $_bd_exit -ne 0 ]; then exit $_bd_exit; fi
23+
fi
24+
# --- END BEADS INTEGRATION v0.62.0 ---

.beads/hooks/pre-push

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/usr/bin/env sh
2+
# --- BEGIN BEADS INTEGRATION v0.62.0 ---
3+
# This section is managed by beads. Do not remove these markers.
4+
if command -v bd >/dev/null 2>&1; then
5+
export BD_GIT_HOOK=1
6+
_bd_timeout=${BEADS_HOOK_TIMEOUT:-300}
7+
if command -v timeout >/dev/null 2>&1; then
8+
timeout "$_bd_timeout" bd hooks run pre-push "$@"
9+
_bd_exit=$?
10+
if [ $_bd_exit -eq 124 ]; then
11+
echo >&2 "beads: hook 'pre-push' timed out after ${_bd_timeout}s — continuing without beads"
12+
_bd_exit=0
13+
fi
14+
else
15+
bd hooks run pre-push "$@"
16+
_bd_exit=$?
17+
fi
18+
if [ $_bd_exit -eq 3 ]; then
19+
echo >&2 "beads: database not initialized — skipping hook 'pre-push'"
20+
_bd_exit=0
21+
fi
22+
if [ $_bd_exit -ne 0 ]; then exit $_bd_exit; fi
23+
fi
24+
# --- END BEADS INTEGRATION v0.62.0 ---

.beads/hooks/prepare-commit-msg

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/usr/bin/env sh
2+
# --- BEGIN BEADS INTEGRATION v0.62.0 ---
3+
# This section is managed by beads. Do not remove these markers.
4+
if command -v bd >/dev/null 2>&1; then
5+
export BD_GIT_HOOK=1
6+
_bd_timeout=${BEADS_HOOK_TIMEOUT:-300}
7+
if command -v timeout >/dev/null 2>&1; then
8+
timeout "$_bd_timeout" bd hooks run prepare-commit-msg "$@"
9+
_bd_exit=$?
10+
if [ $_bd_exit -eq 124 ]; then
11+
echo >&2 "beads: hook 'prepare-commit-msg' timed out after ${_bd_timeout}s — continuing without beads"
12+
_bd_exit=0
13+
fi
14+
else
15+
bd hooks run prepare-commit-msg "$@"
16+
_bd_exit=$?
17+
fi
18+
if [ $_bd_exit -eq 3 ]; then
19+
echo >&2 "beads: database not initialized — skipping hook 'prepare-commit-msg'"
20+
_bd_exit=0
21+
fi
22+
if [ $_bd_exit -ne 0 ]; then exit $_bd_exit; fi
23+
fi
24+
# --- END BEADS INTEGRATION v0.62.0 ---

.beads/metadata.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"database": "dolt",
3+
"backend": "dolt",
4+
"dolt_mode": "server",
5+
"dolt_database": "stackpanel",
6+
"project_id": "afecc8ed-a8f3-4463-9223-01e77bc28226"
7+
}

0 commit comments

Comments
 (0)