Private
Public Access
0
0

conductor(plan): document root cause - imgui-bundle C-level crash blocks live_gui

This commit is contained in:
2026-06-05 13:47:55 -04:00
parent 1469ecac3a
commit b0c8589f68
2 changed files with 106 additions and 22 deletions
@@ -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.
---
@@ -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.
---