602c59eb480ac16aff8c93af41d7f24567247d41
Add comprehensive database corruption recovery capabilities to bd doctor. ## Changes ### New Command Flags - --force: Force repair mode that bypasses database validation - --source: Choose source of truth (auto/jsonl/db) for recovery ### Enhanced Error Classification Improved CheckDatabaseIntegrity() to detect and classify: - Database locked errors (suggests killing processes, removing locks) - Invalid SQLite files (suggests JSONL recovery with exact commands) - Migration/validation failures (orphaned dependencies, etc.) - Generic database errors (context-aware suggestions) Each error type provides: - Specific diagnosis - Step-by-step recovery instructions - Appropriate command examples with new flags ### Force Recovery Implementation New DatabaseCorruptionRecoveryWithOptions() function: - Bypasses database validation when --force is used - Supports explicit source of truth selection - Auto-detects best recovery path when source=auto - Comprehensive rollback on failure - Uses --force --no-git-history in import during force mode ### Integration Updated fix orchestration to pass force and source flags to recovery. ## Usage Examples ```bash # Unopenable database with validation errors bd doctor --fix --force --source=jsonl # Choose specific source of truth bd doctor --fix --source=jsonl # Trust JSONL bd doctor --fix --source=db # Trust database bd doctor --fix --source=auto # Auto-detect (default) # Force recovery with auto-detection bd doctor --fix --force ``` ## Problem Solved Before: When database had validation errors (orphaned dependencies, foreign key violations), all bd commands failed in a catch-22 situation. Could not open database to fix database. Users had to manually delete database files and reinit. After: bd doctor --fix --force detects unopenable databases, provides clear recovery steps, and forces rebuild from JSONL even when database validation fails. ## Backward Compatibility - All new flags are optional with safe defaults - --source defaults to 'auto' (existing behavior) - --force is opt-in only - Existing bd doctor behavior unchanged when flags not used - DatabaseCorruptionRecovery() still exists for compatibility Fixes: bd-pgza
…
bd - Beads
Distributed, git-backed graph issue tracker for AI agents.
Beads provides a persistent, structured memory for coding agents. It replaces messy markdown plans with a dependency-aware graph, allowing agents to handle long-horizon tasks without losing context.
⚡ Quick Start
# Install (macOS/Linux)
curl -fsSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
# Initialize (Humans run this once)
bd init
# Tell your agent
echo "Use 'bd' for task tracking" >> AGENTS.md
🛠 Features
- Git as Database: Issues stored as JSONL in
.beads/. Versioned, branched, and merged like code. - Agent-Optimized: JSON output, dependency tracking, and auto-ready task detection.
- Zero Conflict: Hash-based IDs (
bd-a1b2) prevent merge collisions in multi-agent/multi-branch workflows. - Invisible Infrastructure: SQLite local cache for speed; background daemon for auto-sync.
- Compaction: Semantic "memory decay" summarizes old closed tasks to save context window.
📖 Essential Commands
| Command | Action |
|---|---|
bd ready |
List tasks with no open blockers. |
bd create "Title" -p 0 |
Create a P0 task. |
bd dep add <child> <parent> |
Link tasks (blocks, related, parent-child). |
bd show <id> |
View task details and audit trail. |
🔗 Hierarchy & Workflow
Beads supports hierarchical IDs for epics:
bd-a3f8(Epic)bd-a3f8.1(Task)bd-a3f8.1.1(Sub-task)
Stealth Mode: Run bd init --stealth to use Beads locally without committing files to the main repo. Perfect for personal use on shared projects.
📦 Installation
- npm:
npm install -g @beads/bd - Homebrew:
brew install steveyegge/beads/bd - Go:
go install github.com/steveyegge/beads/cmd/bd@latest
Requirements: Linux (glibc 2.32+), macOS, or Windows.
🌐 Community Tools
See docs/COMMUNITY_TOOLS.md for a curated list of community-built UIs, extensions, and integrations—including terminal interfaces, web UIs, editor extensions, and native apps.
📝 Documentation
Languages
Go
95%
Python
3.7%
Shell
0.7%
JavaScript
0.3%
PowerShell
0.1%