From 50a0846763f0daec8df32e7147dfe1aacd7ec19a Mon Sep 17 00:00:00 2001 From: Steve Yegge Date: Mon, 20 Oct 2025 22:21:08 -0700 Subject: [PATCH] chore: Add Homebrew formula for v0.10.1 and remove old formulas --- .beads/issues.jsonl | 2 +- bd-formula-0.10.0.rb => bd-formula-0.10.1.rb | 4 +-- bd-formula-0.9.10.rb | 29 -------------------- bd-formula-0.9.8.rb | 29 -------------------- 4 files changed, 3 insertions(+), 61 deletions(-) rename bd-formula-0.10.0.rb => bd-formula-0.10.1.rb (91%) delete mode 100644 bd-formula-0.9.10.rb delete mode 100644 bd-formula-0.9.8.rb diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl index 87e34fba..5a8ee382 100644 --- a/.beads/issues.jsonl +++ b/.beads/issues.jsonl @@ -83,7 +83,7 @@ {"id":"bd-176","title":"Fix cross-platform signal handling in daemon.go","description":"Replace hard-coded Unix signals with platform-aware helpers: signal.Notify with daemonSignals, use isReloadSignal(), use sendStopSignal() instead of process.Signal(syscall.SIGTERM)","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-10-20T21:09:05.317357-07:00","updated_at":"2025-10-20T21:24:56.70424-07:00","closed_at":"2025-10-20T21:24:56.70424-07:00"} {"id":"bd-177","title":"Fix cross-platform process management in daemon.go","description":"Replace direct syscall.SysProcAttr assignments with configureDaemonProcess() helper in migrateToGlobalDaemon() and other start/stop flows","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-10-20T21:09:09.213639-07:00","updated_at":"2025-10-20T21:27:10.908884-07:00","closed_at":"2025-10-20T21:27:10.908884-07:00"} {"id":"bd-178","title":"Add Windows CI build to GitHub Actions","description":"Add windows-latest job that builds bd.exe and runs unit tests to catch cross-platform issues","status":"closed","priority":1,"issue_type":"task","created_at":"2025-10-20T21:09:12.978711-07:00","updated_at":"2025-10-20T21:27:40.120681-07:00","closed_at":"2025-10-20T21:27:40.120681-07:00"} -{"id":"bd-179","title":"bd uses wrong default prefix when database filename indicates different prefix","description":"When creating issues without explicit --id flag, bd defaults to 'bd-' prefix even when the database filename and existing issues use a different prefix (e.g., 'wy-').","design":"## Bug Report\n\n**Environment:**\n- bd version: 0.9.11 (based on metadata)\n- Database: .beads/wy-.db\n- Directory: /Users/stevey/ai/flutter/wyvern\n\n**Observed Behavior:**\nWhen running `bd create task \"title\"` without --id flag, new issues get assigned `bd-*` IDs even though:\n- Database filename is `.beads/wy-.db` (implies wy- prefix)\n- All existing issues use `wy-*` prefix (wy-1 through wy-77)\n- No prefix metadata stored in database\n\n**Evidence:**\n```sql\nsqlite3 .beads/wy-.db \"SELECT * FROM issue_counters;\"\nwy|72\nbd|29\n```\n\nThe bd counter was incremented when I accidentally created bd-23 through bd-29 (now deleted).\n\n**Expected Behavior:**\nbd should derive the default prefix from:\n1. Database filename (`wy-.db` → `wy-` prefix), OR\n2. Most recently used prefix in the database, OR \n3. Prefix stored in metadata table\n\nAccording to `bd init --help`:\n\u003e -p, --prefix string Issue prefix (default: current directory name)\n\nBut database filename convention appears to be `\u003cprefix\u003e.db`, so wy-.db should mean wy- is the intended prefix.\n\n**Workaround:**\nUse explicit `--id` flag: `bd create task \"title\" --id wy-73`\n\n**Reproduction:**\n```bash\n# In a directory with .beads/wy-.db containing wy-* issues\nbd create task \"test\"\n# Creates bd-* issue instead of wy-* issue\n```\n\n**Suggested Fix:**\n1. Store the intended prefix in metadata table during `bd init`\n2. When creating issues, check metadata for preferred prefix\n3. Fallback to extracting prefix from database filename\n4. Last resort: use directory name\n\n**Related Code:**\nLikely in issue counter/ID generation logic where new IDs are assigned.","status":"in_progress","priority":2,"issue_type":"task","created_at":"2025-10-20T22:10:24.611471-07:00","updated_at":"2025-10-20T22:12:12.098428-07:00"} +{"id":"bd-179","title":"bd uses wrong default prefix when database filename indicates different prefix","description":"When creating issues without explicit --id flag, bd defaults to 'bd-' prefix even when the database filename and existing issues use a different prefix (e.g., 'wy-').","design":"## Bug Report\n\n**Environment:**\n- bd version: 0.9.11 (based on metadata)\n- Database: .beads/wy-.db\n- Directory: /Users/stevey/ai/flutter/wyvern\n\n**Observed Behavior:**\nWhen running `bd create task \"title\"` without --id flag, new issues get assigned `bd-*` IDs even though:\n- Database filename is `.beads/wy-.db` (implies wy- prefix)\n- All existing issues use `wy-*` prefix (wy-1 through wy-77)\n- No prefix metadata stored in database\n\n**Evidence:**\n```sql\nsqlite3 .beads/wy-.db \"SELECT * FROM issue_counters;\"\nwy|72\nbd|29\n```\n\nThe bd counter was incremented when I accidentally created bd-23 through bd-29 (now deleted).\n\n**Expected Behavior:**\nbd should derive the default prefix from:\n1. Database filename (`wy-.db` → `wy-` prefix), OR\n2. Most recently used prefix in the database, OR \n3. Prefix stored in metadata table\n\nAccording to `bd init --help`:\n\u003e -p, --prefix string Issue prefix (default: current directory name)\n\nBut database filename convention appears to be `\u003cprefix\u003e.db`, so wy-.db should mean wy- is the intended prefix.\n\n**Workaround:**\nUse explicit `--id` flag: `bd create task \"title\" --id wy-73`\n\n**Reproduction:**\n```bash\n# In a directory with .beads/wy-.db containing wy-* issues\nbd create task \"test\"\n# Creates bd-* issue instead of wy-* issue\n```\n\n**Suggested Fix:**\n1. Store the intended prefix in metadata table during `bd init`\n2. When creating issues, check metadata for preferred prefix\n3. Fallback to extracting prefix from database filename\n4. Last resort: use directory name\n\n**Related Code:**\nLikely in issue counter/ID generation logic where new IDs are assigned.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-10-20T22:10:24.611471-07:00","updated_at":"2025-10-20T22:16:25.606694-07:00","closed_at":"2025-10-20T22:16:25.606694-07:00"} {"id":"bd-18","title":"Fix: bd init --prefix test -q flag not recognized","description":"The init command doesn't recognize the -q flag. When running 'bd init --prefix test -q', it fails silently or behaves unexpectedly. The flag should either be implemented for quiet mode or removed from documentation if not supported.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-10-16T20:46:08.971822-07:00","updated_at":"2025-10-20T16:02:06.032275-07:00","closed_at":"2025-10-17T00:09:18.921816-07:00"} {"id":"bd-19","title":"Implement storage driver interface for pluggable backends","description":"Create abstraction layer for storage to support multiple backends (SQLite, Postgres, Turso, in-memory testing, etc.).\n\n**Current state:** All storage logic hardcoded to SQLite in internal/storage/sqlite/sqlite.go\n\n**Proposed design:**\n\n```go\n// internal/storage/storage.go\ntype Store interface {\n // Issue CRUD\n CreateIssue(issue *Issue) error\n GetIssue(id string) (*Issue, error)\n UpdateIssue(id string, updates *Issue) error\n DeleteIssue(id string) error\n ListIssues(filter *Filter) ([]*Issue, error)\n \n // Dependencies\n AddDependency(from, to string, depType DependencyType) error\n RemoveDependency(from, to string, depType DependencyType) error\n GetDependencies(id string) ([]*Dependency, error)\n \n // Counters, stats\n GetNextID(prefix string) (string, error)\n GetStats() (*Stats, error)\n \n Close() error\n}\n```\n\n**Benefits:**\n- Better testing (mock/in-memory stores)\n- Future flexibility (Postgres, cloud APIs, etc.)\n- Clean architecture (business logic decoupled from storage)\n- Enable Turso or other backends without refactoring everything\n\n**Implementation steps:**\n1. Define Store interface in internal/storage/storage.go\n2. Refactor SQLiteStore to implement interface\n3. Update all commands to use interface, not concrete type\n4. Add MemoryStore for testing\n5. Add driver selection via config (storage.driver = sqlite|turso|postgres)\n6. Update tests to use interface\n\n**Note:** This is valuable even without adopting Turso. Good architecture practice.\n\n**Context:** From GH issue #2 RFC evaluation. Driver interface is low-cost, high-value regardless of whether we add alternative backends.","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-10-16T20:46:08.971822-07:00","updated_at":"2025-10-20T16:02:06.032562-07:00","closed_at":"2025-10-17T23:46:22.447301-07:00"} {"id":"bd-2","title":"Sub-task under A","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-10-16T20:46:08.971822-07:00","updated_at":"2025-10-20T16:02:06.032798-07:00","closed_at":"2025-10-16T10:07:34.130096-07:00"} diff --git a/bd-formula-0.10.0.rb b/bd-formula-0.10.1.rb similarity index 91% rename from bd-formula-0.10.0.rb rename to bd-formula-0.10.1.rb index f872255b..86379211 100644 --- a/bd-formula-0.10.0.rb +++ b/bd-formula-0.10.1.rb @@ -1,8 +1,8 @@ class Bd < Formula desc "AI-supervised issue tracker for coding workflows" homepage "https://github.com/steveyegge/beads" - url "https://github.com/steveyegge/beads/archive/refs/tags/v0.10.0.tar.gz" - sha256 "9279266d01840e6421d61fdc5240dbd19e85089f4a373b5d42ecaff74045d0c9" + url "https://github.com/steveyegge/beads/archive/refs/tags/v0.10.1.tar.gz" + sha256 "efe26286a1747c10c8e6fee62226d6a4bb1b52520a721e89d9b469026f81d4dd" license "MIT" head "https://github.com/steveyegge/beads.git", branch: "main" diff --git a/bd-formula-0.9.10.rb b/bd-formula-0.9.10.rb deleted file mode 100644 index 92b33dd0..00000000 --- a/bd-formula-0.9.10.rb +++ /dev/null @@ -1,29 +0,0 @@ -class Bd < Formula - desc "AI-supervised issue tracker for coding workflows" - homepage "https://github.com/steveyegge/beads" - url "https://github.com/steveyegge/beads/archive/refs/tags/v0.9.10.tar.gz" - sha256 "e4dd12ebe8d27c5edab68e24f244ef55809e6b95c75179e2a57c866e5623443f" - license "MIT" - head "https://github.com/steveyegge/beads.git", branch: "main" - - depends_on "go" => :build - - def install - # Build the CLI - system "go", "build", *std_go_args(ldflags: "-s -w -X main.Version=#{version}"), "./cmd/bd" - end - - test do - # Test that the binary runs and outputs version - output = shell_output("#{bin}/bd version") - assert_match "bd version #{version}", output - - # Test init command - system bin/"bd", "init", "--prefix=test" - assert_predicate testpath/".beads/test.db", :exist? - - # Test list command (should show no issues) - list_output = shell_output("#{bin}/bd list --db=#{testpath}/.beads/test.db") - assert_match "Found 0 issues", list_output - end -end diff --git a/bd-formula-0.9.8.rb b/bd-formula-0.9.8.rb deleted file mode 100644 index d15b0bfe..00000000 --- a/bd-formula-0.9.8.rb +++ /dev/null @@ -1,29 +0,0 @@ -class Bd < Formula - desc "AI-supervised issue tracker for coding workflows" - homepage "https://github.com/steveyegge/beads" - url "https://github.com/steveyegge/beads/archive/refs/tags/v0.9.8.tar.gz" - sha256 "f5c35edaea7f12013cc3ce2237971ae188be226ae3eb6fad18f2f3afbf83d73f" - license "MIT" - head "https://github.com/steveyegge/beads.git", branch: "main" - - depends_on "go" => :build - - def install - # Build the CLI - system "go", "build", *std_go_args(ldflags: "-s -w -X main.Version=#{version}"), "./cmd/bd" - end - - test do - # Test that the binary runs and outputs version - output = shell_output("#{bin}/bd version") - assert_match "bd version #{version}", output - - # Test init command - system bin/"bd", "init", "--prefix=test" - assert_predicate testpath/".beads/test.db", :exist? - - # Test list command (should show no issues) - list_output = shell_output("#{bin}/bd list --db=#{testpath}/.beads/test.db") - assert_match "Found 0 issues", list_output - end -end