Outcome
Model Router runs every job through T3 threads only. The legacy execution path, in which the runner launches and resumes harnesses itself, is deleted once the T3 path (#106) is proven by one real job.
Why
The user confirmed on 2026-09-24 that depending on T3 is fine (they are the only user), and the Mission now says planners are hosted in T3 and jobs run as T3 threads. Keeping both paths doubles maintenance, and several of today's failures live only in the legacy path: the concurrent OpenCode server port race (#104), the four harness-specific planner callbacks (#94, #96), and resuming a live planner session in a second process.
Delete (after #106 is live)
Keep
policy.py routing, capacity probes and ledger, the controller and job ledger, dispatcher envelope handling, stall and capacity classification (fed by T3 activities), and Observer capture.
Acceptance criteria
- Every stage (dispatch, worker, correction, recovery, planner question, terminal report) runs through T3 threads;
submit requires a T3 planner thread.
python3 scripts/test.py passes with the deleted code and its tests removed, and no unique regression proof is lost for behavior that remains.
- One real job through the installed release still reaches an open PR.
Blockers
#106 merged and proven live with one real job.
Objective contribution
Simplifies the milestone's delivery path to one executor; removes the failure sources seen on 2026-09-25.
Outcome
Model Router runs every job through T3 threads only. The legacy execution path, in which the runner launches and resumes harnesses itself, is deleted once the T3 path (#106) is proven by one real job.
Why
The user confirmed on 2026-09-24 that depending on T3 is fine (they are the only user), and the Mission now says planners are hosted in T3 and jobs run as T3 threads. Keeping both paths doubles maintenance, and several of today's failures live only in the legacy path: the concurrent OpenCode server port race (#104), the four harness-specific planner callbacks (#94, #96), and resuming a live planner session in a second process.
Delete (after #106 is live)
runner/harnesses.pyand most ofrunner/adapters.py: Codex CLI and app-server launch, ownedopencode serve, Grok Build CLI, Claude resume.Keep
policy.pyrouting, capacity probes and ledger, the controller and job ledger, dispatcher envelope handling, stall and capacity classification (fed by T3 activities), and Observer capture.Acceptance criteria
submitrequires a T3 planner thread.python3 scripts/test.pypasses with the deleted code and its tests removed, and no unique regression proof is lost for behavior that remains.Blockers
#106 merged and proven live with one real job.
Objective contribution
Simplifies the milestone's delivery path to one executor; removes the failure sources seen on 2026-09-25.