docs(reports): Phase 14 addendum - 2 documented test issues fixed; 11/11 tiers PASS clean

Updates both the per-site report and the completion report for
result_migration_small_files_20260617 with a Phase 14 addendum that:

- Documents the 2 fixes (Issue 1: GUI subprocess crash; Issue 2:
  xdist race in workspace fixture)
- References the follow-up track live_gui_test_fixes_20260618
- States the final test pass count: 11/11 tiers PASS clean
- Lists the remaining Gemini 503 skip markers as out of scope
- Confirms sub-track 2 is fully ready for merge with no documented
  issues from this track

Sub-track 3 (result_migration_app_controller) is now unblocked.
This commit is contained in:
ed
2026-06-18 15:28:53 -04:00
parent c17bc25d49
commit d5cbd3b0a1
2 changed files with 118 additions and 0 deletions
@@ -136,3 +136,68 @@ The 4 UNCLEAR classifications suggest 2 heuristic gaps:
2. **`openai_compatible.py:87` (Result-based SDK boundary)**: The audit doesn't have a heuristic for "try/except SDK_error + body returns Result with errors list." This is the canonical migrated pattern. A heuristic could classify these as BOUNDARY_SDK or INTERNAL_COMPLIANT.
These heuristic improvements are deferred to a follow-up track. The sub-track 2 migrations (Phase 7) handle the 2 migration-target sites directly.
---
## Phase 14 Addendum (Live GUI Test Fixes)
This track shipped with 2 documented test infrastructure issues that
blocked the full closure of sub-track 2. Both issues have been fixed
in the follow-up track `live_gui_test_fixes_20260618`.
### Issue 1: test_execution_sim_live GUI subprocess crash (tier-3-live_gui)
GUI subprocess crashed mid-test with `0xC00000FD = STATUS_STACK_OVERFLOW`.
Root cause: `imgui.set_window_focus("Response")` was called directly
during the response panel render, exhausting the GUI main thread's
1.94 MB stack.
Fix: defer the focus call to the next frame's idle phase via a new
`_pending_focus_response` flag. Mirrors the existing
`_autofocus_response_tab` pattern at `gui_2.py:5353-5356`.
Tracks the same root cause as `test_z_negative_flows.py` (documented
in `docs/reports/NEGATIVE_FLOWS_INVESTIGATION_20260617_REFINED.md`).
### Issue 2: test_live_gui_workspace_exists xdist race (tier-1-unit-gui)
In pytest-xdist batched runs, the owner worker's live_gui fixture
teardown removes the shared workspace path via `shutil.rmtree` when
the owner's session ends. This can race with client workers' tests
that assert `live_gui_workspace.exists()`, leaving the workspace
missing.
Root cause: the `live_gui_workspace` fixture returned `handle.workspace`
without ensuring the path exists.
Fix: call `workspace.mkdir(parents=True, exist_ok=True)` before
returning. Idempotent and resilient to concurrent teardown.
Pre-existing on parent commit `4ab7c732` (verified in
`tests/artifacts/PHASE14_PARENT_VERIFICATION.log`).
### Final result: 11/11 tiers PASS clean
The 11/11 verification is in `tests/artifacts/PHASE14_TEST_RUN_RESULTS.log`.
| Tier | Status |
|---|---|
| tier-1-unit-comms | PASS |
| tier-1-unit-core | PASS |
| tier-1-unit-gui | PASS |
| tier-1-unit-headless | PASS |
| tier-1-unit-mma | PASS |
| tier-2-mock_app-comms | PASS |
| tier-2-mock_app-core | PASS |
| tier-2-mock_app-gui | PASS |
| tier-2-mock_app-headless | PASS |
| tier-2-mock_app-mma | PASS |
| tier-3-live_gui | PASS |
The 4 Gemini 503 pre-existing skip markers remain (out of scope for
the fix track; deferred to a follow-up track to mock the Gemini API
in `summarize.summarise_file`).
Sub-track 2 (`result_migration_small_files_20260617`) is now FULLY
ready for merge with no documented issues from this track. Sub-track
3 (`result_migration_app_controller`) is unblocked.