conductor(plan): Phase 2 complete - io_pool + warmup foundation in place

Phase 2 of startup_speedup_20260606 is done.

Tasks:
  T2.1 (Red)   tests/test_io_pool.py         1354679e  4 tests
  T2.2 (Green) src/io_pool.py                1354679e  make_io_pool() factory
  T2.3 (Red)   tests/test_warmup.py          1354679e  10 tests
  T2.4 (Green) src/warmup.py                 1354679e  WarmupManager
  T2.5 (Wire)  AppController integration     922c5ad9  io_pool + warmup in __init__ + 5 public delegation methods
  T2.6 (Plan)  this commit

What now exists:
  - make_io_pool() returns a 4-worker ThreadPoolExecutor named 'controller-io-N'
  - WarmupManager class with submit/status/is_done/wait/on_complete/reset
  - AppController creates self._io_pool + self._warmup early in __init__
  - Warmup is submitted immediately (jobs run concurrent with the rest of init)
  - Public API: controller.warmup_status(), controller.is_warmup_done(),
    controller.wait_for_warmup(timeout), controller.on_warmup_complete(cb)
  - controller._compute_warmup_list() returns 9 always + 2 conditional (fastapi)
  - shutdown() now also shuts down the io_pool

Currently the warmup is a no-op for modules already imported at the top
of app_controller.py (fastapi, requests). Phase 3 will remove those
top-level imports; the warmup infrastructure will then start doing
real work.

18/18 tests passing (4 io_pool + 10 warmup + 4 test_app_controller_*).

Next: Phase 3 (remove top-level SDK imports from src/ai_client.py).
Expected to fix ~3 audit violations (google.genai, anthropic, openai).
This commit is contained in:
ed
2026-06-06 14:52:04 -04:00
parent 922c5ad9ab
commit 7eb743c6cb
2 changed files with 17 additions and 31 deletions
@@ -5,12 +5,12 @@
track_id = "startup_speedup_20260606"
name = "Sloppy.py Startup Speedup"
status = "active"
current_phase = 1
current_phase = 2
last_updated = "2026-06-07"
[phases]
phase_1 = { status = "in_progress", checkpoint_sha = "", name = "Audit + Benchmark + Foundation" }
phase_2 = { status = "pending", checkpoint_sha = "", name = "Job Pool + Warmup Foundation" }
phase_1 = { status = "completed", checkpoint_sha = "f9a01258", name = "Audit + Benchmark + Foundation" }
phase_2 = { status = "completed", checkpoint_sha = "f9a01258", name = "Job Pool + Warmup Foundation" }
phase_3 = { status = "pending", checkpoint_sha = "", name = "Remove top-level SDK imports (ai_client)" }
phase_4 = { status = "pending", checkpoint_sha = "", name = "Remove top-level FastAPI imports" }
phase_5 = { status = "pending", checkpoint_sha = "", name = "Remove top-level feature-gated GUI imports" }
@@ -27,12 +27,12 @@ t1_3 = { status = "completed", commit_sha = "5a856536", description = "Add Start
t1_4 = { status = "completed", commit_sha = "6f9a3af2", description = "Write scripts/audit_main_thread_imports.py (static CI gate) + 9 tests" }
t1_5 = { status = "in_progress", commit_sha = "", description = "Commit plan update (this commit)" }
# Phase 2: Job Pool + Warmup Foundation
t2_1 = { status = "pending", commit_sha = "", description = "Red: tests/test_app_controller_io_pool.py" }
t2_2 = { status = "pending", commit_sha = "", description = "Green: add _io_pool ThreadPoolExecutor to AppController" }
t2_3 = { status = "pending", commit_sha = "", description = "Red: tests/test_warmup_mechanism.py" }
t2_4 = { status = "pending", commit_sha = "", description = "Green: implement _submit_warmup_jobs, _compute_warmup_list, _warmup_one, warmup_status, is_warmup_done, wait_for_warmup, on_warmup_complete" }
t2_5 = { status = "pending", commit_sha = "", description = "Confirm T2.1 + T2.3 tests pass" }
t2_6 = { status = "pending", commit_sha = "", description = "Commit T2" }
t2_1 = { status = "completed", commit_sha = "1354679e", description = "Red: tests/test_io_pool.py (4 tests)" }
t2_2 = { status = "completed", commit_sha = "1354679e", description = "Green: src/io_pool.py make_io_pool factory" }
t2_3 = { status = "completed", commit_sha = "1354679e", description = "Red: tests/test_warmup.py (10 tests)" }
t2_4 = { status = "completed", commit_sha = "1354679e", description = "Green: src/warmup.py WarmupManager class" }
t2_5 = { status = "completed", commit_sha = "922c5ad9", description = "Wire _io_pool + warmup into AppController.__init__ + 5 public delegation methods + io_pool shutdown" }
t2_6 = { status = "in_progress", commit_sha = "", description = "Plan update (this commit)" }
# Phase 3: Remove top-level SDK imports
t3_1 = { status = "pending", commit_sha = "", description = "Red: tests/test_ai_client_no_top_level_sdk_imports.py" }
t3_2 = { status = "pending", commit_sha = "", description = "Green: remove top-level SDK imports from src/ai_client.py; add _require_warmed helper; update _send_* to use it" }