Deleted all closed issues (mostly test pollution from benchmarks). Database now clean: 26 total issues (25 open, 1 in-progress). Removed 3286 events and 2 labels associated with deleted issues. Amp-Thread-ID: https://ampcode.com/threads/T-5ad38d33-28ba-4f47-997a-b0d7e0331c26 Co-authored-by: Amp <amp@ampcode.com>
27 lines
13 KiB
JSON
27 lines
13 KiB
JSON
{"id":"bd-1","title":"Stress tests pollute production database with test issues","description":"TestStressNoUniqueConstraintViolations and other stress tests in internal/rpc/stress_test.go create issues in production database instead of test database. Confirmed: 1,000 test issues (Agent X Issue Y) created at 20:46:01 during test run. Root cause: test goroutines connect to production daemon at .beads/bd.sock instead of isolated test daemon in temp directory.","acceptance_criteria":"Test with new flag","status":"open","priority":0,"issue_type":"bug","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.146249-07:00"}
|
|
{"id":"bd-1064","title":"Comment test","description":"","status":"open","priority":2,"issue_type":"task","created_at":"2025-10-22T00:37:10.445642-07:00","updated_at":"2025-10-22T00:42:25.164079-07:00"}
|
|
{"id":"bd-1065","title":"Version test issue","description":"","status":"open","priority":2,"issue_type":"task","created_at":"2025-10-22T00:37:12.263803-07:00","updated_at":"2025-10-22T00:42:25.164295-07:00"}
|
|
{"id":"bd-1066","title":"Version test issue","description":"","status":"open","priority":2,"issue_type":"task","created_at":"2025-10-22T00:37:12.376494-07:00","updated_at":"2025-10-22T00:42:25.164488-07:00"}
|
|
{"id":"bd-1067","title":"Version test issue","description":"","status":"open","priority":2,"issue_type":"task","created_at":"2025-10-22T00:37:12.831572-07:00","updated_at":"2025-10-22T00:42:25.165048-07:00"}
|
|
{"id":"bd-1068","title":"Version test issue","description":"","status":"open","priority":2,"issue_type":"task","created_at":"2025-10-22T00:37:12.946023-07:00","updated_at":"2025-10-22T00:42:25.165285-07:00"}
|
|
{"id":"bd-1069","title":"Version test issue","description":"","status":"open","priority":2,"issue_type":"task","created_at":"2025-10-22T00:37:13.060099-07:00","updated_at":"2025-10-22T00:42:25.165512-07:00"}
|
|
{"id":"bd-1070","title":"Version test issue","description":"","status":"open","priority":2,"issue_type":"task","created_at":"2025-10-22T00:37:13.176458-07:00","updated_at":"2025-10-22T00:42:25.165956-07:00"}
|
|
{"id":"bd-11","title":"Write tests for merge functionality","description":"Unit tests: validation, merge logic, data integrity. Integration tests: end-to-end workflow, export/import. Edge case tests: chains, circular refs, epics.","status":"open","priority":1,"issue_type":"task","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.166611-07:00"}
|
|
{"id":"bd-12","title":"Document merge command and AI integration","description":"Update README, AGENTS.md with merge command examples. Document AI agent duplicate detection workflow.","status":"open","priority":1,"issue_type":"task","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.168952-07:00"}
|
|
{"id":"bd-15","title":"Add merged_into field to database schema","description":"Add merged_into field to Issue struct and update database schema to support merge tracking","notes":"Simplified: no schema field needed. Close merged issues with reason 'Merged into bd-X'. See bd-79 design.","status":"open","priority":1,"issue_type":"task","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.176336-07:00"}
|
|
{"id":"bd-16","title":"Update export/import for merge fields","description":"Include merged_into in JSONL export format. Handle merge relationships on import.","status":"open","priority":1,"issue_type":"task","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.178771-07:00"}
|
|
{"id":"bd-17","title":"Consider implementing pre-commit hooks for Storage interface changes","description":"The documentation (INTERFACE_CHANGES.md) suggests adding pre-commit hooks that automatically check for Storage interface changes and verify all mocks are updated. This would prevent similar issues in the future where interface changes break mock implementations.\n\nDiscovered during execution of vc-228 (dogfooding run #14/15).","design":"Implement a pre-commit hook that:\n1. Detects changes to internal/storage/storage.go\n2. Runs scripts/find-storage-mocks.sh to find all mock implementations\n3. Attempts to compile all test files with mocks\n4. Blocks commit if compilation fails\n\nTools: husky, pre-commit framework, or simple .git/hooks/pre-commit script","acceptance_criteria":"- Pre-commit hook installed and documented\n- Hook detects Storage interface changes\n- Hook validates all mocks compile\n- Hook can be bypassed with --no-verify if needed\n- Documentation updated with installation instructions","status":"open","priority":2,"issue_type":"feature","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.181065-07:00"}
|
|
{"id":"bd-18","title":"Implement bd quickstart command","description":"Add bd quickstart command to show context-aware repo information: recent issues, database location, configured prefix, example queries. Helps AI agents understand current project state. Companion to bd onboard.","status":"open","priority":2,"issue_type":"feature","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.18334-07:00"}
|
|
{"id":"bd-19","title":"Add customizable time threshold for compact command","description":"Currently compact uses fixed 30-day and 90-day tiers. Add support for custom time thresholds like '--older-than 60h' or '--older-than 2.5d' to allow more flexible compaction policies.\n\nExamples:\n bd compact --all --older-than 60h\n bd compact --all --older-than 2.5d\n bd compact --all --tier 1 --age 48h\n\nThis would allow users to set their own compaction schedules based on their workflow needs.","status":"open","priority":2,"issue_type":"feature","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.186269-07:00"}
|
|
{"id":"bd-20","title":"Add --id flag to bd list for filtering by specific issue IDs","description":"","design":"Add --id flag accepting comma-separated IDs. Usage: bd list --id wy-11,wy-12. Combines with other filters. From filter-flag-design.md.","status":"open","priority":2,"issue_type":"feature","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.196908-07:00"}
|
|
{"id":"bd-21","title":"Make merge command idempotent for safe retry after partial failures","description":"The merge command currently performs 3 operations without an outer transaction:\n1. Migrate dependencies from source → target\n2. Update text references across all issues\n3. Close source issues\n\nIf merge fails mid-operation (network issue, daemon crash, etc.), a retry will fail or produce incorrect results because some operations already succeeded.\n\n**Goal:** Make merge idempotent so retrying after partial failure is safe and completes the remaining work.\n\n**Idempotency checks needed:**\n- Skip dependency migration if target already has the dependency\n- Skip text reference updates if already updated\n- Skip closing source issues if already closed\n- Report which operations were skipped vs performed\n\n**Example output:**\n```\n✓ Merged 2 issue(s) into bd-128\n - Dependencies: 3 migrated, 2 already existed\n - Text references: 5 updated, 0 already correct\n - Source issues: 1 closed, 1 already closed\n```\n\n**Related:** bd-18 originally requested transaction support, but idempotency is a better solution for this use case since individual operations are already atomic.","design":"Current merge code already has some idempotency:\n- Dependency migration checks `alreadyExists` before adding (line ~145-151 in merge.go)\n- Text reference updates are naturally idempotent (replacing bd-X with bd-Y twice has same result)\n\nMissing idempotency:\n- CloseIssue fails if source already closed\n- Error messages don't distinguish \"already done\" from \"real failure\"\n\nImplementation:\n1. Check source issue status before closing - skip if already closed\n2. Track which operations succeeded/skipped\n3. Return detailed results for user visibility\n4. Consider adding --dry-run output showing what would be done vs skipped","status":"open","priority":2,"issue_type":"feature","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.199195-07:00"}
|
|
{"id":"bd-3","title":"Implement text reference scanning and replacement","description":"Scan all issues for text references to merged IDs (bd-X patterns) and update to target ID. Reuse logic from import collision resolution.","status":"open","priority":1,"issue_type":"task","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.221063-07:00"}
|
|
{"id":"bd-32","title":"Add rule-based compaction (e.g., compact children of closed epics)","description":"Support semantic compaction rules beyond just time-based, such as:\n- Compact all children of closed epics\n- Compact by priority level (e.g., all P3/P4 closed issues)\n- Compact by label (e.g., all issues labeled 'archive')\n- Compact by type (e.g., all closed chores)\n\nThis would allow smarter database size management based on semantic meaning rather than just age.","status":"open","priority":3,"issue_type":"feature","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.226152-07:00"}
|
|
{"id":"bd-33","title":"Add compact --dry-run that shows size savings estimates","description":"When running 'bd compact --dry-run', show estimated database size reduction in KB/MB and percentage, similar to what 'du -h' would show.\n\nExample output:\n Tier 1 candidates: 15 issues\n Current size: 2.4 MB\n After compaction: ~1.7 MB (70% reduction, 0.7 MB saved)\n \nThis helps users understand impact before compacting.","status":"open","priority":3,"issue_type":"feature","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.228871-07:00"}
|
|
{"id":"bd-4","title":"Add CLI merge command and flags","description":"Implement bd merge command with: multiple sources, --into target, --dry-run, --json flags. Add interactive confirmation.","status":"open","priority":1,"issue_type":"task","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.244824-07:00"}
|
|
{"id":"bd-5","title":"Add transaction support for atomic merges","description":"Wrap all merge operations in SQLite transaction for atomicity. Implement rollback on failure.","status":"open","priority":1,"issue_type":"task","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.270015-07:00"}
|
|
{"id":"bd-6","title":"Implement dependency migration for merge","description":"Migrate all dependencies from source issue(s) to target issue during merge, removing duplicates and preserving graph integrity","status":"open","priority":1,"issue_type":"task","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.294598-07:00"}
|
|
{"id":"bd-7","title":"Fix flaky CI tests in compactor and daemon modules","description":"Multiple test failures observed in CI:\n- TestCompactTier1_DryRun \n- TestCompactTier1Batch_DryRun\n- TestCompactTier1Batch_WithIneligible\n- TestMockAPI_CompactTier1\n- TestBatchOperations_ErrorHandling\n- TestCommentOperationsViaRPC\n- TestMemoryPressureDetection\n- TestPing\n\nAll failures related to 'issue has open dependents or not closed long enough' eligibility checks.\n\nSee CI run: https://github.com/steveyegge/beads/actions/runs/18688772658","status":"open","priority":1,"issue_type":"bug","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.319146-07:00"}
|
|
{"id":"bd-8","title":"Compact command fails with daemon - requires --no-daemon workaround","description":"The 'bd compact' command fails with 'Error: compact requires SQLite storage' when used with the daemon (default mode), but works correctly with the '--no-daemon' flag.\n\nThe daemon RPC interface doesn't properly expose the compact command, even though the daemon itself uses SQLite storage.\n\nReproduction:\n1. Ensure daemon is running (bd daemon status)\n2. Run: bd compact --stats\n Result: Error: compact requires SQLite storage\n3. Run: bd compact --stats --no-daemon\n Result: Works correctly, shows statistics\n\nExpected behavior:\nThe compact command should work through the daemon RPC interface just like other commands (list, create, update, delete, renumber, etc.)\n\nImpact:\nUsers cannot use compact operations in the normal workflow. They must use --no-daemon which bypasses the daemon entirely.\n\nSuggested fix:\nAdd compact operation support to the daemon RPC interface, similar to how renumber and other operations are exposed.","status":"in_progress","priority":1,"issue_type":"bug","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.34683-07:00"}
|
|
{"id":"bd-9","title":"Investigate stress test database pollution (vc-248)","description":"Investigation of stress tests polluting production database with 1,600+ test issues on Oct 21 at 20:24-20:25. Root cause analysis completed. Tests now verified to work correctly with proper isolation.","notes":"Bug confirmed! Tests DO pollute production DB. 1,000 test issues created at 20:46:01-20:46:02 during TestStressNoUniqueConstraintViolations. Root cause: test goroutines connect to production daemon at .beads/bd.sock instead of test daemon.","status":"open","priority":1,"issue_type":"task","created_at":"2025-10-21T23:00:08.617147-07:00","updated_at":"2025-10-22T00:42:25.370957-07:00"}
|