feat(init): allow parallel discuss across independent phases (#2268) (#2357)

The sliding-window pattern serialized discuss to one phase at a time
even when phases had no dependency relationship. Replaced it with a
simple predicate: every undiscussed phase whose dependencies are
satisfied is marked is_next_to_discuss, letting the user pick any of
them from the manager's recommended_actions list.

Closes #2268

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Tom Boucher
2026-04-17 09:20:26 -04:00
committed by GitHub
parent 06c528be44
commit 6deef7e7ed
3 changed files with 133 additions and 25 deletions

View File

@@ -1080,15 +1080,10 @@ function cmdInitManager(cwd, raw) {
: '—';
}
// Sliding window: discuss is sequential — only the first undiscussed phase is available
let foundNextToDiscuss = false;
for (const phase of phases) {
if (!foundNextToDiscuss && (phase.disk_status === 'empty' || phase.disk_status === 'no_directory')) {
phase.is_next_to_discuss = true;
foundNextToDiscuss = true;
} else {
phase.is_next_to_discuss = false;
}
phase.is_next_to_discuss =
(phase.disk_status === 'empty' || phase.disk_status === 'no_directory') &&
phase.deps_satisfied;
}
// Check for WAITING.json signal