Consolidated M5 bugfix branch covering the #50 Stage 3 prompt-stream fix and all selected #52 fixes.
What's included
ProcessManager hardening
Set streaming termination/readability handlers before process.run() so fast exits are not missed.
Rework runCaptured with a locked Box hand-off to avoid race with withCheckedContinuation.
Close parent stdout/stderr pipe write-ends after spawn so readDataToEndOfFile() reaches EOF and runCaptured cannot hang on quiet output (fixes the M3 lp failure UI test).
Stage 3 / chartread
Forward chartread prompt lines to the UI event stream.
Fix ChartreadClassifier matcher ordering so errors are not misclassified as awaiting-strip.
Repair Stage 3 control matrix and button/state wiring.
Unskip and fix the M4 handheld fixture UI test.
M5 reliability
Profile installer overwrite, extension, stem-security and collision behaviour.
Hardens ProcessManager finalisation, ensures stdout/stderr pipe write-ends
close after spawn, sets termination handlers before run(), and fixes the
runCaptured continuation hand-off for fast exits. Resolves the Stage 3
prompt stream being dropped and the handheld fixture UI not advancing,
unskips and repairs the handheld UI test, and fixes averaging panel
accessibility. Includes the selected #52 profile, verification, and
artefact-gating fixes.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
gronod
merged commit 460b0a1ffa into milestone/m5-profile2026-09-09 14:21:44 +01:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Consolidated M5 bugfix branch covering the #50 Stage 3 prompt-stream fix and all selected #52 fixes.
What's included
process.run()so fast exits are not missed.runCapturedwith a lockedBoxhand-off to avoid race withwithCheckedContinuation.readDataToEndOfFile()reaches EOF andrunCapturedcannot hang on quiet output (fixes the M3lpfailure UI test).chartreadprompt lines to the UI event stream.ChartreadClassifiermatcher ordering so errors are not misclassified asawaiting-strip.applycalguard preventing UI from passing an unapply operation.killAllon app termination.Verification
Result: 20 UI tests passed, 0 failures; Core suite passed. Sidecar
codesign -dvvverified.Branches
feat/52-m5-bugfixesmilestone/m5-profileRefs #50 #52