Private
Public Access
conductor(plan): add Phase 6 to result_migration_app_controller_20260618
After Tier 2's Phase 3 commit 7fcce652 'migrate 8 INTERNAL_SILENT_SWALLOW
sites', the audit still shows 28 INTERNAL_SILENT_SWALLOW sites in
src/app_controller.py. The 8 sites were renamed with narrower exception
types and given logging.debug bodies — but logging.debug is NOT a drain
point per conductor/code_styleguides/error_handling.md:530:
'narrow except + log (sys.stderr.write / logging.*) only' |
INTERNAL_SILENT_SWALLOW | VIOLATION — logging is NOT a drain
Phase 6 fixes all 28 sites with proper Result[T] propagation:
Sub-phase 6.1: 2 signal handler sites (Pattern 3 drain: os._exit)
Sub-phase 6.2: 2 timeline-event sinks (stderr carry + instance state)
Sub-phase 6.3: 3 GUI state/property setters (Result helper sibling)
Sub-phase 6.4: 1 SDK boundary (_fetch_models.do_fetch)
Sub-phase 6.5: 10 background worker sites (_report_worker_error)
Sub-phase 6.6: 3 per-event handler sites (per-request error list)
Sub-phase 6.7: 6 helper/utility sites (Result propagates upward)
Sub-phase 6.8: audit --strict gate + 28 site tests + report rewrite
Audit gate: uv run python scripts/audit_exception_handling.py --src
src/app_controller.py --strict must exit 0. No logging.debug in
except bodies (verified by grep). Every except body returns
Result(data=..., errors=[ErrorInfo(original=e)]) or reaches a real
drain point (os._exit, stderr carry, instance state for sub-track 4).
Per user reply 2026-06-18: stderr/sys.stderr logging is acceptable
terminal drain until sub-track 4 lands the GUI error display.
Spec.md §12-§21 (addendum); plan.md Phase 6 (8 sub-phases);
state.toml adds 18 t6_* tasks; metadata.json adds 4 verification
criteria + 4 risk_register entries; tracks.md row updated.
Refs:
- docs/reports/TRACK_COMPLETION_result_migration_app_controller_20260618.md
(the Phase 5 report this addendum supersedes)
- conductor/tracks/result_migration_20260616/spec.md (umbrella)
This commit is contained in:
+1
-1
@@ -756,7 +756,7 @@ Lightweight chronology; full spec/plan/state per track is in the linked folder.
|
||||
|---|---|---|---|---|
|
||||
| 1 | `result_migration_review_pass` | S | 57 sites (32 UNCLEAR + 25 INTERNAL_RETHROW) across 15 files | First: human review + audit script heuristic updates inform all later sub-tracks |
|
||||
| 2 | `result_migration_small_files` | L | 37 files (35 SMALL + 2 MEDIUM from `--by-size`); 72 V+S sites | Second: quick wins; doesn't depend on the orchestrator or GUI; can run in parallel with 3-4 |
|
||||
| 3 | `result_migration_app_controller` | XL | 56 sites in `src/app_controller.py` (166KB; 13 FastAPI boundary stay as-is) | Third: high coordination with Hook API + MMA + RAG; gates the GUI migration |
|
||||
| 3 | `result_migration_app_controller` | XL | 56 sites in `src/app_controller.py` (166KB; 13 FastAPI boundary stay as-is) — **Phase 6 added 2026-06-18** to fix the 28 silent-swallow sites that Phase 3's `logging.debug` migration didn't actually migrate (audit gate: `--strict` exits 0) | Third: high coordination with Hook API + MMA + RAG; gates the GUI migration |
|
||||
| 4 | `result_migration_gui_2` | XL | **55 sites** in `src/gui_2.py` (260KB; 14 ? includes the +1 site `src/gui_2.py:1349` from the review pass) | Fourth: depends on 3 for clean API; the largest file |
|
||||
| 5 | `result_migration_baseline_cleanup` | L | 112 sites in 3 refactored files (mcp_client.py, ai_client.py, rag_engine.py) | Fifth: closes the gaps in the convention reference; parent's Path C deferred work |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user