You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
release: 1.4.10 — fix worktree_failed retry + double create confirm
User reported: 'j'ai créé une tâche, j'ai eu 2 confirmations,
j'ai cliqué sur Play et j'ai eu une erreur'.
Lancement ignoré : worktree_failed:Command failed with exit
code 255: git worktree add -b
backlog/subtask_008-add-test-30-avril-html-with-hell ...
Investigation: their test-backlog-demo had run_006 (failed) and
run_019 (failed) still occupying their old branches because
nothing cleaned them. New run_021 retried subtask_008 with the
SAME branch name → git refused.
Three structural fixes:
1. Run id in branch name (worktrees.ts)
buildRunBranchName(taskId, taskTitle, runId?) now returns
backlog/<task>-<slug>-<runId>. Retries on the same subtask always
get a fresh branch. Used '-' not '/' as the separator because
legacy 'backlog/<task>-<slug>' branches still exist in upgraded
workspaces — and git refuses to create 'foo/bar' when leaf 'foo'
exists in refs/heads/.
2. Worktree gc on hydrate (orchestrator-loop.ts)
garbageCollectWorktrees() now runs alongside the 1.4.9 run-archive
sweep, on every server start. Orphaned worktrees from failed runs
stop piling up.
Verified: test-backlog-demo had 3 worktrees (main + run_006 +
run_019). After hydrate with new code, just main remained.
3. Skip CreateTaskDialog 'applied' phase + reword StartPromptDialog
The 'applied' phase briefly rendered 'Tâche créée' / '✓ Tâche
créée' before the parent closed the dialog. Then StartPromptDialog
opened with body 'Tâche X créée avec N sous-tâches' — visually a
second 'créée' confirmation. Two changes:
- CreateTaskDialog no longer sets phase='applied' on success; it
just calls onCreated() and the parent closes the modal.
- StartPromptDialog title/body rewritten to action-focused:
'Lancer cette tâche maintenant ?' / '{taskId} sera exécutée
par l'agent.' Single confirmation, single ask.