fix: Remove unsafe ClearDirtyIssues() method (bd-b6xo)
Remove ClearDirtyIssues() which had a race condition that could lose dirty issues if export failed partway through. All callers now use ClearDirtyIssuesByID() which only clears specific exported issues. - Remove from Storage interface - Remove from SQLite and Memory implementations - Update 6 test call sites to use ClearDirtyIssuesByID() 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1313,14 +1313,6 @@ func (m *MemoryStorage) GetDirtyIssues(ctx context.Context) ([]string, error) {
|
||||
return dirtyIDs, nil
|
||||
}
|
||||
|
||||
func (m *MemoryStorage) ClearDirtyIssues(ctx context.Context) error {
|
||||
m.mu.Lock()
|
||||
defer m.mu.Unlock()
|
||||
|
||||
m.dirty = make(map[string]bool)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *MemoryStorage) ClearDirtyIssuesByID(ctx context.Context, issueIDs []string) error {
|
||||
m.mu.Lock()
|
||||
defer m.mu.Unlock()
|
||||
|
||||
@@ -698,8 +698,8 @@ func TestDirtyTracking(t *testing.T) {
|
||||
}
|
||||
|
||||
// Clear dirty
|
||||
if err := store.ClearDirtyIssues(ctx); err != nil {
|
||||
t.Fatalf("ClearDirtyIssues failed: %v", err)
|
||||
if err := store.ClearDirtyIssuesByID(ctx, dirty); err != nil {
|
||||
t.Fatalf("ClearDirtyIssuesByID failed: %v", err)
|
||||
}
|
||||
|
||||
dirty, err = store.GetDirtyIssues(ctx)
|
||||
|
||||
Reference in New Issue
Block a user