Skip to content

DeepSeek-V4.1-Flash arena preparation and Qwen-era deletions - #144

Merged
camfairchild merged 27 commits into
mainfrom
dsv4flash
Oct 10, 2026
Merged

camfairchild merged 27 commits into
mainfrom
dsv4flash

Conversation

@ShivanshuPurohit

@ShivanshuPurohit ShivanshuPurohit commented Oct 7, 2026 •

Copy link
Copy Markdown
Collaborator

Workstream branch for the DeepSeek-V4.1-Flash B300 arena. Off-GPU preparation first; the GPU proof on the exact commissioned image follows on the same branch.

Commit 1: retire the recurrent prefix-cache audit and the Qwen-only wording

The prefix-cache state audit carried a recurrent (GDN) checkpoint branch and an int8 codec expression that no commissioned arena can reach: the Qwen arena seals disable_radix_cache=true, which the cache seam refuses for hybrid engines before any guard is built, and its deployed d9bd034 source predates the cache seam; GLM and the planned V4.1 arena have no recurrent pool. A hybrid pool that carries recurrent state is now refused at bind time instead of being served unchecked.

  • Consumer: the tree_cache binding in cacheon/integrations/sglang_cache.py, which builds PrefixStateAudit on every hybrid engine.
  • Casualty: the recurrent checkpoint audit and its mamba fixtures, the int8 codec expression, the Qwen recurrent-results section, and the Qwen-specific "disables radix caching" wording across the miner guide.
  • Net lines: production +35/-99, tests +8/-159, docs +44/-78, scripts +3/-3.

Commit 2: draft the DeepSeek-V4.1-Flash arena

Read from the SGLang 0.5.21 source (tag e00930c5) and the published model and recipe facts; nothing here has run on a GPU yet.

  • Node audit: DeepSeekV4TokenToKVPool stores whole 256-token pages, so the slot-addressed capture raised on its first call. cacheon/integrations/sglang_dsv4_state.py captures, restores and grades the window pages, a kv-source layer's compressed and FP4 index pages and its per-request pending-pair ring, decoded by the layout the pool declares; unrecognized layouts raise. Consumer: sglang_nodes._cache_rows. Supersedes nothing: GLM's DSA path is unchanged.
  • Prefix cache: 0.5.21 hands a finished request through insert_req then on_release instead of cache_finished_req; the guard seals and checks both shapes, hashes the shorter DeepSeek-V4 index pages per full page, checks page-stored window pools by page, snapshots request-held compressor state across a handoff, and reads window eviction through the runtime's component API.
  • Arena inputs examples/arena_inputs/dsv41flash/: Dockerfile on the v0.5.21 list digest, engine options (every key verified as a 0.5.21 ServerArgs field), 24 development requests in the GLM layout, README naming which node addresses execute (model.layers.* binds but never runs on this model).
  • Dashboard: sources declare their URL slug in the operator config; the hardcoded arena slug table is deleted. The live sources.json needs the field at deploy.
  • Net lines: production +238/-49, tests +256/-21, docs +23/-11, dashboard +14/-10, examples +144/-0.
  • Not changed, recorded for later: GLM's DSA choice rule (count==3) is dead on 0.5.21, where the decoder layer returns a 2-tuple; it moves with GLM's own pin bump. The replay bridge needs no change: GLM's template also requires mapping tool arguments, so the sealed slice already carries them.

Commit 3: the owner rulings — TP2 with Engram host tables, batch-cell display retired, Qwen support retired

  • Sealed engine environment: EngineSessionConfig.engine_env is a closed, reviewed name list (the two SGLang DeepSeek-V4.1 Engram host-table switches, which SGLang reads from the environment rather than ServerArgs), bound into the engine-config digest and forwarded by the session worker into build_session_environment, so every rank inherits it beneath the fence's own variables. cacheon check --engine-config honors the same engine_env object: exported before SGLang imports, never an Engine kwarg, recorded in the result. The kwargs allowlist gains the V4.1 options (ep_size, speculative_dspark_block_size, cuda_graph_max_bs_decode, swa_prefix_tails, prefill_decode_interval) and loses the Qwen GDN ones; the validator is generalized so oci_session_protocol.py stays at its ceiling. Consumer: the V4.1 kit's engine-config.json (TP2/EP2, memory fraction 0.85, per-rank host tables, about 190 GiB pinned host memory per engine) and the sealed arena definition. Casualty: the Qwen engine options and their fixtures.
  • Batch-cell display retired (owner ruling Q-H): the dashboard, link previews and cacheon explain render replay results only — decode tok/s per user, first-token time, measured versus required gain, verdict. cacheon explain now reads the replay witness through the same reader as the dashboard, which also fixes the "not measured" line it printed for every V16/V17 product. Casualty: _phase_measurements, the B/C/B′ tok/s, prefill and TTFT/TPOT renderers, the winners' measured tok/s and prefill columns, the machine-noise headline (the replay grader's own noise bound decides).
  • Qwen arena support retired (owner ruling Q-Q): a runtime that carries recurrent state raises in the node audit instead of being served unchecked; the GDN ReplaySSM rows, the Qwen input kit and the Qwen-specific doc passages are deleted. Kept: the H100 node-slot results page (tolerance evidence), the incident comments, and the H100/TP1 second test profile.
  • Deploy notes: the arena prompt-authority engine_config is a closed field set, so any arena JSON (GLM's included, if it is ever re-commissioned on this code) carries "engine_env": {}; the dashboard sources.json carries slug (commit 2).
  • Net lines: cacheon +112/-276, dashboard +34/-159, tests +179/-403, docs +35/-42, examples +24/-335, scripts +11/-10; every ratchet lowered to the measured counts (cacheon 90896, dashboard 4197, docs 12540, examples 368, tests 67240, dashboard/app.py 935) and the assertion floors of the three rewritten test files lowered with their production casualty.
  • surface-change: modules (cacheon.chain.baseline_band exports replay_measurements; cacheon.integrations.sglang_dsv4_state registered with dsv4_state_rows).

Commits 4–9: H100 bring-up fixes (TP8/EP8 on 8×H100, 2026-10-08)

Integration on a box that is not the commissioned topology; nothing here is a B300 or qualification claim. Live controls through the public cacheon.cli check found four audit bugs in code that had never run on hardware, fixed at +19/-6 production lines:

  • 12f1652: Engram commits its per-request token history outside the KV pools; the node audit now restores and grades it, so stock, the honest twin and the candidate start from the same n-gram.
  • 3d5f76a: the compressor pending-pair allocation carries a spare ring, sentinel and alignment rows; both audits slice the request rows before reshaping.
  • 76c1f0d: whole-node snapshots read the pool's active layer range instead of the model-wide mapping, which includes unowned draft entries.
  • 3f41699: the prefix-cache read window starts at the page containing the live window, so a 128-token window inside 256-token pages is checked. The wrong-cache control passed before this fix.
  • 6e3f630: the development requests submit the duplicate short batch after the first completes, so prefix reuse actually occurs (data only; concurrent duplicates produced zero hits).
  • 0ab1ac1: GLM chain change — a completed remote NO_DECISION earns nothing and no longer blocks later PASSes from rewards or settlement. Deployed live on 2026-10-08; it rides to main with this PR.

Evidence, retained off-tree: honest MLP, attention+Engram, whole-model and prefix-cache checks PASS with eager audit and all-rank graph capture; the corrupted cache is rejected on all eight ranks; the wrong MLP fails with 80 violations; the honest cache re-passes after the boundary fix with 2,048 reused tokens in both phases. Engram host tables ran per rank (about 24 GiB per rank at TP8, fully huge-page backed).

Net lines for these commits: cacheon +39/-13, tests +132/-17, docs +12/-3, examples +18/-11, scripts +4/-4 (ratchet rows); the GLM commit is +76/-15 of that. surface-change: none.

CPU suite at fb4dcc8: 2839 passed, 11 skipped; 3 dashboard health tests fail on macOS for the missing /proc only. At 3f41699: 2836 passed, 11 skipped with the dashboard health tests deselected for the macOS /proc dependency; ruff, islands, line and assertion ratchets, the surface snapshot, the docs checker and mkdocs build --strict pass.

After these commits the production reference path ran on the same H100 engine: eight native agent turns from the sealed slice (1,060,616 prompt tokens, up to 178k each) generated to their caps under DSpark and graphs, the cache was flushed, and _reference_role_evidence scored all 10,172 tokens with finite logprobs; the generated tokens match the teacher's argmax at 98.3% of positions, the rest near-ties, so the token bridge and the teacher parser are aligned on V4.1. Unscored, retained off-tree, no production lines.

Remaining: the B300 day on the commissioned image — stock boot at TP2/EP2 with the host tables, paired lanes, stock-versus-stock replay noise, production controls, seal and calibration.

Commits 10–13: B300 commissioning of DeepSeek-V4.1-Flash (2026-10-09/10)

51a359d dispatcher memoization; 9dda14c Dockerfile layer order; 9cbce87 audit of registered controls; c54ccdd results page.

Dispatcher cost. The faithful identity control ran 4.4 to 8.0 percent slower than stock on the
3f41699b image. Timing the node seam inside the commissioned image put it at 85 µs per dispatched
call: a failed import of the removed legacy capture module on every call (28 µs), a receipt root
resolve on every completed call (35 µs) and descriptor plus variant match (12 µs). The fix (commit
51a359d) imports each capture authority once per process, memoizes the absolute receipt root, and
memoizes registry selection per graph mode, dtype, width and device: 9 to 12 µs per call.

Noise seal. The whole-model identity received PASS at +1.27 percent under the GLM-inherited
seal (1 percent per window, 0.4 percent per boot; pass line +0.74 percent). Both pairs now seal
window and boot noise at 0.02, the frozen policy's ceiling: pass line +2.2 percent at the final
look, +4.3 percent at the third.

Production-path proof on the commissioned image. First complete run of every stage: 75.3 min
(speed 55.0, eager audit 11.4 with 872 audited calls and 0 violations, pristine T 8.0). Futility
FAIL after one orientation: 28 min. Controls under the new seal, both pairs loaded concurrently:
identity FAIL on both pairs (window ratios 1.000/1.001/0.977/0.947 and 1.017/1.025/0.989/0.995,
pooled about +1.9 and −0.8 percent against the +2.2 line); candidate engine killed mid-window gives
infrastructure NO_DECISION three minutes later with the result retained; pod service restarted
mid-run: the restarted service's own recovery published the interrupted attempt as no_decision /
pod_service_restart without a hold, and the resubmitted wrong-MLP reached FAIL after four
windows at 1.007/1.015/1.012/1.020. Orientation-two skew toward the candidate while the neighbour
pair boots or tears down is recorded in the results page as the next noise item.

Audit of registered controls (9cbce87). Skip-MLP and wrong-MLP stop at the futility rule
because the sealed replay fixes token counts at temperature zero under DSPARK speculative decoding,
so a wrong answer can only be slower, and a sealed submission that fails speed is terminal: the
audit's rejection of wrong output had never executed on this arena. The sealed policy now carries
audit_control_delta_digests; a listed delta's speed non-PASS continues into the eager audit
(CALIBRATION_OBSERVATION), pristine T never runs after a failed speed, the verdict stays FAIL,
and every other delta remains terminal at speed. Builder, deployment check and intake accept the
disposition only for a listed delta; the key is serialized only when non-empty, so existing
policy digests are unchanged. Measured on the re-commissioned pairs: skip-MLP on both pairs
stopped speed at the first-orientation look (window ratios 1.024/1.051 and 1.058/0.954) and the eager
audit graded 34,880 calls with 34,800 violations (worst fraction 0.0000) -> FAIL / slot_audit_failed;
47 min from submission to verdict, 10.6 min of it the audit; pristine T did not run.

Operations. RAM checkpoint boot unit also reapplies persistence mode and the 1905 MHz clock lock
(systemctl start proof: Result=success, clocks 1905); retirement archives the whole pair tree
except replay slices and the VM pulls the archives; dashboard cut over to this source; CPU VM
intake, relay and supervisor units active on both pairs (activated 2026-10-10 01:29Z; the first two queued mainnet submissions transferred within a minute, one per pair).

Dockerfile. Dependency relocation moved above the source copy so a source-only rebuild reuses
the 20 GB layer. Before the reorder every build took 23 min; the first build after it 19 min
(export step 970 s); a source-only rebuild 37 s with the relocation layer cached.

Docs. docs/results/deepseek-v41-flash-b300.md (new), docs/validator-guide/arena-service.md
(reboot and retention procedure), qualification.md, fidelity.md, architecture/pipeline.md
and security/evidence.md (audit-control path), nav entry.

Net LOC for commits 10–13: cacheon +146/−69, tests +116/−40, docs +175/−6, examples
+6/−3, scripts +7/−7 (ratchet rows). Ceilings raised: cacheon +41 (dispatcher
memoization), examples +3 (Dockerfile comment), docs +15 (results page), root +1 (nav);
file ceilings qualification_runner.py 2595, test_qualification_runner.py 2014.

Commits 14–22: fee accounting and the deletion tranches (2026-10-11)

e0d4a03 fails candidate quality overlap under the sealed upper-bound policy. f4f9c48 and
9571c1a count evaluation fees per arena and total them across arenas on the dashboard; the
totals ride on /api/arenas and the existing arena fixture, and the separate revenue route from
the first cut is folded away (+304/−210).

Seven deletion tranches follow. Each was verified with the full CPU suite in a throwaway worktree
(editable finder stripped), ruff, islands, the line and assertion ratchets, the surface snapshot,
the docs checker and mkdocs build --strict. None changes a path the live intake process, the
standing supervisor, the pod service or the dashboard executes.

  • a9cb2be: the retired bundles/dp_output_projection (its target is no longer registered, so
    TargetCatalog.require rejects it) and the untracked orphan worker-service test pinned in
    .gitignore. +1/−589.
  • 70598f0: backfill_reservation_baseline_segments (no caller since 3685d41;
    commission_boundary superseded it) and the plain-store lease tests. +14/−344.
  • 836f20f: test-only production symbols: release_manifest_compatibility_failure,
    settlement_blockers, the device-state capture verdicts, CohortPlan and _execution_order;
    the kernel-variant registry tests fold into test_capabilities. +45/−865.
    surface-change: modules cacheon.stack_plan drops CohortPlan; digest_domains
    cacheon/stack_plan.py keeps only cacheon.stack.marginal-arm-plan.
  • de33c15: duplicated test fixtures fold into tests/support/evaluation.py and
    tests/support/b300.py; test_b300_arena_provider.py folds into
    test_b300_mainnet_worker.py; vacuous and duplicate tests in the runner, OCI backend, pod
    service and recovery tests are deleted. +596/−1443, no production lines.
  • 93f7042: the stamp-1/2 intake migration and its schema-3 hold machinery
    (chain-archive-schema3-hold, the expiry and release guards). Every live intake database is
    schema 3 or later; the stamp-1/2 window closed 2026-07-13. +20/−384. surface-change: cli drops
    chain-archive-schema3-hold; modules cacheon.cli drops cmd_chain_archive_schema3_hold.
  • f0b99e0: docs/architecture/overview.md and docs/engine/integration.md fold into the
    product-model and concepts pages. +37/−270.
  • 31d333b: the validator loop's local qualification lane. chain-validate has only ever run
    --intake-only in production and now refuses any other mode; run_pass and run_validator
    lose the arena and mode parameters; ArenaServiceRegistry, AdmissionDecision,
    ArenaQueueSnapshot, admit_qualification, arena_queue_snapshot, qualification_cohort
    and --arena-id go with it. The intake path is unchanged apart from dedent;
    PassResult.decisions and settlements stay so the audit-log schema the dashboard reads is
    unchanged. +113/−639. surface-change: cli chain-validate drops --arena-id; modules
    cacheon.arena_service drops AdmissionDecision, ArenaQueueSnapshot,
    ArenaServiceRegistry and cacheon.chain.validator_loop drops QualificationWork;
    digest_domains cacheon/arena_service.py drops cacheon.arena.service-registry.

Deletion totals (a9cb2be..31d333b as one diff): production +56/−1,031, tests +627/−2,455,
docs +86/−398, bundles +0/−587, scripts and ratchet rows +35/−41. Every ratchet row and file
ceiling is lowered to the measured count. CPU suite at 31d333b: 2816 passed, 11 skipped, with the
three macOS /proc dashboard health tests deselected.

🤖 Generated with Claude Code

The prefix-cache state audit still carried a recurrent (GDN) checkpoint
branch and an int8 codec expression that no commissioned arena can reach:
the Qwen arena seals disable_radix_cache=true, which the cache seam refuses
for hybrid engines before any guard is built, and its deployed d9bd034
source predates the cache seam; GLM and the planned DeepSeek-V4.1-Flash
arena have no recurrent pool. A hybrid pool that carries recurrent state is
now refused at bind time instead of being served unchecked.

Consumer: the `tree_cache` binding in cacheon/integrations/sglang_cache.py,
which builds PrefixStateAudit on every hybrid engine.
Casualty: the recurrent checkpoint audit (`_recurrent`, mamba fixtures), the
int8 codec expression, the Qwen recurrent-results section, and the
Qwen-specific "disables radix caching" wording across the miner guide.

Net lines: production +35/-99, tests +8/-159, docs +44/-78, scripts +3/-3.
surface-change: none (surface_snapshot --check matches all 10 sections).
Docs: slot contract, prefix-cache results, fidelity, miner guide and the
manifest example updated in the same change; loc_baseline lowered to lock
the deletion in.

CPU suite: 2838 passed, 11 skipped; 3 dashboard health tests fail on macOS
for the missing /proc only (not touched here).
…fs, inputs

Off-GPU preparation for the third arena, read from the SGLang 0.5.21 source;
the GPU proof on the commissioned image follows.

Node audit: DeepSeekV4TokenToKVPool stores whole 256-token pages, so the
existing slot-addressed capture raised on its first call. The new interpreter
captures, restores and grades the window pages, a kv-source layer's compressed
and FP4 index pages, and its per-request pending-pair ring, decoded by the
layout the pool declares; unrecognized layouts raise rather than pass unchecked.
Consumer: sglang_nodes._cache_rows. Supersedes nothing: GLM's DSA and the
slot-addressed paths are unchanged.

Prefix cache: 0.5.21 hands a finished request through insert_req then
on_release instead of cache_finished_req; the guard now seals and checks both
shapes, hashes the shorter DeepSeek-V4 index pages per full page, checks a
window pool that stores whole pages by page, snapshots request-held compressor
state across a handoff, and reads window eviction through the runtime's
component API. Consumer: the tree_cache binding on every hybrid engine.

Arena inputs for dsv41flash (Dockerfile on the v0.5.21 list digest, TP4/EP4
engine options verified as ServerArgs fields, 24 development requests in the
GLM layout, README naming which node addresses execute). Dashboard sources
declare their URL slug in the operator config; the hardcoded arena slug table
is deleted.

Net lines: production +238/-49, tests +256/-21, docs +23/-11, dashboard
+14/-10, examples +144/-0; loc_baseline raised accordingly, the node adapter
test file kept under 900 lines by moving the V4.1 tests to their own file.
surface-change: none (10 sections match). Docs updated in the same change:
slot contract, prefix-cache results, SGLang tracking, dashboard README.

CPU suite: 2854 passed, 11 skipped; the same 3 dashboard health tests fail on
macOS for the missing /proc only.
…h-cell display and Qwen support retired

Consumer: the sealed EngineSessionConfig.engine_env reaches every rank through
oci_session_worker._engine_session -> engine_worker.build_session_environment,
and cacheon check --engine-config exports the same object; the dashboard, link
previews and cacheon explain read the replay result through
baseline_band.replay_measurements.

Casualty: the batch-cell lane readers (_phase_measurements, the B/C/B' tok/s,
prefill and TTFT/TPOT renderers, the machine-noise headline), the GDN ReplaySSM
node-audit rows, the Qwen engine options, the Qwen input kit and its docs.

Net lines: scripts +11/-10; tests +179/-403; docs +35/-42; cacheon +112/-276; dashboard +34/-159; examples +24/-335;
surface-change: modules (baseline_band exports replay_measurements;
sglang_dsv4_state registered).
The prefix-cache audit rounded read starts up and skipped the entire 128-token DSV4.1 window with 256-token pages. Include the first partially covered page while preserving record boundaries. The existing test now covers windows shorter than a page and nonmultiples of the page size.

Consumer: existing prefix-cache match audit. Casualty: the ceiling-rounded read boundary. Production +4/-1, tests +6/-3, docs +2/-1; directory ceilings rise by 3/3/1 for this regression fix. 108 focused tests, docs checks and strict build, LOC/assertion ratchets and surface snapshot pass. GPU negative and honest-control confirmation remains pending.
The identity control ran 3.5-8% slower than stock on DeepSeek-V4.1 (B300,
2026-10-09). Each dispatched call cost 85 us in the commissioned image, 40
calls per eager step: a failed per-call import of the removed legacy capture
module (28 us), resolving the receipt root (35 us), and rebuilding the call
descriptor and matching every variant (12 us). Import each capture authority
at most once per process, resolve an absolute receipt root once, and memoize
the registry selection per (graph mode, dtype, width, device). Measured in
the image: 85 -> 9-12 us per dispatched call.

Consumer: the node dispatcher in every timed lane. Supersedes the per-call
import and resolve it replaces. Net +70/-29 lines; the cacheon ceiling rises
by 41 because the dispatcher path offered no further deletion beyond the
stale lookup-API docstring removed here.
The 20 GB dependency relocation never changes between source revisions,
but it ran in the same layer as the Cacheon install, below COPY src, so
every source-only rebuild of the DeepSeek-V4.1-Flash worker image paid
it again: 468 s for the copy-up and 917 s for the layer export on the
B300 host on 2026-10-09. The relocation now sits above the copy and the
install plus the bootstrap hook follow it, so a source-only rebuild
reuses the cached layer. Final paths and the runtime check are unchanged.

examples ceiling +3 for the comment that records the measurement.
The eager audit only ever ran after a speed PASS, so on an arena whose
sealed replay fixes token counts at temperature zero under speculative
decoding no wrong-output control could reach it, and the production audit
had never been seen rejecting a wrong answer (fidelity.md already requires
that canary). The sealed policy gains one optional field,
audit_control_delta_digests: the builder gives a listed delta the existing
calibration-observation disposition, intake and the deployment check accept
that disposition only for a listed delta, and the continuation runner now
stops after the audit whenever speed did not pass. An audit FAIL exits at
the audit stage as before; an audit PASS is retained on the speed exit,
whose decision stays the speed grade, so a control can neither qualify nor
settle. Pristine T never runs after a speed non-PASS.

The field is absent from the policy payload when empty, so every policy
sealed before it keeps its digest; it is bound through the sealed authority
configuration, not the per-request declaration digest. Supersedes the
continue-into-T-after-a-failed-speed semantics (removed with its test), the
report loop's second regrade of the same witness, and two unreachable
None checks in the deployment plan check.

Production +76/-40, tests +116/-40, docs +34/-6 plus the reboot and
retention paragraphs of the arena-service page. Ceilings: cacheon +36,
tests +76, docs +154 for these pages and the results page that follows;
file ceilings lowered for qualification_runner.py and its test file.
surface-change: none (snapshot unchanged).
Add docs/results/deepseek-v41-flash-b300.md: the production-path wall clock
of the first complete qualification on this model (75.3 min, speed 55.0,
eager audit 11.4, pristine T 8.0; futility FAIL 28 min), the dispatcher cost
the 3f41699 image charged the candidate lane and the 51a359d fix, the 0.02
noise seal and its pass lines, and the controls run on the commissioned
image: identity on both pairs, skip-MLP at the futility rule, candidate
engine killed mid-window, pod service restarted mid-run, and skip-MLP under
the registered-control audit policy of 9cbce87. The page records the
cross-pair orientation-two skew as the next noise item.

Nav entry under Results. Docs ceiling +15 (the new page); no production
code. Consumer: the Results navigation section and the validator guide's
qualification page, which link to it. Supersedes nothing.
Carry main's reviewed ceilings for the weight-reveal monitor change
(docs +7, tests +49) onto the branch's baseline; cacheon stays within the
branch ceiling. No production code in the merge itself.
The merge of main brought the weight-reveal monitor change (+33 cacheon
lines); the per-directory ceiling now matches the merged tree. No
production code.
…ashboard

Every intake listener records every arrival it observed at its own configured
fee, so each arena's dashboard summed the shared payment table: on 2026-10-11
the GLM page showed 165.0 τ, Qwen 28.7 τ and DeepSeek 158.5 τ from the same
rows. The live scoped totals are GLM+MiniMax 154.0 τ (18 x 1.0 + 272 x 0.5),
Qwen 16.3 τ (3 x 0.5 + 74 x 0.2) and DeepSeek 9.0 τ (18 x 0.5): 179.3 τ.

- /api/payments joins the arena's scoped reservations, so a page lists only
  the fees its own reservations consumed.
- New global /api/revenue reports each arena's fee payments grouped by
  amount and the total received across every arena, counting each on-chain
  payment once and naming unavailable sources. The Overview shows this block
  and takes the arena's own figure from it.
- Casualty: the Overview's unscoped payment sum (totals.payments_count and
  totals.payments_tao) is deleted; dashboard/app.py shrinks to 932 lines and
  its ceiling is lowered to match.

Consumer: the Overview tab and /api/revenue of the running dashboard.
Lines: dashboard +76/-11 (app.py +1/-4, sources.py +50/-1, index.html
+13/-3, README +12/-3); tests +135/-0 (new tests/test_dashboard_revenue.py).
Directory ceilings raised by exactly those counts. Surface snapshot unchanged.
…a fixture

The deletion audit on this branch judged the fee fix (f4f9c48) the PR's
largest cuttable addition: a third route and a 135-line test file for a
number the arena list already loads on every page refresh.

- /api/arenas now carries each arena's fees (count, total, grouped by the
  fee charged; null while its database is unavailable) plus fees_count and
  fees_total_tao across every arena, counting an on-chain payment once under
  the first configured arena that owns it. The Overview reads the arena list
  it already holds instead of fetching a third endpoint.
- Casualty: the /api/revenue route and tests/test_dashboard_revenue.py. The
  behavior is covered by one test on the existing two-arena planes fixture
  in tests/test_dashboard_sources.py.

Consumer: the Overview tab and /api/arenas of the running dashboard.
Lines: dashboard +43/-57 (sources.py +27/-43, index.html +11/-13, README
+5/-11); tests +36/-136. Directory ceilings lowered to lock the deletion in.
…r-service test

bundles/dp_output_projection targeted collective.dp_output_projection_norm,
an op-slot the catalog no longer registers (f0fd527 retired op slots; the
projection role is served by bundles/glm53_champion_nodes). Nothing in the
tree reads it: no code, test, doc, packaging entry or surface hash.

tests/test_remote_worker_service.py was an untracked 849-line file pinned
by a per-file .gitignore entry; it imported a dispatcher symbol deleted in
af5f47d and failed collection. The file and its ignore line are gone.

Consumer: none; pure deletion. Casualty: the two artifacts above.
Lines: bundles -587 (manifest 16, README 49, projection.py 98,
dp_projection_native.cu 410, metadata 13, rebuild.json 1), .gitignore -1,
baseline lowered by 587. No production Python path changes.
…ests

backfill_reservation_baseline_segments bound pre-upgrade queue rows to the
stack active when they arrived. Commit 3685d41 replaced its only caller
with the commissioned-incumbent rebind in commission_boundary and named
"crown-derived queue binding" as the casualty, but left the function and
its FinalizedIntakeStore delegator behind. Nothing in cacheon/, dashboard/
or scripts/ calls either; the two tests that did now bind through the
production path.

tests/test_chain_evaluation_leases.py loses eight tests of paths the live
validator cannot take: lease claim, expiry and accept on the plain
FinalizedIntakeStore (every production store is the recoverable one:
standing_cpu_supervisor, mainnet_screen_dispatcher, evaluation_lease_operator),
reproduction_pending rows set by raw SQL (store open converts them), a
schema-migration test that equals creating a fresh database, a duplicate
of the worker-pool exclusive-claim test, a settlement fence built by raw
SQL (covered by test_fixed_incumbent_rewards and test_chain_intake with the
production fixture), and an event-reader tamper test that needs DROP
TRIGGER on the validator's own SQLite. The deferral, fence, exact-cohort and
infrastructure-never-FAIL tests stay.

No live code path changes: the deleted function had no caller.
Consumer: commission_boundary via the recoverable dispatcher. Casualty: the
crown-derived backfill retired in 3685d41 and the plain-store lease tests.
Lines: cacheon -113 (baseline_segments -104, intake -9); tests -214
(leases -213, chain_intake -4, +3 explicit bindings). Baselines lowered.
surface-change: modules drops cacheon.chain.baseline_segments.backfill_reservation_baseline_segments (no consumer since 3685d41).
…routing surface

Production symbols with no caller outside their own tests, and the tests
that existed only to exercise them:

- intake.py: release_manifest_compatibility_failure (an operator recovery
  seam nothing invokes) and settlement_blockers (no production reader).
- device_state.py: _capture_verdict, before_capture, after_capture and the
  _drain envelope switch; their consumer left in eae4e8a.
- stack_plan.py: CohortPlan and its entropy execution order. Production
  prepares one MarginalArmPlan at a time (b300_registered_qualification),
  so marginal_runtime loses the cohort branch. plan_marginal_arm digests
  are unchanged, compared against HEAD on the same inputs.
- test_kernel_variants.py: registry routing tests that duplicate
  test_capabilities.py; registration-time duplicate-variant and inclusive
  range-overlap refusal moves there as one test.
- test_chain_validator_loop.py: the in-loop qualification lane test
  (production runs chain-validate --intake-only) and the once-mode fault
  test duplicated in test_chain_archive.py.

Consumer: none added; every kept symbol's callers are unchanged.
Casualty: the symbols and tests above. +45 / -865 lines.

surface-change: modules.json drops CohortPlan from cacheon.stack_plan.
surface-change: digest_domains.json drops cacheon.stack.cohort-plan and
cacheon.stack.cohort-execution-key.
… they carried

- tests/support/evaluation.py owns the intake-row, arena-service and CPU
  coordinator fixtures that test_evaluation_coordinator and
  test_remote_evaluation_dispatcher each carried, and that
  test_parallel_arenas and test_evaluation_worker_pool imported from a test
  module.
- tests/support/b300.py gains the executor, factory-builder, deployment
  authority and arena manifest fixtures. test_b300_arena_provider.py is
  deleted; its six non-duplicated contracts (plan order, runtime/policy
  mismatch, lane overlap and drift, declared-only refusal, closed provider,
  factory exception) move into test_b300_mainnet_worker.py.
- test_remote_worker_pod_service.py: the two fake-process adapter tests fold
  into the real-subprocess test (frame schema, process reuse, durable start
  count); the publish test's republish idempotency moves into the recovery
  suite; the parser test becomes a real poll-bound check (the old one
  returned 2 because the registration file was missing, not because the
  bound fired). The 2026-08-10 cooldown counter test stays.
- test_qualification_runner.py: the hidden-judge memoize and relabel tests
  (the commission check makes that branch unreachable), the duplicate
  audit-fail test, the fixture-restating calibration test, the empty-receipt
  witness test, the publish round-trip and two vacuous asserts. The
  exclusive-transaction refusal moves into test_oci_backend's real-manager
  lock test.

Consumer: the suites above, unchanged in behavior. Casualty: the duplicated
fixtures and tests. +596 / -1443 lines, no production code.
The single-PASS to two-PASS migration (schema 1/2 -> 3) last ran on a live
database on 2026-07-13; every intake database since then opens at stamp 3 or
later, and nothing in the tree writes the schema3_reproduction_required
reason any more. Local read-only copies of the GLM (stamp 5) and Qwen (stamp
3) databases hold zero such rows.

Removed: the migration branch in the store opener (an older stamp now fails
loudly as unsupported instead of being rewritten), the hold-reason constants,
archive_schema3_migration_hold and the schema-3 exclusions in automatic
expiry, expire and release_hold, the chain-archive-schema3-hold CLI
subcommand, the four tests that exercised them and the doc passages that
described them. The expiry predicate loses one always-true term; with no
such rows it selects the same set.

Consumer: none added; the opener, expiry and hold paths keep their callers.
Casualty: the migration path and its operator command. +20 / -384 lines.

surface-change: cli.json drops the chain-archive-schema3-hold subcommand
from the usage line and its help section.
surface-change: modules.json drops cmd_chain_archive_schema3_hold from
cacheon.cli.
…ct model

docs/architecture/overview.md repeated the proposal/crown table, the
evaluation-stack/reference table, the 3%-on-7% example, the trust model and
the end-to-end flow that concepts.md, product-model.md, pipeline.md,
stacks.md, threat-model.md and codebase-map.md already carry; its only unique
section, the design acceptance tests, restated product-model.md's
architectural acceptance test. docs/engine/integration.md repeated the
crown/ship boundary that product-model.md states normatively.

Both pages are deleted and their nine inbound links retargeted (README,
CLAUDE.md, the docs home, concepts, pipeline, stacks and the nav). concepts.md
loses the mental-model diagram and the two tables it shared with
product-model.md; the docs home loses the B/C/A/T recap that the miner guide
and glossary keep; product-model.md's manifest table becomes one sentence,
and its source map no longer names the retired integration and release-stack
identities.

No code or test changes. Consumer: the surviving pages. Casualty: the two
pages and their duplicated passages. +37 / -270 lines.
`chain-validate` has only ever run as `--intake-only` in production; the
standing supervisor claims qualification and settlement from the same store.
The in-process lane (`_apply_qualification`, an injected
`ArenaServiceRegistry`, `AdmissionDecision`/`ArenaQueueSnapshot` admission,
`retained_only` passes, `--arena-id`) had no production caller.

Consumer: the live `chain-validate --intake-only` argv. Its intake path is
unchanged apart from dedent; `cmd_chain_validate` now refuses any other mode
and `run_pass`/`run_validator` take no arena or mode parameters.
Casualty: `_qualification_reservations`, `_validate_work`,
`_apply_qualification`, `QualificationWork`, the inline closed-target park,
the in-pass settlement call, `ArenaServiceRegistry`,
`ArenaService.admit_qualification`, `AdmissionDecision`,
`ArenaQueueSnapshot`, `arena_queue_snapshot`, `qualification_cohort`, and
the operator docs that told deployments to inject a registry. The
closed-target test now exercises the supervisor's
`prepare_qualification_queue` directly; `test_chain_intake` asserts the
same cohort through `preview_evaluation_claim`.

Lines: +113 / -639 (production +44/-435, tests +11/-100, docs +45/-91,
baselines +13/-13). `PassResult.decisions`/`settlements` stay (always
empty) so the audit-log schema the dashboard reads is unchanged.

surface-change: cli.json chain-validate drops --arena-id; --intake-only help now states it is required
surface-change: modules.json cacheon.arena_service drops AdmissionDecision, ArenaQueueSnapshot, ArenaServiceRegistry; cacheon.chain.validator_loop drops QualificationWork
surface-change: digest_domains.json cacheon/arena_service.py drops cacheon.arena.service-registry
Restore the previously authorized 8fd25ac admission fix in the active source branch. The qualification dispatcher consumes it; the first-crown arrival cutoff is deleted. Measurement baseline and the 1.5 percent reward rule remain unchanged.

Validation: 73 focused CPU tests in isolated worktree; docs checks and strict build; LOC, assertion, reachability, and surface checks. Production +5/-15 (net -10), tests +24/-24 (net 0), docs +27/-37 (net -10). Exact deployed-source candidate also passed admission against a same-host snapshot of the rejected submission without changing retained evidence or payment state.
The /api/arenas consumer now resolves allocation aliases through their intake database and shows unallocated arenas at zero. This supersedes the exact-key/all-sources assumption that hid the DeepSeek-only allocation.

Validation: 26 focused tests passed during the live fix; LOC and assertion ratchets passed. Production +14/-1 (net +13); tests +12/-0 (net +12). Internal display correction; no public command or schema change.
@camfairchild
camfairchild merged commit 1b9be0b into main Oct 10, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants