Beads - A memory upgrade for your coding agent
776 matches across 15 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | cmd/bd/shared_server_integration_test.go | 117 | // ── Init project directories ──────────────────────────────────────── |
| MEDIUM | cmd/bd/shared_server_integration_test.go | 152 | // ── Fan out client workloads ──────────────────────────────────────── |
| MEDIUM | internal/storage/hook_decorator.go | 67 | // ── Issue mutations ───────────────────────────────────────────────── |
| MEDIUM | internal/storage/hook_decorator.go | 136 | // ── Dependency mutations ──────────────────────────────────────────── |
| MEDIUM | internal/storage/hook_decorator.go | 156 | // ── Label mutations ───────────────────────────────────────────────── |
| MEDIUM | internal/storage/hook_decorator.go | 176 | // ── Comment mutations ─────────────────────────────────────────────── |
| MEDIUM | internal/storage/hook_decorator.go | 188 | // ── Transaction support ───────────────────────────────────────────── |
| MEDIUM | internal/storage/hook_decorator.go | 210 | // ── Internal helpers ──────────────────────────────────────────────── |
| MEDIUM | internal/storage/hook_decorator.go | 241 | // ── Hook tracking transaction ─────────────────────────────────────── |
| MEDIUM | …/storage/dolt/pull_branch_tracking_integration_test.go | 38 | // ── Remote server ────────────────────────────────────────────────────────── |
| MEDIUM | …/storage/dolt/pull_branch_tracking_integration_test.go | 66 | // ── Local DoltStore ──────────────────────────────────────────────────────── |
| MEDIUM | …/storage/dolt/pull_branch_tracking_integration_test.go | 82 | // ── Confirm the bug scenario is present ──────────────────────────────────── |
| MEDIUM | …/storage/dolt/pull_branch_tracking_integration_test.go | 101 | // ── Verify the fix: pullWithAutoResolve succeeds via fallback ────────────── |
| MEDIUM | internal/telemetry/storage.go | 84 | // ── Issue CRUD ────────────────────────────────────────────────────────────── |
| MEDIUM | internal/telemetry/storage.go | 207 | // ── Dependencies ──────────────────────────────────────────────────────────── |
| MEDIUM | internal/telemetry/storage.go | 275 | // ── Labels ────────────────────────────────────────────────────────────────── |
| MEDIUM | internal/telemetry/storage.go | 315 | // ── Work queries ───────────────────────────────────────────────────────────── |
| MEDIUM | internal/telemetry/storage.go | 354 | // ── Comments & events ──────────────────────────────────────────────────────── |
| MEDIUM | internal/telemetry/storage.go | 391 | // ── Statistics ─────────────────────────────────────────────────────────────── |
| MEDIUM | internal/telemetry/storage.go | 410 | // ── Configuration ──────────────────────────────────────────────────────────── |
| MEDIUM | internal/telemetry/storage.go | 451 | // ── Transactions ───────────────────────────────────────────────────────────── |
| MEDIUM | internal/telemetry/storage.go | 460 | // ── Wisp queries ───────────────────────────────────────────────────────────── |
| MEDIUM | internal/telemetry/storage.go | 469 | // ── Streaming iterators ───────────────────────────────────────────────────── |
| MEDIUM | internal/telemetry/storage.go | 545 | // ── Count* aggregates ───────────────────────────────────────────────────────── |
| MEDIUM | internal/telemetry/storage.go | 589 | // ── MergeSlot ──────────────────────────────────────────────────────────────── |
| MEDIUM | internal/telemetry/storage.go | 619 | // ── Metadata slots ───────────────────────────────────────────────────────── |
| MEDIUM | internal/telemetry/storage.go | 642 | // ── Lifecycle ──────────────────────────────────────────────────────────────── |
| MEDIUM | .beads/formulas/beads-release.formula.toml | 58 | # ============================================================================= |
| MEDIUM | .beads/formulas/beads-release.formula.toml | 60 | # ============================================================================= |
| MEDIUM | .beads/formulas/beads-release.formula.toml | 639 | # ============================================================================= |
| MEDIUM | .beads/formulas/beads-release.formula.toml | 641 | # ============================================================================= |
| MEDIUM | .beads/formulas/beads-release.formula.toml | 670 | # ============================================================================= |
| MEDIUM | .beads/formulas/beads-release.formula.toml | 672 | # ============================================================================= |
| MEDIUM | .beads/formulas/beads-release.formula.toml | 729 | # ============================================================================= |
| MEDIUM | .beads/formulas/beads-release.formula.toml | 731 | # ============================================================================= |
| MEDIUM | …rations/beads-mcp/tests/test_mcp_server_integration.py | 682 | # ============================================================================= |
| MEDIUM | …rations/beads-mcp/tests/test_mcp_server_integration.py | 684 | # ============================================================================= |
| MEDIUM | integrations/beads-mcp/src/beads_mcp/server.py | 81 | # ============================================================================= |
| MEDIUM | integrations/beads-mcp/src/beads_mcp/server.py | 83 | # ============================================================================= |
| MEDIUM | integrations/beads-mcp/src/beads_mcp/server.py | 331 | # ============================================================================= |
| MEDIUM | integrations/beads-mcp/src/beads_mcp/server.py | 333 | # ============================================================================= |
| MEDIUM | integrations/beads-mcp/src/beads_mcp/server.py | 728 | # ============================================================================= |
| MEDIUM | integrations/beads-mcp/src/beads_mcp/server.py | 730 | # ============================================================================= |
| MEDIUM | integrations/beads-mcp/src/beads_mcp/models.py | 35 | # ============================================================================= |
| MEDIUM | integrations/beads-mcp/src/beads_mcp/models.py | 37 | # ============================================================================= |
| MEDIUM | integrations/beads-mcp/src/beads_mcp/models.py | 120 | # ============================================================================= |
| MEDIUM | integrations/beads-mcp/src/beads_mcp/models.py | 122 | # ============================================================================= |
| MEDIUM | examples/formulas/gh-issue-to-pr.formula.toml | 55 | # ── Variables ──────────────────────────────────────────────────────── |
| MEDIUM | examples/formulas/gh-issue-to-pr.formula.toml | 92 | # ── Steps ──────────────────────────────────────────────────────────── |
| MEDIUM | examples/formulas/gh-pr-review.formula.toml | 58 | # ── Variables ──────────────────────────────────────────────────────── |
| MEDIUM | examples/formulas/gh-pr-review.formula.toml | 80 | # ── Steps ──────────────────────────────────────────────────────────── |
| MEDIUM | scripts/bump-version.sh | 2 | # ============================================================================= |
| MEDIUM | scripts/bump-version.sh | 4 | # ============================================================================= |
| MEDIUM | scripts/bump-version.sh | 26 | # ============================================================================= |
| MEDIUM | scripts/update-nix-vendorhash.sh | 4 | # ============================================================================= |
| MEDIUM | scripts/update-nix-vendorhash.sh | 6 | # ============================================================================= |
| MEDIUM | scripts/update-nix-vendorhash.sh | 23 | # ============================================================================= |
| MEDIUM | scripts/cross-version-smoke-test.sh | 4 | # ============================================================================= |
| MEDIUM | scripts/cross-version-smoke-test.sh | 6 | # ============================================================================= |
| MEDIUM | scripts/cross-version-smoke-test.sh | 31 | # ============================================================================= |
| 83 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | beads.go | 21 | |
| LOW | cmd/bd/proxied_server.go | 221 | // } |
| LOW | cmd/bd/proxied_server.go | 241 | // if err != nil { |
| LOW | cmd/bd/proxied_server.go | 261 | // } |
| LOW | cmd/bd/hooks.go | 41 | // hookSectionEndLine returns the full end marker line with the current version. |
| LOW | cmd/bd/hooks.go | 181 | // |
| LOW | cmd/bd/hooks.go | 421 | } |
| LOW | cmd/bd/hooks.go | 941 | fmt.Printf(" Preserving existing %s hook from %s\n", entry.Name(), currentDir) |
| LOW | cmd/bd/hooks.go | 981 | // |
| LOW | cmd/bd/hooks.go | 1041 | return true |
| LOW | cmd/bd/hooks.go | 1361 | return |
| LOW | cmd/bd/auto_import_upgrade_test.go | 61 | // stages the imported issues in the Dolt working set without an |
| LOW | cmd/bd/export_auto.go | 621 | return filepath.Join(gitDir, "index.lock"), nil |
| LOW | cmd/bd/memory_embedded_test.go | 221 | // (the default since GH#2973), 8 concurrent writers also trigger |
| LOW | cmd/bd/shared_server_integration_test.go | 41 | // container via testcontainers, initializes numDirs project directories, |
| LOW | cmd/bd/dolt.go | 501 | // systemd manages the server lifecycle, be-0eyj) |
| LOW | cmd/bd/dolt.go | 561 | } |
| LOW | cmd/bd/mol.go | 1 | package main |
| LOW | cmd/bd/purge.go | 21 | cmdName string |
| LOW | cmd/bd/nocow_linux.go | 21 | // read-modify-write-recompress of the existing compressed extent. Setting |
| LOW | cmd/bd/nocow_linux.go | 61 | uintptr(unix.FS_IOC_SETFLAGS), |
| LOW | cmd/bd/sandbox_unix.go | 1 | //go:build unix |
| LOW | cmd/bd/backup_auto.go | 21 | } |
| LOW | cmd/bd/test_repo_beads_guard_test.go | 21 | // os.MkdirTemp("", ...) and leaked on every run. Anchoring those temp |
| LOW | cmd/bd/init_safety_test.go | 421 | // bound its scope to verify "refusal clears" — not full bootstrap |
| LOW | cmd/bd/search_test.go | 81 | // NOT parallel: see TestSearchCommand_MissingQueryShowsHelp comment (cobra OutOrStdout race). |
| LOW | cmd/bd/test_helpers_pure_test.go | 41 | // from multiple goroutines (writes to a shared global map without synchronization). |
| LOW | cmd/bd/test_helpers_pure_test.go | 121 | exportScrub bool |
| LOW | cmd/bd/auto_import_upgrade.go | 21 | // fallbackImporter is the function maybeAutoImportJSONL invokes for stores |
| LOW | cmd/bd/auto_import_upgrade.go | 61 | } |
| LOW | cmd/bd/sandbox_windows.go | 1 | //go:build windows |
| LOW | cmd/bd/markdown.go | 141 | // |
| LOW | cmd/bd/import_shared.go | 261 | // using UPSERT semantics (an existing issue row is overwritten). Used by the |
| LOW | cmd/bd/where_test.go | 401 | |
| LOW | cmd/bd/stdio_race_guard_test.go | 41 | // (in code, not comments), it must NOT call any method name in |
| LOW | cmd/bd/tips.go | 181 | commandTipIDsShown[tipID] = struct{}{} |
| LOW | cmd/bd/dep_test.go | 1341 | if node.ID == "dependent-1" && node.Depth != 3 { |
| LOW | cmd/bd/dep_test.go | 1361 | // BEFORE inserting into the database, so FK constraint errors don't occur |
| LOW | cmd/bd/main_errors.go | 41 | // isWispOperation returns true if the command operates on ephemeral wisps. |
| LOW | cmd/bd/init_safety.go | 1 | package main |
| LOW | cmd/bd/init_safety.go | 21 | // Exit codes for init-safety refusals. Stable values so CI scripts can |
| LOW | cmd/bd/init_safety.go | 41 | // observed the remote state and read the user's flag intent. |
| LOW | cmd/bd/init_safety.go | 61 | // or wrong token). Refuse with `ExitDestroyTokenMissing`. The |
| LOW | cmd/bd/dolt_test.go | 881 | |
| LOW | cmd/bd/auto_import_upgrade_unit_test.go | 101 | // asserts the top-level emptiness guard still fires when GetStatistics returns |
| LOW | cmd/bd/sync_remote.go | 61 | // normalizeRemoteURL converts a remote URL to a Dolt-compatible format. |
| LOW | cmd/bd/linear_roundtrip_test.go | 601 | t.Fatal("milestone epic should be excluded from Linear push") |
| LOW | cmd/bd/init_templates.go | 41 | # or overridden with command-line flags |
| LOW | cmd/bd/init_templates.go | 61 | # actor: "" |
| LOW | cmd/bd/init_templates.go | 81 | # git-push: false # Disable git push (backup locally only) |
| LOW | cmd/bd/init.go | 701 | } else if prefix != "" { |
| LOW | cmd/bd/init.go | 741 | // |
| LOW | cmd/bd/main.go | 101 | // explicitly (e.g., bd sync in dolt-native mode, hook flows, bd vc commit). |
| LOW | cmd/bd/completions_test.go | 361 | } |
| LOW | cmd/bd/errors.go | 141 | fmt.Fprintf(os.Stderr, "Error: %s\n", message) |
| LOW | cmd/bd/errors.go | 161 | fmt.Fprintf(os.Stderr, "Warning: "+format+"\n", args...) |
| LOW | cmd/bd/doctor/nocow.go | 1 | package doctor |
| LOW | cmd/bd/doctor/maintenance.go | 21 | // CheckStaleClosedIssues detects closed issues that could be cleaned up. |
| LOW | tests/regression/discovery_test.go | 961 | t.Errorf("remaining label should be 'urgent', got: %v", labels[0]) |
| LOW | tests/regression/discovery_test.go | 1041 | t.Errorf("DISCOVERY: conditionally-blocked issue %s not in bd blocked output", fallback) |
| 170 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …s/beads/skills/beads/resources/INTEGRATION_PATTERNS.md | 193 | def test_refresh_token_returns_new_access_token(): |
| LOW | npm-package/test/integration.test.js | 263 | async function testClaudeCodeWebSimulation(npmPrefix) { |
| LOW | integrations/beads-mcp/tests/test_lifecycle.py | 9 | def test_cleanup_handlers_registered(): |
| LOW | integrations/beads-mcp/tests/test_lifecycle.py | 27 | def test_cleanup_function_safe_to_call_multiple_times(): |
| LOW | integrations/beads-mcp/tests/test_lifecycle.py | 40 | def test_signal_handler_calls_cleanup(): |
| LOW | integrations/beads-mcp/tests/test_lifecycle.py | 55 | def test_cleanup_logs_lifecycle_events(caplog): |
| LOW | integrations/beads-mcp/tests/test_compaction_config.py | 20 | def test_default_compaction_threshold(self): |
| LOW | integrations/beads-mcp/tests/test_compaction_config.py | 50 | def test_custom_compaction_threshold_via_env(self): |
| LOW | integrations/beads-mcp/tests/test_compaction_config.py | 76 | def test_get_compaction_settings_with_defaults(self): |
| LOW | integrations/beads-mcp/tests/test_compaction_config.py | 97 | def test_get_compaction_settings_with_custom_values(self): |
| LOW | integrations/beads-mcp/tests/test_compaction_config.py | 115 | def test_get_compaction_settings_validates_threshold_minimum(self): |
| LOW | integrations/beads-mcp/tests/test_compaction_config.py | 127 | def test_get_compaction_settings_validates_preview_minimum(self): |
| LOW | integrations/beads-mcp/tests/test_compaction_config.py | 141 | def test_get_compaction_settings_validates_preview_not_greater_than_threshold(self): |
| LOW | integrations/beads-mcp/tests/test_compaction_config.py | 157 | def test_get_compaction_settings_with_edge_case_values(self): |
| LOW | integrations/beads-mcp/tests/test_compaction_config.py | 173 | def test_get_compaction_settings_with_large_values(self): |
| LOW | integrations/beads-mcp/tests/test_compaction_config.py | 193 | def test_environment_variables_documented_in_code(self): |
| LOW | integrations/beads-mcp/tests/test_compaction_config.py | 201 | def test_environment_variables_documented_in_context_engineering_md(self): |
| LOW | integrations/beads-mcp/tests/test_subprocess_stdin.py | 37 | async def test_run_command_uses_devnull_stdin(self, bd_client, mock_process): |
| LOW | integrations/beads-mcp/tests/test_subprocess_stdin.py | 50 | async def test_check_version_uses_devnull_stdin(self, bd_client, mock_process): |
| LOW | integrations/beads-mcp/tests/test_subprocess_stdin.py | 64 | async def test_add_dependency_uses_devnull_stdin(self, bd_client, mock_process): |
| LOW | integrations/beads-mcp/tests/test_subprocess_stdin.py | 79 | async def test_quickstart_uses_devnull_stdin(self, bd_client, mock_process): |
| LOW | integrations/beads-mcp/tests/test_subprocess_stdin.py | 93 | async def test_init_uses_devnull_stdin(self, bd_client, mock_process): |
| LOW | integrations/beads-mcp/tests/test_subprocess_stdin.py | 110 | def test_resolve_workspace_root_uses_devnull_stdin(self): |
| LOW | integrations/beads-mcp/tests/test_subprocess_stdin.py | 129 | def test_tools_resolve_workspace_root_uses_devnull_stdin(self): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 90 | async def test_concurrent_calls_different_projects(self, temp_projects, mock_client_factory): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 128 | async def test_concurrent_calls_same_project_reuse_client(self, temp_projects, mock_client_factory): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 161 | async def test_pool_lock_prevents_race_conditions(self, temp_projects, mock_client_factory): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 202 | def test_canonicalize_with_beads_dir(self, temp_projects): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 210 | def test_canonicalize_symlink_deduplication(self): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 227 | def test_canonicalize_submodule_with_beads(self): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 244 | def test_canonicalize_no_beads_uses_git_toplevel(self): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 261 | def test_resolve_workspace_root_git_repo(self): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 275 | def test_resolve_workspace_root_shared_worktree_prefers_main_repo_with_beads(self): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 292 | def test_resolve_workspace_root_subdir_relative_common_dir_prefers_main_repo(self): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 312 | def test_resolve_workspace_root_not_git(self): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 332 | async def test_no_cross_project_data_leakage(self, temp_projects, mock_client_factory): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 369 | async def test_stress_test_many_parallel_calls(self, temp_projects, mock_client_factory): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 406 | async def test_contextvar_isolated_per_request(self, temp_projects): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 409 | async def get_current_workspace_val() -> str | None: |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 435 | async def test_contextvar_reset_after_call(self, temp_projects): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 447 | async def test_contextvar_fallback_to_env(self, temp_projects): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 475 | async def test_no_workspace_raises_error(self): |
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 494 | def test_canonicalize_path_cached(self, temp_projects): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 776 | async def test_validate_routes_to_doctor(bd_client): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 784 | async def test_validate_fix_all_adds_fix_yes(bd_client): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 792 | async def test_validate_ignores_checks_arg(bd_client): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 800 | async def test_detect_pollution_routes_to_doctor(bd_client): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 808 | async def test_detect_pollution_clean_adds_flags(bd_client): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 38 | async def test_bd_client_initialization(): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 46 | async def test_bd_client_without_db(): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 66 | async def test_run_command_not_found(bd_client): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 89 | async def test_run_command_invalid_json(bd_client, mock_process): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 101 | async def test_run_command_empty_output(bd_client, mock_process): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 170 | async def test_ready_with_issue_type(bd_client, mock_process): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 198 | async def test_ready_invalid_response(bd_client, mock_process): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 234 | async def test_list_issues_invalid_response(bd_client, mock_process): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 269 | async def test_show_invalid_response(bd_client, mock_process): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 310 | async def test_create_with_optional_fields(bd_client, mock_process): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 346 | async def test_create_invalid_response(bd_client, mock_process): |
| LOW | integrations/beads-mcp/tests/test_bd_client.py | 381 | async def test_update_with_optional_fields(bd_client, mock_process): |
| 88 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | cmd/bd/gate_discover.go | 75 | // Step 1: Find open gh:run gates without await_id |
| LOW | cmd/bd/gate_discover.go | 93 | // Step 2: Query recent GitHub workflow runs |
| LOW | cmd/bd/gate_discover.go | 106 | // Step 3: Match runs to gates |
| LOW | cmd/bd/gate_discover.go | 128 | // Step 4: Update gate with discovered run ID |
| LOW | cmd/bd/init_team.go | 26 | // Step 1: Check if we're in a git repository |
| LOW | cmd/bd/init_team.go | 45 | // Step 2: Check for protected main branch |
| LOW | cmd/bd/init_team.go | 108 | // Step 3: Configure team settings |
| LOW | cmd/bd/init_team.go | 123 | // Step 4: Summary |
| LOW | cmd/bd/init_contributor.go | 52 | // Step 1: Detect fork relationship |
| LOW | cmd/bd/init_contributor.go | 82 | // Step 2: Check push access to origin |
| LOW | cmd/bd/init_contributor.go | 110 | // Step 3: Configure planning repository |
| LOW | cmd/bd/init_contributor.go | 205 | // Step 4: Configure contributor routing |
| LOW | cmd/bd/init_contributor.go | 248 | // Step 5: Summary |
| LOW | cmd/bd/migrate_issues.go | 160 | // Step 1: Validate repositories exist |
| LOW | cmd/bd/migrate_issues.go | 165 | // Step 2: Build initial candidate set C using filters |
| LOW | cmd/bd/migrate_issues.go | 182 | // Step 3: Expand set to M (migration set) based on --include |
| LOW | cmd/bd/migrate_issues.go | 188 | // Step 4: Check for orphaned dependencies |
| LOW | cmd/bd/migrate_issues.go | 198 | // Step 5: Build migration plan |
| LOW | cmd/bd/migrate_issues.go | 201 | // Step 6: Display plan |
| LOW | cmd/bd/migrate_issues.go | 206 | // Step 7: Execute migration if not dry-run |
| LOW | cmd/bd/import_prefix_test.go | 19 | // Step 0: Build the bd binary |
| LOW | cmd/bd/import_prefix_test.go | 32 | // Step 1: Setup a database with a specific prefix |
| LOW | cmd/bd/import_prefix_test.go | 49 | // Step 2: Create a JSONL file with a mismatched prefix |
| LOW | cmd/bd/import_prefix_test.go | 56 | // Step 3: Attempt import without flag - should fail |
| LOW | cmd/bd/import_prefix_test.go | 65 | // Step 4: Attempt import with --skip-prefix-validation - should succeed |
| LOW | cmd/bd/import_prefix_test.go | 71 | // Step 5: Verify issue was imported |
| LOW | cmd/bd/mol_ready_gated.go | 107 | // Step 1: Find all closed gate beads |
| LOW | cmd/bd/mol_ready_gated.go | 124 | // Step 2: Get ready work to check which steps are ready |
| LOW | cmd/bd/mol_ready_gated.go | 134 | // Step 3: Get hooked molecules to filter out |
| LOW | cmd/bd/mol_ready_gated.go | 158 | // Step 4: For each closed gate, collect all dependents that are ready, |
| LOW | cmd/bd/main_test.go | 30 | // Step 1: Create an open issue in the database |
| LOW | cmd/bd/main_test.go | 47 | // Step 2: Update via UpdateIssue with closed status (closed_at managed automatically) |
| LOW | cmd/bd/main_test.go | 56 | // Step 3: Verify the issue is now closed with correct closed_at |
| LOW | cmd/bd/main_test.go | 81 | // Step 1: Create a closed issue in the database |
| LOW | cmd/bd/main_test.go | 99 | // Step 2: Update via UpdateIssue with open status (closed_at managed automatically) |
| LOW | cmd/bd/main_test.go | 108 | // Step 3: Verify the issue is now open with null closed_at |
| LOW | cmd/bd/doctor/gitignore_test.go | 2080 | // Step 1: Check should detect outdated |
| LOW | cmd/bd/doctor/gitignore_test.go | 2086 | // Step 2: Fix should update the redirect target |
| LOW | cmd/bd/doctor/gitignore_test.go | 2091 | // Step 3: Re-check should pass |
| LOW | cmd/bd/doctor/gitignore_test.go | 2097 | // Step 4: No .gitignore in redirect-only dir (the original bug) |
| LOW | cmd/bd/doctor/integrity.go | 466 | // So we need to check if the length variation is natural (1→2→3 digits) |
| LOW | tests/regression/scenarios_test.go | 156 | // Step 1: Create rich data in baseline |
| LOW | tests/regression/scenarios_test.go | 170 | // Step 2: Export from baseline |
| LOW | tests/regression/scenarios_test.go | 178 | // Step 3: Import into candidate |
| LOW | tests/regression/scenarios_test.go | 186 | // Step 4: Export from candidate and compare |
| LOW | tests/regression/regression_test.go | 404 | // Step 1: get all issue IDs via bd list (--all includes closed issues, |
| LOW | tests/regression/regression_test.go | 429 | // Step 2: for each ID, run bd show --json and emit one JSONL line |
| LOW | internal/storage/issueops/molecule.go | 35 | // Step 1: Get child issue IDs from dependencies table. |
| LOW | internal/storage/issueops/molecule.go | 57 | // Step 2: Batch-fetch status for all children. |
| LOW | internal/storage/issueops/epic_closure.go | 14 | // Step 1: Get open epic IDs (single-table scan) |
| LOW | internal/storage/issueops/epic_closure.go | 38 | // Step 2: Get parent-child dependencies from both tables (bd-w2w) |
| LOW | internal/storage/issueops/epic_closure.go | 70 | // Step 3: Batch-fetch statuses for all child issues across all epics |
| LOW | internal/storage/issueops/epic_closure.go | 108 | // Step 4: Batch-fetch all epic issues |
| LOW | internal/storage/issueops/epic_closure.go | 124 | // Step 5: Build results from cached data |
| LOW | internal/storage/embeddeddolt/federation.go | 204 | // Step 1: Fetch |
| LOW | internal/storage/embeddeddolt/federation.go | 211 | // Step 2: Get commit before merge for change detection |
| LOW | internal/storage/embeddeddolt/federation.go | 214 | // Step 3: Merge peer's branch |
| LOW | internal/storage/embeddeddolt/federation.go | 222 | // Step 4: Handle conflicts |
| LOW | internal/storage/embeddeddolt/federation.go | 251 | // Step 5: Push |
| LOW | internal/storage/dolt/git_remote_test.go | 910 | // Step 1: Source creates data and pushes |
| 24 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | cmd/bd/linear.go | 32 | bd config set linear.api_key "YOUR_API_KEY" |
| HIGH | cmd/bd/linear.go | 831 | fmt.Println(" bd config set linear.api_key \"YOUR_API_KEY\"") |
| HIGH | cmd/bd/linear.go | 836 | fmt.Println(" export LINEAR_API_KEY=\"YOUR_API_KEY\"") |
| HIGH | cmd/bd/linear.go | 948 | " API key (devs): export LINEAR_API_KEY=... or bd config set linear.api_key \"YOUR_API_KEY\"") |
| HIGH | website/docs/cli-reference/linear.md | 16 | bd config set linear.api_key "YOUR_API_KEY" |
| HIGH | website/static/llms-full.txt | 5867 | bd config set linear.api_key "YOUR_API_KEY" |
| HIGH | …e/versioned_docs/version-1.0.0/cli-reference/linear.md | 16 | bd config set linear.api_key "YOUR_API_KEY" |
| HIGH | …e/versioned_docs/version-1.0.4/cli-reference/linear.md | 16 | bd config set linear.api_key "YOUR_API_KEY" |
| HIGH | …e/versioned_docs/version-1.0.5/cli-reference/linear.md | 16 | bd config set linear.api_key "YOUR_API_KEY" |
| HIGH | internal/linear/tracker.go | 59 | " API key (devs): export LINEAR_API_KEY=... or bd config set linear.api_key \"YOUR_API_KEY\"") |
| HIGH | docs/CLI_REFERENCE.md | 4807 | bd config set linear.api_key "YOUR_API_KEY" |
| HIGH | scripts/generate-newsletter_README.md | 13 | export ANTHROPIC_API_KEY="your-api-key" |
| HIGH | scripts/generate-newsletter_README.md | 16 | export OPENAI_API_KEY="your-api-key" |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | cmd/bd/bootstrap_embedded_test.go | 118 | cmd = exec.Command("git", "config", "user.email", "test@test.com") |
| LOW | cmd/bd/bootstrap_embedded_test.go | 142 | cmd = exec.Command("git", "config", "user.email", "test@test.com") |
| LOW | cmd/bd/bootstrap_embedded_test.go | 184 | gitCmd = exec.Command("git", "config", "user.email", "test@test.com") |
| LOW | cmd/bd/shared_server_integration_test.go | 579 | {"git", "config", "user.email", "test@test.com"}, |
| LOW | cmd/bd/show_embedded_test.go | 313 | bdUpdate(t, bd, dir, issue.ID, "--status", "in_progress", "--assignee", "test@test.com") |
| LOW | cmd/bd/init_test.go | 1319 | runGit(mainRepo, "config", "user.email", "test@test.com") |
| LOW | cmd/bd/init_test.go | 2274 | _ = exec.Command("git", "-C", secondDir, "config", "user.email", "test@test.com").Run() |
| LOW | cmd/bd/linear_test.go | 611 | Name: "John Doe", |
| LOW | cmd/bd/git_repo_template_test.go | 45 | {"config", "user.email", "test@test.com"}, |
| LOW | cmd/bd/init_safety_test.go | 367 | runGitForBootstrapTest(t, sourceDir, "config", "user.email", "test@test.com") |
| LOW | cmd/bd/init_hooks_test.go | 861 | {"config", "user.email", "test@test.com"}, |
| LOW | cmd/bd/init_hooks_test.go | 1138 | {"config", "user.email", "test@test.com"}, |
| LOW | cmd/bd/init_hooks_test.go | 1244 | {"config", "user.email", "test@test.com"}, |
| LOW | cmd/bd/init_embedded_test.go | 70 | {"config", "user.email", "test@test.com"}, |
| LOW | cmd/bd/bootstrap_test.go | 291 | runGitForBootstrapTest(t, sourceDir, "config", "user.email", "test@test.com") |
| LOW | cmd/bd/bootstrap_test.go | 417 | runGitForBootstrapTest(t, sourceDir, "config", "user.email", "test@test.com") |
| LOW | cmd/bd/bootstrap_test.go | 736 | runGitForBootstrapTest(t, sourceDir, "config", "user.email", "test@test.com") |
| LOW | cmd/bd/bootstrap_test.go | 810 | runGitForBootstrapTest(t, sourceDir, "config", "user.email", "test@test.com") |
| LOW | cmd/bd/bootstrap_test.go | 892 | runGitForBootstrapTest(t, rigDir, "config", "user.email", "test@test.com") |
| LOW | cmd/bd/bootstrap_test.go | 1025 | runGitForBootstrapTest(t, sourceDir, "config", "user.email", "test@test.com") |
| LOW | cmd/bd/bootstrap_test.go | 1231 | runGitForBootstrapTest(t, sourceDir, "config", "user.email", "test@test.com") |
| LOW | cmd/bd/sync_git_test.go | 141 | runGitForSyncTest(t, repoDir, "config", "user.email", "test@test.com") |
| LOW | cmd/bd/doctor/git_hygiene_test.go | 45 | runGit(t, dir, "config", "user.email", "test@test.com") |
| LOW | cmd/bd/doctor/git_hygiene_test.go | 278 | runGit(t, clone, "config", "user.email", "test@test.com") |
| LOW | cmd/bd/doctor/git_repo_template_test.go | 42 | {"config", "user.email", "test@test.com"}, |
| LOW | cmd/bd/doctor/dolt_e2e_test.go | 234 | {"config", "user.email", "test@test.com"}, |
| LOW | cmd/bd/doctor/fix/git_repo_template_test.go | 42 | {"config", "user.email", "test@test.com"}, |
| LOW | cmd/bd/doctor/fix/metadata_test.go | 206 | {"git", "config", "user.email", "test@test.com"}, |
| LOW | internal/ado/tracker_test.go | 472 | "displayName": "Jane Doe", |
| LOW | internal/ado/tracker_test.go | 504 | if ti.Assignee != "Jane Doe" { |
| LOW | internal/ado/tracker_test.go | 505 | t.Errorf("Assignee = %q, want %q", ti.Assignee, "Jane Doe") |
| LOW | internal/ado/tracker_test.go | 564 | "displayName": "Jane Doe", |
| LOW | internal/ado/tracker_test.go | 567 | wantAssignee: "Jane Doe", |
| LOW | internal/gitlab/mapping_test.go | 254 | Name: "John Doe", |
| LOW | internal/gitlab/types_test.go | 30 | "name": "John Doe", |
| LOW | internal/linear/mapping_test.go | 433 | Assignee: &User{Name: "John Doe", Email: "john@example.com"}, |
| LOW | internal/linear/mapping_test.go | 549 | Assignee: &User{Name: "Jane Doe", Email: "jane@example.com"}, |
| LOW | internal/remotecache/cache_test.go | 41 | cmd := exec.Command("dolt", "init", "--name", "test", "--email", "test@test.com") |
| LOW | internal/storage/dolt/git_remote_test.go | 1151 | runCmd(t, serverDataDir, "dolt", "init", "--name", "test", "--email", "test@test.com") |
| LOW | internal/storage/dolt/git_remote_test.go | 1158 | runCmd(t, testdbDir, "dolt", "init", "--name", "test", "--email", "test@test.com") |
| LOW | internal/storage/dolt/git_remote_test.go | 1191 | runCmd(t, clientDataDir, "dolt", "init", "--name", "test", "--email", "test@test.com") |
| LOW | internal/storage/dolt/git_remote_test.go | 1212 | CommitterEmail: "test@test.com", |
| LOW | internal/storage/dolt/git_remote_test.go | 1268 | runCmd(t, serverDataDir, "dolt", "init", "--name", "test", "--email", "test@test.com") |
| LOW | internal/storage/dolt/git_remote_test.go | 1274 | runCmd(t, testdbDir, "dolt", "init", "--name", "test", "--email", "test@test.com") |
| LOW | internal/storage/dolt/git_remote_test.go | 1310 | runCmd(t, clientTestdbDir, "dolt", "init", "--name", "test", "--email", "test@test.com") |
| LOW | internal/storage/dolt/git_remote_test.go | 1334 | CommitterEmail: "test@test.com", |
| LOW | internal/storage/dolt/federation_test.go | 447 | initCmd := exec.Command("dolt", "init", "--name", "test", "--email", "test@test.com") |
| LOW | internal/storage/dolt/federation_test.go | 547 | initCmd := exec.Command("dolt", "init", "--name", "test", "--email", "test@test.com") |
| LOW | internal/storage/dolt/federation_test.go | 566 | initRootCmd := exec.Command("dolt", "init", "--name", "test", "--email", "test@test.com") |
| LOW | internal/storage/dolt/git_remote_shared_server_test.go | 53 | runCmd(t, sharedDoltDir, "dolt", "init", "--name", "test", "--email", "test@test.com") |
| LOW | internal/storage/dolt/git_remote_shared_server_test.go | 59 | runCmd(t, sharedTestdbDir, "dolt", "init", "--name", "test", "--email", "test@test.com") |
| LOW | internal/storage/dolt/git_remote_shared_server_test.go | 92 | runCmd(t, clientTestdbDir, "dolt", "init", "--name", "test", "--email", "test@test.com") |
| LOW | internal/storage/dolt/git_remote_shared_server_test.go | 119 | CommitterEmail: "test@test.com", |
| LOW | internal/jira/client_test.go | 14 | c := NewClient("https://example.atlassian.net", "user@example.com", "token123") |
| LOW | internal/github/mapping_test.go | 250 | Name: "John Doe", |
| LOW | internal/github/types_test.go | 31 | "name": "John Doe", |
| LOW | internal/beads/context_test.go | 1068 | {"git", "config", "user.email", "test@test.com"}, |
| LOW | internal/beads/fingerprint_test.go | 14 | {"git", "config", "user.email", "test@test.com"}, |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | cmd/bd/branch.go | 21 | bd branch feature-xyz # Create a new branch named feature-xyz`, |
| MEDIUM | cmd/bd/setup/aider.go | 12 | # This file is marked read-only and cached for efficiency |
| MEDIUM | …grations/beads-mcp/tests/test_workspace_auto_detect.py | 181 | # Create main workspace with actual database |
| MEDIUM | …grations/beads-mcp/tests/test_workspace_auto_detect.py | 241 | # Create main workspace WITHOUT database |
| MEDIUM | integrations/beads-mcp/tests/test_config.py | 26 | # Create a fake bd executable |
| MEDIUM | integrations/beads-mcp/tests/test_config.py | 53 | # Create a non-executable file |
| MEDIUM | …rations/beads-mcp/tests/test_mcp_server_integration.py | 344 | # Create a ready issue (no dependencies) |
| MEDIUM | …rations/beads-mcp/tests/test_mcp_server_integration.py | 634 | # Create a fresh temp directory without any beads database |
| MEDIUM | …rations/beads-mcp/tests/test_mcp_server_integration.py | 996 | # Create a ready issue |
| MEDIUM | …grations/beads-mcp/tests/test_bd_client_integration.py | 421 | # Create a temporary directory to test in |
| MEDIUM | …grations/beads-mcp/tests/test_worktree_separate_dbs.py | 91 | # Create a worktree AFTER initializing beads in main |
| MEDIUM | scripts/test-git-remote.sh | 74 | # Create a local git repo as the remote (needs initial commit for dolt push) |
| MEDIUM | scripts/release.sh | 197 | # Create the release molecule (wisp) |
| MEDIUM | scripts/release.sh | 201 | # Create the wisp and capture the output |
| MEDIUM | scripts/upgrade-smoke-test.sh | 196 | # Create an isolated workspace with git init |
| MEDIUM | scripts/upgrade-smoke-test.sh | 215 | # Create an issue with the previous binary, tolerating missing --silent flag. |
| MEDIUM | scripts/migration-test/lib/workspace.sh | 37 | # Create an issue, returning just the ID on stdout. |
| MEDIUM | scripts/migration-test/lib/features.sh | 38 | # Create the canonical dataset for a given version. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | cmd/bd/doctor/integrity.go | 100 | // Detect ID format using robust heuristic |
| MEDIUM | cmd/bd/doctor/integrity.go | 431 | // This is more robust than checking a single ID's format, since base36 hash IDs can be all-numeric. |
| MEDIUM | website/package-lock.json | 17690 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", |
| MEDIUM | internal/linear/synclock.go | 17 | // It combines a PID-annotated lock file with flock for robust mutual exclusion. |
| MEDIUM | internal/utils/id_parser.go | 109 | // Use the hash part as a search query to leverage SQL-level filtering |
| MEDIUM | internal/beads/beads.go | 1064 | // Canonicalize the boundary so the `dir == gitRoot` comparison is robust |
| MEDIUM | integrations/beads-mcp/src/beads_mcp/tools.py | 716 | """Run comprehensive database health checks. |
| MEDIUM | examples/formulas/gh-pr-review.formula.toml | 86 | description = """Fetch comprehensive PR metadata needed for classification and review. |
| MEDIUM | scripts/upgrade-smoke-test.sh | 464 | # data-copy is still covered by the migration-test harness; skip gracefully. |
| MEDIUM | scripts/migration-test/run.sh | 423 | # Self-test: candidate as both source and target (validates the harness itself) |
| MEDIUM | scripts/migration-test/run.sh | 25 | # ./scripts/migration-test/run.sh --self-test # candidate → candidate (harness validation) |
| LOW | scripts/migration-test/run.sh | 137 | # First try: just use candidate directly (auto-detect + migrate) |
| MEDIUM | scripts/migration-test/recipes/sqlite_to_current.sh | 143 | # direct upgrade attempt in the harness. |
| MEDIUM | scripts/migration-test/lib/workspace.sh | 7 | # The migration harness runs in isolated temp-dir workspaces, so there is no |
| MEDIUM | .github/workflows/main.yml | 872 | # Linux/macOS run comprehensive tests; Windows just verifies binary works |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | cmd/bd/merge_slot.go | 33 | bd merge-slot check # Check if slot is available |
| LOW | cmd/bd/init.go | 387 | fmt.Fprintf(os.Stderr, " bd dolt status # Check if this is a server config issue\n\n") |
| LOW | integrations/beads-mcp/tests/conftest.py | 61 | # Check if test is using bd_client fixture |
| LOW | integrations/beads-mcp/tests/test_config.py | 36 | # Set BEADS_PATH to just "bd" (command name, not path) |
| LOW | integrations/beads-mcp/tests/test_config.py | 69 | # Set BEADS_DB to non-existent file |
| LOW | …grations/beads-mcp/tests/test_worktree_separate_dbs.py | 293 | # Set context to worktree |
| LOW | examples/bash-agent/agent.sh | 39 | # Check if bd is installed |
| LOW | examples/bash-agent/agent.sh | 46 | # Check if we're in a beads-initialized directory |
| LOW | examples/startup-hooks/bd-version-check.sh | 50 | # Check if bd is installed |
| LOW | examples/startup-hooks/bd-version-check.sh | 55 | # Check if jq is installed (required for JSON manipulation) |
| LOW | scripts/generate-newsletter.py | 240 | # Read the file to extract cobra.Command definitions |
| LOW | scripts/generate-newsletter.py | 570 | # Check if we should use last week or since last release |
| LOW | scripts/install.sh | 186 | # Check if codesign is available |
| LOW | scripts/install.sh | 402 | # Check if install_dir is in PATH |
| LOW | scripts/install.sh | 416 | # Check if Go is installed and meets minimum version |
| LOW | scripts/install.sh | 426 | # Check if Go version is 1.24 or later |
| LOW | scripts/install.sh | 513 | # Check if GOPATH/bin (or GOBIN) is in PATH |
| LOW | scripts/install.sh | 573 | # Check if install_dir is in PATH |
| LOW | scripts/update-nix-vendorhash.sh | 48 | # Check if we're in the repo root |
| LOW | scripts/update-nix-vendorhash.sh | 61 | # Check if Docker is available |
| LOW | scripts/update-nix-vendorhash.sh | 158 | # Check if hash is actually the same |
| LOW | scripts/upgrade-smoke-test.sh | 323 | # Check if old binary was able to initialize .beads/. |
| LOW | scripts/migration-test/recipes/fix_dash_prefix.sh | 39 | # Check if prefix has dashes |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | integrations/beads-mcp/src/beads_mcp/config.py | 45 | Validate BEADS_PATH points to an executable bd binary. Args: v: Path to bd executable (can be comma |
| HIGH | integrations/beads-mcp/src/beads_mcp/config.py | 83 | Validate BEADS_DIR points to an existing .beads directory. Args: v: Path to .beads directory or Non |
| HIGH | integrations/beads-mcp/src/beads_mcp/config.py | 112 | Validate BEADS_DB points to an existing database file. Args: v: Path to database file or None |
| HIGH | integrations/beads-mcp/src/beads_mcp/bd_client.py | 282 | Run bd command and parse JSON output. Args: *args: Command arguments to pass to bd cwd: |
| HIGH | integrations/beads-mcp/src/beads_mcp/bd_client.py | 476 | Show issue details. Args: params: Issue ID to show Returns: Issue details |
| HIGH | integrations/beads-mcp/src/beads_mcp/tools.py | 264 | Attempt to reconnect with exponential backoff. Args: canonical: Canonical workspace path max_retrie |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | cmd/bd/tips.go | 196 | // Example usage: |
| LOW | examples/formulas/gh-issue-to-pr.formula.toml | 20 | # Usage: |
| LOW | examples/formulas/gh-pr-review.formula.toml | 27 | # Usage: |
| LOW | scripts/update-nix-vendorhash.sh | 20 | # Usage: |
| LOW | scripts/sign-windows.sh | 14 | # Usage: |
| LOW | scripts/cross-version-smoke-test.sh | 17 | # Usage: |
| LOW | scripts/test-git-remote.sh | 7 | # Usage: |
| LOW | scripts/migrate-sqlite-to-current.sh | 4 | # Usage: |
| LOW | scripts/migrate-jsonl-to-dolt.sh | 4 | # Usage: |
| LOW | scripts/gen-winres.sh | 8 | # Usage: |
| LOW | scripts/upgrade-smoke-test.sh | 15 | # Usage: |
| LOW | scripts/ci/go-test-shard-packages.sh | 4 | # Usage: |
| LOW | scripts/ci/go-test-shard-names.sh | 4 | # Usage: |
| LOW | scripts/migration-test/run.sh | 21 | # Usage: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | integrations/beads-mcp/src/beads_mcp/server.py | 282 | |
| LOW | integrations/beads-mcp/src/beads_mcp/server.py | 597 | |
| LOW | integrations/beads-mcp/src/beads_mcp/server.py | 1296 | |
| LOW | integrations/beads-mcp/src/beads_mcp/tools.py | 142 | |
| LOW | integrations/beads-mcp/src/beads_mcp/workspace.py | 13 | |
| LOW | scripts/generate-newsletter.py | 156 | |
| LOW | scripts/generate-newsletter.py | 205 | |
| LOW | scripts/generate-newsletter.py | 302 | |
| LOW | scripts/generate-newsletter.py | 337 | |
| LOW | scripts/generate-newsletter.py | 373 | |
| LOW | scripts/generate-newsletter.py | 641 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | integrations/beads-mcp/src/beads_mcp/server.py | 300 | except Exception: |
| LOW | integrations/beads-mcp/src/beads_mcp/config.py | 152 | except Exception as e: |
| LOW | integrations/beads-mcp/src/beads_mcp/tools.py | 137 | except Exception as e: |
| LOW | integrations/beads-mcp/src/beads_mcp/tools.py | 206 | except Exception as e: |
| LOW | integrations/beads-mcp/src/beads_mcp/tools.py | 258 | except Exception: |
| LOW | integrations/beads-mcp/src/beads_mcp/tools.py | 285 | except Exception: |
| LOW | integrations/beads-mcp/src/beads_mcp/workspace.py | 40 | except Exception as exc: |
| MEDIUM | examples/python-agent/agent.py | 141 | print(f"Error running bd: {e}", file=sys.stderr) |
| LOW | scripts/generate-newsletter.py | 759 | except Exception as e: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | cmd/bd/mol_squash.go | 210 | // This enables agents to provide AI-generated summaries while keeping bd as a pure tool. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …ations/beads-mcp/tests/test_multi_project_switching.py | 10 | |
| LOW | integrations/beads-mcp/src/beads_mcp/workspace.py | 3 | |
| LOW | scripts/generate-newsletter.py | 34 |