docs(split): measure the billing/catalog cluster as the next cycle cut

The "B billing" row said "not confirmed" and that the crate must not depend
on the runtime tier. Re-measured on 1b0e51005b with module_graph.load_graph
and partition_report --json:

- cost_status, pricing, route_billing, provider_catalog_live, provider_lake,
  models_dev_live, codex_model_cache and reasoning_preference total 24,352
  production lines inside the 59-module cycle.
- Their only production edges back into the cycle are 6 refs into `client`
  (CodewhaleClient::for_catalog_refresh, client::ollama_catalog::load_model,
  client::AvailableModel) and 1 into provider_readiness. cost_status alone
  had 15 inbound modules and 3 outbound, which is what led here.
- 590 inbound production refs follow the move; tests reach out 176 times,
  149 to test_support.
- All eight use codewhale_runtime::config, so the crate sits above
  codewhale-runtime; the old constraint predates Config moving there.

It is not rename-only: catalog refresh must stay beside `client`, so
provider_lake and codex_model_cache split into a store and a refresh driver.
Open PRs that touch pricing/cost_status callers (session_manager.rs among
them) should merge first. Docs-only; lexicon check passes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Signed-off-by: CodeWhale Bot <[email protected]>
This commit is contained in:
CodeWhale BotandClaude Opus 5.5 committed 2026-10-31 12:55:37 -07:00
1 parent 1b0e51005b
commit 8202875251
1 file changed
+1 -1
+1 -1
View File
@@ -395,7 +395,7 @@ part of the slice.
| **X9 sandbox pilot** | `crates/sandbox/` (new), `tui/src/sandbox/` | S then M | **Superseded by S17:** sandbox and `shell_dispatcher` move together; the integration `#[path]` include is removed and the `cfg(test)` env-lock branch is preserved under the `test-support` feature. The config/oauth edges resolve through the existing `codewhale-runtime` dependency; no edge cut is needed | none | second feature leaf after `tools-web` |
| **W0-S1 runtime residents** | `crates/runtime/` ← `features`, `logging`, `startup_trace`, `resource_telemetry`, `runtime_policy`, `lane_control` | S, landed 2026-10-10 (8aea0265c) | **Landed.** `python3 scripts/split/move-modules.py` dry run is read-only and safe | none | six fewer tui modules; no `test_support` needed |
| **W0-S2.. test-support and the rest of wave 0** | the existing `codewhale-runtime` `test-support` feature, then remaining leaves | M each | **Environment helpers moved in 0.10.2:** one process environment lock in the Runtime test-support owner; no new test-support crate | W0-S1 | the TUI shim retains its resolver fences; App fixtures live in the UI owner; remaining residents follow RS-10 |
| **B billing** | `crates/billing/` | L | **Not confirmed.** Five production callers remain, it must not depend on the runtime tier, and the engine files it touches are in flight | a host port for the usage store | deferred |
| **B billing/catalog** | new crate above `codewhale-runtime` ← `cost_status`, `pricing`, `route_billing`, `provider_catalog_live`, `provider_lake`, `models_dev_live`, `codex_model_cache`, `reasoning_preference` | L, 24,352 production lines | **Re-measured 2026-10-31 on `1b0e51005b`.** The eight modules' only production edges into the 59-module cycle are 6 refs into `client` (`CodewhaleClient::for_catalog_refresh` in `provider_lake` and `codex_model_cache`, `client::ollama_catalog::load_model`, `client::AvailableModel`) and 1 into `provider_readiness`. 590 inbound production refs from the TUI follow the move. Tests reach out 176 times, 149 of them to `test_support`. Every module uses `codewhale_runtime::config`, so the crate depends on the runtime crate; the earlier "must not depend on the runtime tier" constraint predates `Config` moving there. Not rename-only: catalog refresh stays beside `client` (split `provider_lake`/`codex_model_cache` into store and refresh driver) | the refresh-driver split; open PRs that touch `session_manager.rs` or other `pricing`/`cost_status` callers merged first | measured, not started |
| **S0 closure report** | `scripts/split/closure_report.py` | S (report), M (sandbox generator) | Held as a tool; deletes no edges | decide where sandbox third-party sources come from | the numbers the sandbox contract needs |
Running them in parallel: