feat(HAI-006): complete Step 4 — add groupOverlappingFiles toggle to Settings UI

This commit is contained in:
Dustin Byrne
2026-03-25 20:44:38 -04:00
parent c3a785a3fb
commit 12eb31bc0d

View File

@@ -9,7 +9,7 @@ interface SettingsModalProps {
}
export function SettingsModal({ onClose, addToast }: SettingsModalProps) {
const [form, setForm] = useState<Settings>({ maxConcurrent: 2, maxWorktrees: 4, pollIntervalMs: 15000 });
const [form, setForm] = useState<Settings>({ maxConcurrent: 2, maxWorktrees: 4, pollIntervalMs: 15000, groupOverlappingFiles: false });
const [loading, setLoading] = useState(true);
useEffect(() => {
@@ -102,6 +102,20 @@ export function SettingsModal({ onClose, addToast }: SettingsModalProps) {
}
/>
</div>
<div className="form-group">
<label htmlFor="groupOverlappingFiles" style={{ display: "flex", alignItems: "center", gap: "8px" }}>
<input
id="groupOverlappingFiles"
type="checkbox"
checked={form.groupOverlappingFiles}
onChange={(e) =>
setForm((f) => ({ ...f, groupOverlappingFiles: e.target.checked }))
}
/>
Serialize tasks with overlapping files
</label>
<small>When enabled, tasks that modify the same files are queued serially to avoid merge conflicts</small>
</div>
</div>
)}
<div className="modal-actions">