chore: close bd-l0pg (duplicate GH#483)
This commit is contained in:
@@ -579,7 +579,7 @@
|
||||
{"id":"bd-ktng","title":"Optimize CLI test suite - eliminate redundant git init calls","description":"Current: Each of 13 CLI tests calls git init (31s total). Solution: Use single test binary built once in init(), skip git operations where possible, or use mock filesystem.","status":"open","priority":2,"issue_type":"task","created_at":"2025-11-04T11:23:13.660276-08:00","updated_at":"2025-11-04T11:23:13.660276-08:00","dependencies":[{"issue_id":"bd-ktng","depends_on_id":"bd-l5gq","type":"discovered-from","created_at":"2025-11-04T11:23:13.662102-08:00","created_by":"daemon"}]}
|
||||
{"id":"bd-ky74","title":"Optimize cmd/bd long-mode tests by switching to in-process testing","description":"The long-mode CLI tests in cmd/bd are slow (1.4-4.4 seconds each) because they spawn full bd processes via exec.Command() for every operation.\n\nCurrent approach:\n- Each runBD() call spawns new bd process via exec.Command(testBD, args...)\n- Each process initializes Go runtime, loads SQLite, parses CLI flags\n- Tests run serially (create → update → show → close)\n- Even with --no-daemon flag, there's significant process spawn overhead\n\nExample timing from test run:\n- TestCLI_PriorityFormats: 2.21s\n- TestCLI_Show: 2.26s\n- TestCLI_Ready: 2.29s\n- TestCLI_Import: 4.42s\n\nOptimization strategy:\n1. Convert most tests to in-process testing (call bd functions directly)\n2. Reuse test databases across related operations instead of fresh init each time\n3. Keep a few exec.Command() tests that batch multiple operations to verify the CLI path works end-to-end\n\nThis should reduce test time from ~40s to ~5s for the affected tests.","notes":"Converted all CLI tests in cli_fast_test.go to use in-process testing via rootCmd.Execute(). Created runBDInProcess() helper that:\n- Calls rootCmd.Execute() directly instead of spawning processes\n- Uses mutex to serialize execution (rootCmd/viper not thread-safe)\n- Properly cleans up global state (store, daemonClient)\n- Returns only stdout to avoid JSON parsing issues with stderr warnings\n\nPerformance results:\n- In-process tests: ~0.6s each (cached even faster)\n- exec.Command tests: ~3.7s each \n- Speedup: ~10x faster\n\nKept TestCLI_EndToEnd() that uses exec.Command for end-to-end validation of the actual binary.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-08T18:40:27.358821-08:00","updated_at":"2025-11-08T18:47:11.107998-08:00","closed_at":"2025-11-08T18:47:11.107998-08:00"}
|
||||
{"id":"bd-kzxd","title":"Sync protection mechanism resurrects deleted issues","description":"During bd sync, the 'Protecting N issue(s) from left snapshot' logic resurrects issues that are in the deletions manifest, causing UNIQUE constraint failures on subsequent syncs.\n\n## Reproduction\n1. Delete an issue with bd delete (creates tombstone + deletions.jsonl entry)\n2. Run bd sync - succeeds\n3. Run bd sync again - fails with 'UNIQUE constraint failed: issues.id'\n\n## Root Cause\nThe protection mechanism (designed to prevent data loss during 3-way merge) keeps a snapshot of issues before sync. When importing after pull, it restores issues from this snapshot even if they're in the deletions manifest.\n\n## Observed Behavior\n- bd-3pd was deleted and added to deletions.jsonl\n- First sync exports tombstone, commits, pulls, imports - succeeds\n- Second sync: protection restores bd-3pd from left snapshot\n- Import tries to create bd-3pd which already exists → UNIQUE constraint error\n\n## Expected Behavior\nIssues in deletions manifest should NOT be restored by protection mechanism.\n\n## Workaround\nManually delete from DB: sqlite3 .beads/beads.db 'DELETE FROM issues WHERE id = \"bd-xxx\"'\n\n## Files to Investigate\n- cmd/bd/sync.go - protection logic\n- cmd/bd/snapshot_manager.go - left snapshot handling\n- internal/importer/importer.go - import with protection","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-12-13T10:11:02.550663-08:00","updated_at":"2025-12-13T10:20:51.651662-08:00","closed_at":"2025-12-13T10:20:51.651662-08:00"}
|
||||
{"id":"bd-l0pg","title":"GH#483: Pre-commit hook should not fail when .beads exists but bd sync fails","description":"Pre-commit hook exit 1 on bd sync --flush-only failure blocks commits even when user removed beads but .beads dir reappears. Should warn not fail. See: https://github.com/steveyegge/beads/issues/483","status":"in_progress","priority":2,"issue_type":"bug","created_at":"2025-12-14T16:32:22.759225-08:00","updated_at":"2025-12-16T01:07:56.467325-08:00"}
|
||||
{"id":"bd-l0pg","title":"GH#483: Pre-commit hook should not fail when .beads exists but bd sync fails","description":"Pre-commit hook exit 1 on bd sync --flush-only failure blocks commits even when user removed beads but .beads dir reappears. Should warn not fail. See: https://github.com/steveyegge/beads/issues/483","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-14T16:32:22.759225-08:00","updated_at":"2025-12-16T01:09:46.931395-08:00","closed_at":"2025-12-16T01:09:46.931395-08:00","close_reason":"Fixed in bd-drmg: pre-commit now checks for actual beads init and warns instead of failing"}
|
||||
{"id":"bd-l4b6","title":"Add tests for bd init --team wizard","description":"Write integration tests for the team wizard:\n- Test branch detection\n- Test sync branch creation\n- Test protected branch workflow\n- Test auto-sync configuration","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-05T18:58:18.192425-08:00","updated_at":"2025-11-06T20:06:49.22056-08:00","closed_at":"2025-11-06T19:55:39.687439-08:00"}
|
||||
{"id":"bd-l5gq","title":"Optimize test suite performance - cut runtime by 50%+","description":"## Problem\nTest suite takes ~20.8 seconds, with 95% of time spent in just 2 tests:\n- TestHashIDs_MultiCloneConverge: 11.08s (53%)\n- TestHashIDs_IdenticalContentDedup: 8.78s (42%)\n\nBoth tests in beads_hash_multiclone_test.go perform extensive Git operations (bare repos, multiple clones, sync rounds).\n\n## Goal\nCut total test time by at least 50% (to ~10 seconds or less).\n\n## Analysis\nTests already have some optimizations:\n- --shared --depth=1 --no-tags for fast cloning\n- Disabled hooks, gc, fsync\n- Support -short flag\n\n## Impact\n- Faster development feedback loop\n- Reduced CI costs and time\n- Better developer experience","status":"closed","priority":2,"issue_type":"epic","created_at":"2025-11-04T01:23:14.410648-08:00","updated_at":"2025-11-04T11:23:13.683213-08:00","closed_at":"2025-11-04T11:23:13.683213-08:00"}
|
||||
{"id":"bd-l7u","title":"Duplicate DefaultRetentionDays constants","description":"## Problem\n\nThere are now two constants for the same value:\n\n1. `deletions.DefaultRetentionDays = 7` in `internal/deletions/deletions.go:184`\n2. `configfile.DefaultDeletionsRetentionDays = 7` in `internal/configfile/configfile.go:102`\n\n## Impact\n- DRY violation\n- Risk of values getting out of sync\n- Confusing which one to use\n\n## Fix\nRemove the constant from `deletions` package and have it import from `configfile`, or create a shared constants package.","status":"closed","priority":3,"issue_type":"task","created_at":"2025-11-25T12:49:38.356211-08:00","updated_at":"2025-11-25T15:15:21.964842-08:00","closed_at":"2025-11-25T15:15:21.964842-08:00"}
|
||||
|
||||
Reference in New Issue
Block a user