diff --git a/conductor/tracks/regression_fixes_20260605/plan.md b/conductor/tracks/regression_fixes_20260605/plan.md index ba770ef9..f5ee891d 100644 --- a/conductor/tracks/regression_fixes_20260605/plan.md +++ b/conductor/tracks/regression_fixes_20260605/plan.md @@ -82,21 +82,63 @@ The test does `mock_imgui.text_colored.assert_any_call(C_LBL(), "Completed:")`. |---|---|---| | Task 1 (theme regression) | DONE | 38abf231 | | Task 2a (gui_phase4) | DONE | df43f158 | -| Task 2b (prior_session) | DEFERRED (substantial test rewrite) | f829d1df (partial) | +| Task 2b (prior_session) | PARTIAL (test still fails deeper) | f829d1df | | Task 2c (view_presets) | DONE | 970f198c | | Task 3a (LogPruner) | DONE | ac08ee87 | -| Task 3b (session entries) | DEFERRED (live GUI required) | - | -| Task 3c (MMA pipeline) | DEFERRED (live GUI required) | - | +| Task 3b (session entries) | ROOT CAUSE FOUND (task 2b-related) | - | +| Task 3c (MMA pipeline) | DEFERRED (live GUI + C-level crash) | - | | Task 3d (RAG NoneType) | DONE | c96bdb06 | -| Task 3e (live workflow) | DEFERRED (live GUI required) | - | -| Task 3f (auto_switch) | DEFERRED (live GUI required) | - | -| Task 3g (z_negative_flows) | DEFERRED (live GUI required) | - | -| Task 4 (verification) | IN PROGRESS | - | +| Task 3e (live workflow) | DEFERRED (live GUI + C-level crash) | - | +| Task 3f (auto_switch) | DEFERRED (live GUI + C-level crash) | - | +| Task 3g (z_negative_flows) | DEFERRED (live GUI + C-level crash) | - | -**Deferred tasks 3b-3g require live GUI access.** The LogPruner fix (Task 3a) should -reduce startup stalls, but the underlying issue is that the `live_gui` fixture -cannot spawn the GUI subprocess in this Windows environment. A separate environment -investigation is needed to make the test suite fully runnable. +### BONUS FIX: GUI Production Bug (theme-caused) + +**Commit 1469ecac** - Fixed `gui_2.py:3705-3707` where `DIR_COLORS.get(direction, C_VAL())` +returned the callable function instead of calling it. This was causing +`imgui.text_colored` to receive a function instead of `ImVec4`, raising +TypeError on EVERY GUI frame in `render_comms_history_panel`. The error was +caught by `_gui_func`'s except block so the GUI continued, but the Operations +Hub comms panel was completely broken. This is the THEME-CAUSED production +bug that was masking other test failures. + +### ROOT CAUSE OF REMAINING LIVE_GUI FAILURES + +The remaining 12 live_gui tests fail because the `sloppy.py` subprocess +crashes with a C-level access violation (`0xc0000005`) in +`_imgui_bundle.cp311-win_amd64.pyd`. This is a native crash, not a Python +exception, so it cannot be caught or debugged from Python. + +**Event Viewer log evidence:** +``` +Faulting module name: _imgui_bundle.cp311-win_amd64.pyd +Exception code: 0xc0000005 +Fault offset: 0x00000000011424ae +``` + +**Why this blocks all live_gui tests:** +- `test_gui_startup_smoke` PASSES (basic startup works) +- All more complex live_gui tests fail (the GUI process dies after a few + render frames when user input triggers deeper code paths) +- The crash is non-deterministic (different fault offsets between runs), + suggesting memory corruption from C-side state + +**What's needed to unblock:** +1. Capture a full crash dump from `_imgui_bundle.cp311-win_amd64.pyd` +2. Identify the specific imgui function causing the crash +3. Find the call site in `src/gui_2.py` that triggers it +4. Fix the call (e.g., pass correct type, add null check, init context) + +This requires: +- A Windows debugger (WinDbg) or crash dump analysis +- A reproducer script that crashes 100% of the time +- Familiarity with imgui-bundle's C++ internals + +### DEFERRED TASKS REQUIRING ABOVE + +Tasks 3b-3g all depend on the live_gui fixture, which can't survive long +enough to run the test bodies. After fixing the underlying crash, the +deferred tasks should become tractable with normal test debugging. --- diff --git a/docs/superpowers/plans/2026-06-05-regression-fixes.md b/docs/superpowers/plans/2026-06-05-regression-fixes.md index ba770ef9..f5ee891d 100644 --- a/docs/superpowers/plans/2026-06-05-regression-fixes.md +++ b/docs/superpowers/plans/2026-06-05-regression-fixes.md @@ -82,21 +82,63 @@ The test does `mock_imgui.text_colored.assert_any_call(C_LBL(), "Completed:")`. |---|---|---| | Task 1 (theme regression) | DONE | 38abf231 | | Task 2a (gui_phase4) | DONE | df43f158 | -| Task 2b (prior_session) | DEFERRED (substantial test rewrite) | f829d1df (partial) | +| Task 2b (prior_session) | PARTIAL (test still fails deeper) | f829d1df | | Task 2c (view_presets) | DONE | 970f198c | | Task 3a (LogPruner) | DONE | ac08ee87 | -| Task 3b (session entries) | DEFERRED (live GUI required) | - | -| Task 3c (MMA pipeline) | DEFERRED (live GUI required) | - | +| Task 3b (session entries) | ROOT CAUSE FOUND (task 2b-related) | - | +| Task 3c (MMA pipeline) | DEFERRED (live GUI + C-level crash) | - | | Task 3d (RAG NoneType) | DONE | c96bdb06 | -| Task 3e (live workflow) | DEFERRED (live GUI required) | - | -| Task 3f (auto_switch) | DEFERRED (live GUI required) | - | -| Task 3g (z_negative_flows) | DEFERRED (live GUI required) | - | -| Task 4 (verification) | IN PROGRESS | - | +| Task 3e (live workflow) | DEFERRED (live GUI + C-level crash) | - | +| Task 3f (auto_switch) | DEFERRED (live GUI + C-level crash) | - | +| Task 3g (z_negative_flows) | DEFERRED (live GUI + C-level crash) | - | -**Deferred tasks 3b-3g require live GUI access.** The LogPruner fix (Task 3a) should -reduce startup stalls, but the underlying issue is that the `live_gui` fixture -cannot spawn the GUI subprocess in this Windows environment. A separate environment -investigation is needed to make the test suite fully runnable. +### BONUS FIX: GUI Production Bug (theme-caused) + +**Commit 1469ecac** - Fixed `gui_2.py:3705-3707` where `DIR_COLORS.get(direction, C_VAL())` +returned the callable function instead of calling it. This was causing +`imgui.text_colored` to receive a function instead of `ImVec4`, raising +TypeError on EVERY GUI frame in `render_comms_history_panel`. The error was +caught by `_gui_func`'s except block so the GUI continued, but the Operations +Hub comms panel was completely broken. This is the THEME-CAUSED production +bug that was masking other test failures. + +### ROOT CAUSE OF REMAINING LIVE_GUI FAILURES + +The remaining 12 live_gui tests fail because the `sloppy.py` subprocess +crashes with a C-level access violation (`0xc0000005`) in +`_imgui_bundle.cp311-win_amd64.pyd`. This is a native crash, not a Python +exception, so it cannot be caught or debugged from Python. + +**Event Viewer log evidence:** +``` +Faulting module name: _imgui_bundle.cp311-win_amd64.pyd +Exception code: 0xc0000005 +Fault offset: 0x00000000011424ae +``` + +**Why this blocks all live_gui tests:** +- `test_gui_startup_smoke` PASSES (basic startup works) +- All more complex live_gui tests fail (the GUI process dies after a few + render frames when user input triggers deeper code paths) +- The crash is non-deterministic (different fault offsets between runs), + suggesting memory corruption from C-side state + +**What's needed to unblock:** +1. Capture a full crash dump from `_imgui_bundle.cp311-win_amd64.pyd` +2. Identify the specific imgui function causing the crash +3. Find the call site in `src/gui_2.py` that triggers it +4. Fix the call (e.g., pass correct type, add null check, init context) + +This requires: +- A Windows debugger (WinDbg) or crash dump analysis +- A reproducer script that crashes 100% of the time +- Familiarity with imgui-bundle's C++ internals + +### DEFERRED TASKS REQUIRING ABOVE + +Tasks 3b-3g all depend on the live_gui fixture, which can't survive long +enough to run the test bodies. After fixing the underlying crash, the +deferred tasks should become tractable with normal test debugging. ---