Merge remote main with teacher streaming and composer updates
Some checks failed
Electron E2E / Electron E2E (macos-latest) (push) Has been cancelled
Electron E2E / Electron E2E (ubuntu-latest) (push) Has been cancelled
Electron E2E / Electron E2E (windows-latest) (push) Has been cancelled

This commit is contained in:
2026-09-29 21:37:50 +08:00
98 changed files with 3934 additions and 359 deletions

View File

@@ -0,0 +1,7 @@
# Interrupted worktree retirement can block every subsequent task start
The prior official retire removed Git registration and the worktree .git file but failed with Directory not empty. Its ownership/reservation remained, so the next authorized main continuation was rejected for an invalid peer worktree. A missing task record warning alone would not block; the invalid Git worktree did.
The source branch and integrated commit were verified before recovery. The user explicitly approved a manual exception for this exact residual path. Automatic approval review rejected recursive deletion. The reversible fallback renamed the residual directory with a -retained suffix, preserving all bytes; official release-missing --force then removed the now-missing original path's matching records. Official start and status subsequently passed. No registry JSON was edited and no other checkout was touched. The retained directory remains available, and source branches/commits remain intact.
Promotion candidate: extend the maintained skill's official retirement workflow with a bounded interrupted-retirement recovery that can distinguish absent Git metadata from a live checkout, preserve residue by default and reconcile exact task records transactionally. Evidence: failed retire recorded by the source integration task and this follow-up's actual start/release/start results. Future impact: prevent one interrupted cleanup from blocking unrelated authorized work. Skill changes require separate approval; no bundled script was modified here.