feat(conflicts): add file overlap conflict detection (S-1 Phase 1)

Detects when 2+ agent sessions write the same file within a project.
New conflicts.svelte.ts store, shared tool-files.ts utility, dispatcher
integration, health attention scoring (SCORE_FILE_CONFLICT=70), and UI
indicators in ProjectHeader + StatusBar. 170/170 tests pass.
This commit is contained in:
Hibryda 2026-03-11 00:12:10 +01:00
parent 8e00e0ef8c
commit 82fb618c76
12 changed files with 483 additions and 37 deletions

View file

@ -80,6 +80,12 @@
<span class="project-id">({project.identifier})</span>
</div>
<div class="header-info">
{#if health && health.fileConflictCount > 0}
<span class="info-conflict" title="{health.fileConflictCount} file conflict{health.fileConflictCount > 1 ? 's' : ''} — multiple agents writing same file">
{health.fileConflictCount} conflict{health.fileConflictCount > 1 ? 's' : ''}
</span>
<span class="info-sep">·</span>
{/if}
{#if contextPct !== null && contextPct > 0}
<span class="info-ctx" style="color: {ctxColor()}" title="Context window usage">ctx {contextPct}%</span>
<span class="info-sep">·</span>
@ -224,6 +230,16 @@
flex-shrink: 0;
}
.info-conflict {
font-size: 0.6rem;
color: var(--ctp-red);
font-weight: 600;
white-space: nowrap;
background: color-mix(in srgb, var(--ctp-red) 12%, transparent);
padding: 0.0625rem 0.375rem;
border-radius: 0.1875rem;
}
.info-profile {
font-size: 0.65rem;
color: var(--ctp-blue);