examples: Add complete Go extension example with documentation (#15)
* 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>
This commit is contained in:
11
examples/bd-example-extension-go/go.mod
Normal file
11
examples/bd-example-extension-go/go.mod
Normal file
@@ -0,0 +1,11 @@
|
||||
module bd-example-extension-go
|
||||
|
||||
go 1.21
|
||||
|
||||
require (
|
||||
github.com/mattn/go-sqlite3 v1.14.32
|
||||
github.com/steveyegge/beads v0.0.0-00010101000000-000000000000
|
||||
)
|
||||
|
||||
// For local development - remove when beads is published
|
||||
replace github.com/steveyegge/beads => ../..
|
||||
Reference in New Issue
Block a user