The development knowledge base for CodingAgentRunner. This wiki travels with the code so project knowledge stays alongside the implementation.
- Architecture — the modules, public API (including host-owned clean-context leases for Agent Studio AGT-2371), and the abstractions the library leans on (logging, options, a home/path provider).
- CLI setup — installing and signing in to the four CLIs, the
InspectEnvironment()diagnostics report, and the headless/CI automation options. - Pricing — the one library of per-model API prices with history, and the pure cost API (
ModelPriceCatalog) that computes a run's cost with the price valid at run time — unknown/unpriced models are explicit, never a silent zero. - Cross-CLI normalization — the same concept in three CLI dialects, the per-CLI frame table, the structural asymmetries the model absorbs, and the one
CliRunEventvocabulary the adapters fold them into. - Chat attachments — resolving durable chat attachment references to local files, CLI delivery, and actionable start failures.
- Cheap-subagent delegation — the agent definitions a run gets, the prompt block that advertises them, how a project overrides or opts out, and what
codex execdoes with subagents today. - Why Windows hardening — the war stories behind each hardening behaviour, and why each ships with a test.
- Process-spawner composition — decorate a prepared launch while retaining the supported default spawn path.
- Process termination & abort handling — the outcome model (
stoppedvscompletedvsfailed), the abort scenarios, process-tree reaping, and the watchdog. - Voice & messaging — how to write about the project: plain statements, no marketing language. Read before editing the README, the website, or any user-facing text.
- Workstream — the project's living state under the Agent Studio Workstream frame: current development state, development signals, system knowledge, decision log, and workstream log.
Every hardening behaviour in this library was learned the hard way in a production orchestrator. Each one links back to the incident that motivated it and ships with a test that pins why it exists — so a future refactor can't quietly undo a fix whose reason has been forgotten.