From f134a3d65862866ac15a542d1d02b0b45879acd6 Mon Sep 17 00:00:00 2001 From: matt wilkie Date: Sat, 29 Nov 2025 00:39:28 -0700 Subject: [PATCH 1/3] fix: remove duplicate countIssuesInJSONLFile function Fixes build failure in Test, Lint, Test (Windows), and Test Nix Flake jobs. The function was defined in both init.go and doctor.go. Removed the init.go version which is now unused. The doctor.go version (which calls countJSONLIssues) is the canonical implementation. Fixes #19780439467 --- .beads/issues.jsonl | 2 ++ cmd/bd/init.go | 30 ------------------------------ 2 files changed, 2 insertions(+), 30 deletions(-) diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl index ede2bdff..b21aa05e 100644 --- a/.beads/issues.jsonl +++ b/.beads/issues.jsonl @@ -1,5 +1,6 @@ {"id":"bd-03r","title":"Document deletions manifest in AGENTS.md and README","description":"Parent: bd-imj\n\n## Task\nAdd documentation about the deletions manifest feature.\n\n## Locations to Update\n\n### AGENTS.md\n- Explain that deletions.jsonl is tracked in git\n- Document that `bd delete` records to the manifest\n- Explain cross-clone propagation mechanism\n\n### README.md \n- Brief mention in .beads directory structure section\n- Link to detailed docs if needed\n\n### docs/deletions.md (new file)\n- Full technical documentation\n- Format specification\n- Pruning policy\n- Git history fallback\n- Troubleshooting\n\n## Acceptance Criteria\n- AGENTS.md updated with deletion workflow\n- README.md mentions deletions.jsonl purpose\n- New docs/deletions.md with complete reference","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-25T14:56:49.13027-08:00","updated_at":"2025-11-25T15:17:23.145944-08:00","closed_at":"2025-11-25T15:17:23.145944-08:00"} {"id":"bd-0b2","title":"Need --no-git-history flag to disable git history backfill during import","description":"During JSONL migration (beads.jsonl → issues.jsonl), the git history backfill mechanism causes data loss by finding issues in the old beads.jsonl git history and incorrectly treating them as deleted.\n\nA --no-git-history flag for 'bd import' and 'bd sync' would allow users to disable the git history fallback when it's causing problems.\n\nUse cases:\n- JSONL filename migrations\n- Repos with complex git history\n- Debugging import issues\n- Performance (skip slow git scans)\n\nRelated: bd-0gh (migration causes spurious deletions)","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-11-26T22:28:22.5286-08:00","updated_at":"2025-11-26T23:10:49.354436-08:00","closed_at":"2025-11-26T23:10:49.354436-08:00"} +{"id":"bd-0e3","title":"Remove duplicate countIssuesInJSONLFile function","description":"init.go and doctor.go both defined countIssuesInJSONLFile. Removed the init.go version which is now unused. The doctor.go version (which calls countJSONLIssues) is the canonical implementation.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T00:35:52.359237464-07:00","updated_at":"2025-11-29T00:36:18.03477857-07:00","closed_at":"2025-11-29T00:36:18.034782016-07:00","dependencies":[{"issue_id":"bd-0e3","depends_on_id":"bd-63l","type":"discovered-from","created_at":"2025-11-29T00:35:52.366221162-07:00","created_by":"matt"}]} {"id":"bd-0io","title":"Sync should cleanup snapshot files after completion","description":"## Problem\n`bd sync` leaves orphaned merge artifact files (beads.base.jsonl, beads.left.jsonl) after completion, causing:\n1. Doctor warnings about 'Multiple JSONL files found'\n2. Confusion during debugging\n3. Potential stale data issues on next sync\n\n## Root Cause\n`SnapshotManager` creates these files for 3-way merge deletion tracking but `Cleanup()` is never called after sync completes (success or failure).\n\n## Fix\nCall `SnapshotManager.Cleanup()` at end of successful sync:\n\n```go\n// sync.go after successful validation\nsm := NewSnapshotManager(jsonlPath)\nsm.Cleanup()\n```\n\n## Files\n- cmd/bd/sync.go (add cleanup call)\n- cmd/bd/snapshot_manager.go (Cleanup method exists at line 188)","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-11-28T17:06:20.881183-08:00","updated_at":"2025-11-28T21:53:44.37689-08:00","closed_at":"2025-11-28T21:53:44.37689-08:00"} {"id":"bd-0v4","title":"Short tests taking 13+ minutes (performance regression)","description":"","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-11-27T00:54:03.350344-08:00","updated_at":"2025-11-27T13:23:19.376658-08:00","closed_at":"2025-11-27T01:36:06.684059-08:00"} {"id":"bd-1pj6","title":"Proposal: Custom status states via config","description":"Proposal to add 'custom status states' via `bd config`.\nUsers could define an optional issue status enum (e.g., awaiting_review, review_in_progress) in the config.\nThis would enable multi-step pipelines to process issues where each step correlates to a specific status.\n\nExamples:\n- awaiting_verification\n- awaiting_docs\n- awaiting_testing\n","status":"open","priority":3,"issue_type":"feature","created_at":"2025-11-20T18:55:48.670499-05:00","updated_at":"2025-11-20T18:55:48.670499-05:00"} @@ -14,6 +15,7 @@ {"id":"bd-4pv","title":"bd export only outputs 1 issue after auto-import corrupts database","description":"When auto-import runs and purges issues (due to git history backfill bug), subsequent 'bd export' only exports 1 issue even though the database should have many.\n\nReproduction:\n1. Have issues.jsonl with 55 issues\n2. Auto-import triggers and purges all issues via git history backfill\n3. Run 'bd export' - only exports 1 issue (the last one created before corruption)\n\nThe database gets into an inconsistent state where most issues are purged but export doesn't realize this.\n\nWorkaround: Rebuild database from scratch with 'rm .beads/beads.db \u0026\u0026 bd init --prefix bd'","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-11-26T22:28:40.828866-08:00","updated_at":"2025-11-28T17:28:55.545056-08:00","closed_at":"2025-11-27T22:50:35.036227-08:00"} {"id":"bd-4t7","title":"Auto-import runs during --no-auto-import operations via stats/ready commands","description":"Even when using --no-auto-import flag, certain commands like 'bd stats' and 'bd ready' still trigger auto-import internally, which can cause the git history backfill bug to corrupt data.\n\nExample:\n bd stats --no-auto-import\n # Still prints 'Purged bd-xxx (recovered from git history...)'\n\nThe flag should completely disable auto-import for the command, but it appears some code paths still trigger it.\n\nWorkaround: Use --allow-stale instead, or --sandbox mode.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-11-26T22:28:59.305898-08:00","updated_at":"2025-11-27T00:54:20.335013-08:00","closed_at":"2025-11-27T00:54:12.561872-08:00"} {"id":"bd-5bj","title":"Registry has cross-process race condition","description":"The global daemon registry (~/.beads/registry.json) can be corrupted when multiple daemons from different workspaces write simultaneously.\n\n**Root cause:**\n- Registry uses an in-process mutex but no file-level locking\n- Register() and Unregister() release the mutex between read and write\n- Multiple daemon processes can interleave their read-modify-write cycles\n\n**Evidence:**\nFound registry.json with double closing bracket: `]]` instead of `]`\n\n**Fix options:**\n1. Use file locking (flock/fcntl) around the entire read-modify-write cycle\n2. Use atomic write pattern (write to temp file, rename)\n3. Both (belt and suspenders)\n\n**Files:**\n- internal/daemon/registry.go:46-64 (readEntries)\n- internal/daemon/registry.go:67-87 (writeEntries)\n- internal/daemon/registry.go:90-108 (Register - the race window)","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-11-27T13:55:50.426188-08:00","updated_at":"2025-11-27T14:07:06.22622-08:00","closed_at":"2025-11-27T14:07:06.22622-08:00"} +{"id":"bd-63l","title":"bd hooks install fails in git worktrees","description":"When bd is used in a git worktree, bd hooks install fails with 'mkdir .git: not a directory' because .git is a file (gitdir pointer) not a directory. Beads should detect and follow the .git gitdir pointer to install hooks in the correct location. This blocks normal worktree workflows.\n\n## Symptoms of this bug:\n- Git hooks don't install automatically\n- Auto-sync doesn't run (5-second debounce)\n- Hash mismatch warnings in bd output\n- Daemon fails to start with 'auto_start_failed'\n\n## Workaround:\nUse `git rev-parse --git-dir` to find the actual hooks directory and copy hooks manually:\n```bash\nmkdir -p $(git rev-parse --git-dir)/hooks\ncp -r .beads-hooks/* $(git rev-parse --git-dir)/hooks/\n```","status":"open","priority":1,"issue_type":"bug","created_at":"2025-11-29T00:27:59.111163003-07:00","updated_at":"2025-11-29T00:38:30.640871318-07:00"} {"id":"bd-736d","title":"Refactor path canonicalization into helper function","description":"The path canonicalization logic (filepath.Abs + EvalSymlinks) is duplicated in 3 places:\n- beads.go:131-137 (BEADS_DIR handling)\n- cmd/bd/main.go:446-451 (--no-db cleanup)\n- cmd/bd/nodb.go:26-31 (--no-db initialization)\n\nRefactoring suggestion:\nExtract to a helper function like:\n func canonicalizePath(path string) string\n\nThis would:\n- Reduce code duplication\n- Make the logic easier to maintain\n- Ensure consistent behavior across all path handling\n\nRelated to bd-e16b implementation.","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-11-02T18:33:47.727443-08:00","updated_at":"2025-11-25T22:27:33.738672-08:00","closed_at":"2025-11-25T22:27:33.738672-08:00"} {"id":"bd-81a","title":"Add programmatic tip injection API","description":"Allow tips to be programmatically injected at runtime based on detected conditions. This enables dynamic tips (not just pre-defined ones) to be shown with custom priority and frequency.","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-11-11T23:29:46.645583-08:00","updated_at":"2025-11-25T17:52:35.096882-08:00","closed_at":"2025-11-25T17:52:35.096882-08:00","dependencies":[{"issue_id":"bd-81a","depends_on_id":"bd-d4i","type":"blocks","created_at":"2025-11-11T23:29:46.646327-08:00","created_by":"daemon"}]} {"id":"bd-8a5","title":"Refactor: deduplicate FindJSONLInDir and FindJSONLPath","description":"## Background\n\nAfter fixing bd-tqo, we now have two nearly identical functions for finding the JSONL file:\n- `autoimport.FindJSONLInDir(dbDir string)` in internal/autoimport/autoimport.go\n- `beads.FindJSONLPath(dbPath string)` in internal/beads/beads.go\n\nBoth implement the same logic:\n1. Prefer issues.jsonl\n2. Fall back to beads.jsonl for legacy support\n3. Skip deletions.jsonl and merge artifacts\n4. Default to issues.jsonl if nothing found\n\n## Problem\n\nCode duplication means bug fixes need to be applied in multiple places (as we just experienced with bd-tqo).\n\n## Proposed Solution\n\nExtract shared logic to a utility package that both can import. Options:\n1. Create `internal/jsonlpath` package with the core logic\n2. Have `autoimport` import `beads` and call `FindJSONLPath` (but APIs differ slightly)\n3. Move to `internal/utils` if appropriate\n\nNeed to verify no import cycles would be created.\n\n## Affected Files\n- internal/autoimport/autoimport.go\n- internal/beads/beads.go","status":"open","priority":4,"issue_type":"task","created_at":"2025-11-26T23:45:18.974339-08:00","updated_at":"2025-11-26T23:45:18.974339-08:00"} diff --git a/cmd/bd/init.go b/cmd/bd/init.go index 14b20a00..97cb4f70 100644 --- a/cmd/bd/init.go +++ b/cmd/bd/init.go @@ -1395,37 +1395,7 @@ Aborting.`, yellow("⚠"), filepath.Base(jsonlPath), issueCount, cyan("bd doctor return nil // No existing data found, safe to init } -// countIssuesInJSONLFile counts valid issue lines in a JSONL file -func countIssuesInJSONLFile(path string) int { - // #nosec G304 -- helper reads JSONL file in .beads directory - file, err := os.Open(path) - if err != nil { - return 0 - } - defer file.Close() - count := 0 - scanner := bufio.NewScanner(file) - // Use larger buffer for potentially large JSONL lines - scanner.Buffer(make([]byte, 0, 64*1024), 10*1024*1024) - - for scanner.Scan() { - line := scanner.Text() - if line == "" { - continue - } - - // Quick validation: check if it's valid JSON with an "id" field - var issue struct { - ID string `json:"id"` - } - if err := json.Unmarshal([]byte(line), &issue); err == nil && issue.ID != "" { - count++ - } - } - - return count -} // setupClaudeSettings creates or updates .claude/settings.local.json with onboard instruction func setupClaudeSettings(verbose bool) error { From dee16db0c0cc8ff8b11a8ad2a1803643d464348f Mon Sep 17 00:00:00 2001 From: matt wilkie Date: Sat, 29 Nov 2025 00:44:23 -0700 Subject: [PATCH 2/3] fix: suppress gosec lint warnings for file operations All file reads/writes are from controlled paths (.beads/, .git/, or git root). Add #nosec comments to suppress G304 and G204 warnings. - cmd/bd/doctor.go:664 - ReadFile from .beads/config.yaml - cmd/bd/main.go:645 - ReadFile from .beads/{issues,beads}.jsonl - cmd/bd/doctor/fix/database_config.go:166 - ReadFile from git root .gitattributes - cmd/bd/doctor/fix/untracked.go:61 - exec Command with whitelisted JSONL files --- .beads/issues.jsonl | 1 + _working_on_.md | 57 ++++++++++++++++++++++++++++ cmd/bd/doctor.go | 1 + cmd/bd/doctor/fix/database_config.go | 1 + cmd/bd/doctor/fix/untracked.go | 1 + cmd/bd/main.go | 1 + 6 files changed, 62 insertions(+) create mode 100644 _working_on_.md diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl index b21aa05e..4561ebd0 100644 --- a/.beads/issues.jsonl +++ b/.beads/issues.jsonl @@ -4,6 +4,7 @@ {"id":"bd-0io","title":"Sync should cleanup snapshot files after completion","description":"## Problem\n`bd sync` leaves orphaned merge artifact files (beads.base.jsonl, beads.left.jsonl) after completion, causing:\n1. Doctor warnings about 'Multiple JSONL files found'\n2. Confusion during debugging\n3. Potential stale data issues on next sync\n\n## Root Cause\n`SnapshotManager` creates these files for 3-way merge deletion tracking but `Cleanup()` is never called after sync completes (success or failure).\n\n## Fix\nCall `SnapshotManager.Cleanup()` at end of successful sync:\n\n```go\n// sync.go after successful validation\nsm := NewSnapshotManager(jsonlPath)\nsm.Cleanup()\n```\n\n## Files\n- cmd/bd/sync.go (add cleanup call)\n- cmd/bd/snapshot_manager.go (Cleanup method exists at line 188)","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-11-28T17:06:20.881183-08:00","updated_at":"2025-11-28T21:53:44.37689-08:00","closed_at":"2025-11-28T21:53:44.37689-08:00"} {"id":"bd-0v4","title":"Short tests taking 13+ minutes (performance regression)","description":"","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-11-27T00:54:03.350344-08:00","updated_at":"2025-11-27T13:23:19.376658-08:00","closed_at":"2025-11-27T01:36:06.684059-08:00"} {"id":"bd-1pj6","title":"Proposal: Custom status states via config","description":"Proposal to add 'custom status states' via `bd config`.\nUsers could define an optional issue status enum (e.g., awaiting_review, review_in_progress) in the config.\nThis would enable multi-step pipelines to process issues where each step correlates to a specific status.\n\nExamples:\n- awaiting_verification\n- awaiting_docs\n- awaiting_testing\n","status":"open","priority":3,"issue_type":"feature","created_at":"2025-11-20T18:55:48.670499-05:00","updated_at":"2025-11-20T18:55:48.670499-05:00"} +{"id":"bd-1u4","title":"Fix gosec lint warnings in doctor.go, main.go, and fix subdirectory","description":"CI lint job failing with 4 gosec warnings:\n- cmd/bd/doctor.go:664 (G304: file inclusion via variable)\n- cmd/bd/doctor/fix/database_config.go:166 (G304: file inclusion via variable) \n- cmd/bd/doctor/fix/untracked.go:61 (G204: subprocess launched with variable)\n- cmd/bd/main.go:645 (G304: file inclusion via variable)\n\nEither suppress with `// #nosec` if false positives, or refactor to validate paths properly.","status":"open","priority":2,"issue_type":"task","created_at":"2025-11-29T00:43:07.393406783-07:00","updated_at":"2025-11-29T00:43:07.393406783-07:00"} {"id":"bd-2em","title":"Expand checkHooksQuick to verify all hook versions","description":"Currently checkHooksQuick only checks post-merge hook version. Should also check pre-commit, pre-push, and post-checkout for completeness. Keep it lightweight but catch more outdated hooks.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-25T19:27:47.432243-08:00","updated_at":"2025-11-25T19:50:21.378464-08:00","closed_at":"2025-11-25T19:50:21.378464-08:00"} {"id":"bd-39o","title":"Rename last_import_hash metadata key to jsonl_content_hash","description":"The metadata key 'last_import_hash' is misleading because it's updated on both import AND export (sync.go:614, import.go:320).\n\nBetter names:\n- jsonl_content_hash (more accurate)\n- last_sync_hash (clearer intent)\n\nThis is a breaking change requiring migration of existing metadata values.","status":"open","priority":2,"issue_type":"task","created_at":"2025-11-20T21:31:07.568739-05:00","updated_at":"2025-11-20T21:31:07.568739-05:00"} {"id":"bd-3gc","title":"Audit remaining cmd/bd files for error handling consistency","description":"Extend ERROR_HANDLING_AUDIT.md to cover: daemon_sync.go, update.go, list.go, show.go, close.go, reopen.go, dep.go, label.go, comments.go, delete.go, compact.go, config.go, validate.go and other high-usage command files","status":"open","priority":3,"issue_type":"task","created_at":"2025-11-24T00:28:55.890991-08:00","updated_at":"2025-11-24T00:28:55.890991-08:00"} diff --git a/_working_on_.md b/_working_on_.md new file mode 100644 index 00000000..6f8de97b --- /dev/null +++ b/_working_on_.md @@ -0,0 +1,57 @@ +I created a new worktree branch and was stopped even before getting started. Beads is not happy with this setup. I don't know why. + + +``` +main on  main [$] via 🐹 v1.25.4 +❯ git worktree add ../fix-ci -b fix-ci +Preparing worktree (new branch 'fix-ci') +HEAD is now at 4ef5a28a bd sync: 2025-11-28 22:17:18 +🔗 Importing beads issues from JSONL... +✓ Beads issues imported successfully + +main on  main [$] via 🐹 v1.25.4 +❯ cd ../fix-ci/ + +fix-ci on  fix-ci [$] via 🐹 v1.25.4 +❯ bd doctor + +Diagnostics + ├ Installation: .beads/ directory found + ├ Git Hooks: All recommended hooks installed + │ Installed: post-merge, pre-push, pre-commit + ├ Database: Unable to read database version ✗ + │ Storage: SQLite + ├ Schema Compatibility: All required tables and columns present + ├ Issue IDs: hash-based ✓ + ├ CLI Version: 0.26.0 (latest) + ├ Database Files: Single database file + ├ JSONL Files: Using issues.jsonl + ├ JSONL Config: Using issues.jsonl + ├ Database Config: Configuration matches existing files + ├ Daemon Health: No daemon running (will auto-start on next command) + ├ DB-JSONL Sync: Database and JSONL are in sync + ├ Permissions: All permissions OK + ├ Dependency Cycles: No circular dependencies detected + ├ Claude Integration: Hooks installed (CLI mode) + │ Plugin not detected - install for slash commands + ├ bd in PATH: 'bd' command available + ├ Documentation bd prime: Documentation references match installed features + │ Files: AGENTS.md + ├ Agent Documentation: Documentation found: AGENTS.md + ├ Documentation: No legacy beads slash commands detected + ├ Gitignore: Up to date + ├ Git Merge Driver: Correctly configured + │ bd merge %A %O %A %B + ├ Metadata Version Tracking: Version tracking active (version: 0.26.0) + ├ Sync Branch Config: sync.branch not configured ⚠ + │ Current branch: fix-ci + ├ Deletions Manifest: Present (2474 entries) + └ Untracked Files: All .beads/*.jsonl files are tracked + +✗ Error: Unable to read database version + Fix: Database may be corrupted. Try 'bd migrate' + +⚠ Warning: sync.branch not configured + Fix: Run 'bd doctor --fix' to auto-configure to 'fix-ci', or manually: bd config set sync.branch + +``` diff --git a/cmd/bd/doctor.go b/cmd/bd/doctor.go index 380522ca..3b177b3f 100644 --- a/cmd/bd/doctor.go +++ b/cmd/bd/doctor.go @@ -661,6 +661,7 @@ func checkDatabaseVersion(path string) doctorCheck { // Check config.yaml for no-db: true configPath := filepath.Join(beadsDir, "config.yaml") isNoDbMode := false + // #nosec G304 -- configPath is constructed from beadsDir which is in .beads/ if configData, err := os.ReadFile(configPath); err == nil { // Simple check for no-db: true in config.yaml isNoDbMode = strings.Contains(string(configData), "no-db: true") diff --git a/cmd/bd/doctor/fix/database_config.go b/cmd/bd/doctor/fix/database_config.go index 83e1a70d..2c8bc539 100644 --- a/cmd/bd/doctor/fix/database_config.go +++ b/cmd/bd/doctor/fix/database_config.go @@ -163,6 +163,7 @@ func LegacyJSONLConfig(path string) error { // Update .gitattributes if it references beads.jsonl gitattrsPath := filepath.Join(path, ".gitattributes") + // #nosec G304 -- gitattrsPath is constructed from path which is the git root if content, err := os.ReadFile(gitattrsPath); err == nil { if strings.Contains(string(content), ".beads/beads.jsonl") { newContent := strings.ReplaceAll(string(content), ".beads/beads.jsonl", ".beads/issues.jsonl") diff --git a/cmd/bd/doctor/fix/untracked.go b/cmd/bd/doctor/fix/untracked.go index a4e95a4b..1e8305c8 100644 --- a/cmd/bd/doctor/fix/untracked.go +++ b/cmd/bd/doctor/fix/untracked.go @@ -58,6 +58,7 @@ func UntrackedJSONL(path string) error { continue } + // #nosec G204 -- file is validated against a whitelist of JSONL files addCmd := exec.Command("git", "add", file) addCmd.Dir = path if err := addCmd.Run(); err != nil { diff --git a/cmd/bd/main.go b/cmd/bd/main.go index fcbadd14..a87251dc 100644 --- a/cmd/bd/main.go +++ b/cmd/bd/main.go @@ -642,6 +642,7 @@ func handleFreshCloneError(err error, beadsDir string) bool { if info, statErr := os.Stat(candidate); statErr == nil && !info.IsDir() { jsonlPath = candidate // Count lines (approximately = issue count) + // #nosec G304 -- candidate is constructed from beadsDir which is .beads/ if data, readErr := os.ReadFile(candidate); readErr == nil { for _, line := range strings.Split(string(data), "\n") { if strings.TrimSpace(line) != "" { From 83c2a8c196cf18e49774ea91a1047c84661a5118 Mon Sep 17 00:00:00 2001 From: matt wilkie Date: Sat, 29 Nov 2025 00:49:33 -0700 Subject: [PATCH 3/3] fix: clean up .beads directory before Nix Flake test The Nix Flake CI test was failing because the repository has an existing .beads/issues.jsonl file checked in, which caused bd init to refuse to initialize (detecting it as a fresh clone with existing data). Solution: Remove .beads before running bd init in the test to start fresh. --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b2dcd8c8..aaaeb30f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -101,6 +101,7 @@ jobs: run: | export BEADS_DB="$PWD/.ci-beads/beads.db" mkdir -p "$(dirname "$BEADS_DB")" + rm -rf .beads nix run .#default -- --db "$BEADS_DB" init --quiet --prefix ci nix run .#default -- --db "$BEADS_DB" > help.txt - name: Verify help text