Skip to content

Commit 3d79574

Browse files
fix: exclude .test-index from file-overlap conflict detection (4298-db75) (merge worktree-20260324-164324)
2 parents 84f400e + c8c78a4 commit 3d79574

File tree

3 files changed

+27
-2
lines changed

3 files changed

+27
-2
lines changed

plugins/dso/.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "dso",
3-
"version": "0.26.4",
3+
"version": "0.26.5",
44
"description": "Workflow infrastructure plugin for Claude Code projects",
55
"commands": "./commands/",
66
"skills": "./skills/",

plugins/dso/scripts/sprint-next-batch.sh

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -716,6 +716,13 @@ candidates.sort(key=lambda c: (c.classify_priority, c.tk_priority, c.id))
716716
717717
# ── Greedy selection with file-overlap and opus cap ───────────────────────────
718718
719+
# Files that are shared-by-design and support concurrent additive edits.
720+
# These are excluded from the file-overlap conflict check to avoid false
721+
# positive serialization between unrelated tasks.
722+
OVERLAP_SAFE_FILES = {
723+
".test-index",
724+
}
725+
719726
claimed_files = {} # file -> task_id that claimed it
720727
batch = [] # Candidate objects in batch
721728
opus_in_batch = 0
@@ -728,10 +735,12 @@ for c in candidates:
728735
if limit > 0 and len(batch) >= limit:
729736
break
730737
731-
# File conflict check
738+
# File conflict check (skip overlap-safe shared files)
732739
conflict_file = None
733740
conflict_task = None
734741
for f in c.files:
742+
if f in OVERLAP_SAFE_FILES:
743+
continue
735744
if f in claimed_files:
736745
conflict_file = f
737746
conflict_task = claimed_files[f]

tests/scripts/test-sprint-next-batch.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -786,6 +786,22 @@ test_sprint_next_batch_no_TK_variable() {
786786
}
787787
test_sprint_next_batch_no_TK_variable
788788

789+
# ── Test: .test-index excluded from file-overlap conflict detection ────────────
790+
# Bug 4298-db75: .test-index is a shared registry that many agents modify
791+
# concurrently (adding test entries). Flagging it as a file-overlap conflict
792+
# creates false positive serialization between unrelated tasks.
793+
test_test_index_overlap_safe() {
794+
echo "Test: .test-index is in overlap-safe exclusion list"
795+
if grep -q 'test-index' "$PLUGIN_SCRIPT" && grep -qE 'OVERLAP_SAFE|overlap_safe' "$PLUGIN_SCRIPT"; then
796+
echo " PASS: .test-index appears in an overlap-safe exclusion list"
797+
(( PASS++ ))
798+
else
799+
echo " FAIL: sprint-next-batch.sh must exclude .test-index from file-overlap conflicts" >&2
800+
(( FAIL++ ))
801+
fi
802+
}
803+
test_test_index_overlap_safe
804+
789805
echo ""
790806
echo "Results: $PASS passed, $FAIL failed"
791807
[ "$FAIL" -eq 0 ]

0 commit comments

Comments
 (0)