Fix bd-166: Prevent duplicate issues with wrong prefix
Critical fix for silent data corruption where database created 173 duplicate issues with wrong prefix (beads- instead of bd-). Root cause: When issue_prefix config was missing, CreateIssue fell back to deriving prefix from database filename (beads.db → 'beads'), while auto-import imported bd- issues from git with SkipPrefixValidation. This created duplicates. Changes: 1. Removed derivePrefixFromPath() - never derive prefix from filename 2. CreateIssue/CreateIssues now REJECT if issue_prefix config missing - Fail-fast with clear error message 3. Auto-import now SETS issue_prefix from first imported issue if missing - Handles fresh clone scenario safely 4. Added newTestStore() helper that sets issue_prefix for tests 5. Updated test setup in multiple files to prevent test failures Follow-ups filed: bd-167, bd-168, bd-169 Closes bd-166 Amp-Thread-ID: https://ampcode.com/threads/T-b2ee0738-b90b-40ef-ae44-f2d93729842c Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
@@ -38,6 +38,14 @@ func setupTestServer(t *testing.T) (*Server, *Client, func()) {
|
||||
t.Fatalf("Failed to create store: %v", err)
|
||||
}
|
||||
|
||||
// CRITICAL (bd-166): Set issue_prefix to prevent "database not initialized" errors
|
||||
ctx := context.Background()
|
||||
if err := store.SetConfig(ctx, "issue_prefix", "bd"); err != nil {
|
||||
store.Close()
|
||||
os.RemoveAll(tmpDir)
|
||||
t.Fatalf("Failed to set issue_prefix: %v", err)
|
||||
}
|
||||
|
||||
server := NewServer(socketPath, store, tmpDir, dbPath)
|
||||
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
|
||||
Reference in New Issue
Block a user