conductor(checkpoint): Phase 9 complete - sloppy.py startup speedup track SHIPPED
Track startup_speedup_20260606 complete. RESULTS: - import src.ai_client: 1800ms -> 161ms (91% reduction, 1638ms saved) - import src.gui_2: 1770ms -> 341ms (81% reduction, 1429ms saved) - Total savings on the 2 biggest files: 3067ms - Spec target was 2000-2400ms; we EXCEEDED it. ARCHITECTURAL INVARIANT UPHELD: - Main Thread Purity: 7 tests enforce zero heavy top-level imports in the 6 refactored files (ai_client, app_controller, commands, theme_2, markdown_helper, gui_2) - No new threading.Thread() calls in refactored code paths - Warmup mechanism (Phase 2) pre-loads heavy modules on _io_pool COMMITS (8 total): -5a856536: feat(startup_profiler) -6f9a3af2: feat(audit_main_thread_imports) -1354679e: feat(io_pool, warmup) -922c5ad9: feat(app_controller wire) -16780ec6: test(ai_client no top level) -51c054ec: refactor(ai_client no SDK imports) -- Phase 3 -3849d304: refactor(app_controller no fastapi) + module_loader lift -- Phase 4 -78d3a1db: refactor(commands lazy proxy) -- Phase 5A -69d098ba: refactor(theme_2 no NERV imports) -- Phase 5B -48c96499: refactor(markdown_helper lazy) -- Phase 5C -de6b85d2: refactor(gui_2 lazy + dead imports) -- Phase 5D -85d18885: refactor(app_controller submit_io + log_pruner) -- Phase 6 -b464d1fe: feat(api_hooks warmup_status in diagnostics) -- Phase 7 -61d21c70: refactor(app_controller + main thread purity test) -- Phase 8 FOLLOW-UP SUB-TRACKS IDENTIFIED: 1. Complete ad-hoc thread migration to _io_pool (Phase 6 was partial - ~13 threads remain in app_controller.py) 2. Migrate remaining audit violations in src/models.py, sloppy.py, and other files not in this track's scope 3. Add dedicated /api/warmup_status + /api/warmup_wait Hook API endpoints (Phase 7 was minimal - just added to existing diagnostics) 4. GUI status bar indicator + completion toast (Phase 7 deferred) The Main Thread Purity Invariant is now enforced by automated tests, so future regressions will be caught at CI time.
This commit is contained in: