* examples: Add complete Go extension example with documentation Adds a comprehensive Go extension example demonstrating bd's extension patterns and Go API usage: **New bd-example-extension-go package:** - Complete working example in 116 lines total - main.go (93 lines): Full workflow with embedded schema - schema.sql (23 lines): Extension tables with foreign keys - Comprehensive README.md (241 lines): Documentation and usage guide - Go module with proper dependencies **Key patterns demonstrated:** - Schema extension with namespaced tables (example_executions, example_checkpoints) - Foreign key integration with bd's issues table - Dual-layer access using bd's Go API + direct SQL queries - Complex joined queries across bd and extension tables - Execution tracking with agent assignment and checkpointing **Features:** - Auto-discovery of bd database path - Proper SQLite configuration (WAL mode, busy timeout) - Real-world orchestration patterns - Installation and usage instructions - Integration examples with bd's ready work queue This provides a complete reference implementation for developers building bd extensions, complementing the Go API added in recent commits. * Update go.mod after merge with main, add .gitignore - Fix Go version to 1.21 (matches main module) - Reorganize dependencies properly - Keep replace directive for local development - Add .gitignore for built binary --------- Co-authored-by: Steve Yegge <steve.yegge@gmail.com>
24 lines
869 B
SQL
24 lines
869 B
SQL
CREATE TABLE IF NOT EXISTS example_executions (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
issue_id TEXT NOT NULL,
|
|
status TEXT NOT NULL,
|
|
agent_id TEXT,
|
|
started_at DATETIME,
|
|
completed_at DATETIME,
|
|
error TEXT,
|
|
FOREIGN KEY (issue_id) REFERENCES issues(id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS example_checkpoints (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
execution_id INTEGER NOT NULL,
|
|
phase TEXT NOT NULL,
|
|
checkpoint_data TEXT,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (execution_id) REFERENCES example_executions(id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_executions_issue ON example_executions(issue_id);
|
|
CREATE INDEX IF NOT EXISTS idx_executions_status ON example_executions(status);
|
|
CREATE INDEX IF NOT EXISTS idx_checkpoints_execution ON example_checkpoints(execution_id);
|