j142 retire the ADE+SBC gun (rack id 17): the owner watched it, it does not learn, throw it away

Remove guns/bitbrain_net.nim (+README), test_bitbrain_net.nim,
measure_bitbrain_scaling.nim, rack id 17 and all of its plumbing in
selector.nim / ModularBot.nim / env_report.nim, the TR_BITBRAIN_NET switch
and the NEW-NETWORK TR_BITBRAIN_* knobs, and the BitBrainNet arm of
run_prediction_quality.nim.

With id 17 gone there is nothing to disambiguate, so the legacy namespace
becomes the ONLY one: TR_RACK_BITBRAIN always selects id 16 LEADGAIN and
every TR_BITBRAIN_<X> in the frozen 14-suffix alias set always means
TR_LEADGAIN_<X>. The alias layer and its [depr] line stay.

KEPT: the common_libs/bitbrain/ SBC library (learned_surfer imports
bitbrain/sbc), lead_gain at id 16 with env TR_LEADGAIN_* and log tag [lg],
and the c9b6753 crash fix (NumRackGuns widths + test_rack_stat_width).

Tombstone: docs/bitbrain_campaign.md ## RETIRED and one cross-reference line
in docs/gun_campaign.md. Shipped defaults unchanged: clean env -> rack
active 1v1 = PATTERN, movement default strafe.
This commit is contained in:
2026-09-26 19:20:23 +02:00
parent c9b67530db
commit 5e32ec16df
18 changed files with 279 additions and 1732 deletions
+74
View File
@@ -626,3 +626,77 @@ should be chosen for **plausible large effect**, not for a sub-MDE gain slope.
`python3 tools/ab/ab_range_bands.py /tmp/ab_leadgain --reference control`.
Liveness from `<arm>/run<N>.bot.stdout.log` (`[env]`), applied gain from the
same file (`[bb]`). Fixtures: `/tmp/ab_leadgain` (ephemeral, as is the corpus).
---
## RETIRED: the ADE+SBC gun *(rack id 17, `guns/bitbrain_net.nim` — REMOVED)*
**The owner's decision (verbatim):** *"not learning, i watched it, throw it away
and we forget about it"*. This section is the tombstone. **Nothing below is
rewritten history** — Phases 0-2 above stand as written. The ADE+SBC gun
(`common_libs/guns/bitbrain_net.nim`, rack id 17, env `TR_BITBRAIN_NET` +
`TR_BITBRAIN_*`, log tag `[bbn]`) and its 44-check test and its scaling harness
are **DELETED from the tree**. The generic SBC/ADE **library** at
`common_libs/bitbrain/` **STAYS** — it is not the gun, and
`common_libs/movements/learned_surfer.nim` still imports `bitbrain/sbc` (still
56 checks in `test_bitbrain.nim`).
### (a) The offline sweep: more RAM, no better aim — and never better than Pattern
The scaling sweep replayed 3 recorded live runs through the real gun across a
**100x RAM range (0.10 -> 12.60 MB)**. Mean |angular error| against the true
interception point moved only:
| RAM (MB) | mean \|err\| (deg) |
|---|---|
| 0.10 | 17.254 |
| … (intermediate arms) | monotonically ↓ by <0.2 deg total |
| 12.60 | 17.115 |
**Pattern, on the same corpus, scores 16.964 deg.** So the ADE+SBC gun was
**consistently slightly WORSE than Pattern at EVERY capacity** — a 126x RAM
budget bought 0.139 deg, and the endpoint was still 0.151 deg *behind* the gun
it was correcting. The measured scaling confirmed the shape of the cost but not
the shape of the benefit: RAM is **linear in `nClasses`**, **quadratic in
`nAde`**, and **7.3x for counted mode** over bitset.
### (b) The budget made 360 classes unreachable anyway
At **64 classes** the gun already cost **19.56 ms/tick = 149% of the project's
13.16 ms/tick budget** — over budget before the interesting settings were
reached. The configuration the design actually wanted (360 classes) was
therefore **never affordable**, whatever its quality.
### (c) The owner's live observation: it does not learn within a round
The live run settled it: **400 virtual shots, 0 hits.** Not a weak learner, not a
tuned one — no movement of the counts inside a round. The owner watched it and
called it.
### (d) Same information ceiling as the gate test
This is the **same ~1-bit information ceiling** measured in
`docs/bitbrain_gate_test.md`: ~55 000 samples cannot separate 16-64 correction
classes that must differ by 1-2 deg, the SBC is idempotent so the per-class
counts blur toward uniform, and the readout regresses to the mean. Phase 0's
gains sweep (above) found the same thing from the amplitude side.
### (e) Status: the gun is removed, the library is not
* **REMOVED:** `common_libs/guns/bitbrain_net.nim`,
`common_libs/guns/bitbrain_net.README.md`,
`common_libs/tests/test_bitbrain_net.nim`,
`common_libs/tests/measure_bitbrain_scaling.nim`, rack id 17 and its whole
admit/dispatch/stat-width plumbing, the `bbn` gun field in `ModularBot.nim`,
the `TR_BITBRAIN_NET` switch and the NEW-NETWORK `TR_BITBRAIN_*` knob names,
and the `BitBrainNet` arm of `run_prediction_quality.nim`.
* **KEPT:** `common_libs/bitbrain/` (the SBC library, used by
`learned_surfer`), and the `c9b6753` crash fix (`NumRackGuns`-derived
per-gun array widths + `test_rack_stat_width.nim`).
* **SIMPLIFICATION:** with nothing left to disambiguate, the legacy namespace is
the ONLY namespace. `TR_RACK_BITBRAIN` always selects **id 16 LEADGAIN**, and
every `TR_BITBRAIN_<X>` in the frozen 14-suffix alias set always means
`TR_LEADGAIN_<X>`. A stale `TR_BITBRAIN_NET=1` in an old `.env` is now an
unrecognised variable: the boot report warns and ignores it. See
`common_libs/guns/lead_gain.README.md` and
`common_libs/tests/test_lead_gain_legacy.nim`.
+15
View File
@@ -1153,3 +1153,18 @@ round-boundary bug and its fix, all 4 forced arms' applied shares (exactly
per-opponent delta, CI, MDE, sign and sign-flip test, and the policy-isolation
comparison. **INFERRED:** that no share schedule whatsoever could ever help
(this batch bounds only the shares it tested, at this MDE and panel).
---
## Cross-reference: the ADE+SBC gun (rack id 17) is RETIRED
The `bitbrain` arm named in earlier batches of this ledger is NOT the gun
shipped at id 16. The **ADE+SBC gun** that briefly held the `BITBRAIN` rack name
and the `TR_BITBRAIN_*` env prefix at **rack id 17** was **retired and removed
from the tree** (owner: *"not learning, i watched it, throw it away and we
forget about it"*). Its tombstone, evidence and removal list are in
`docs/bitbrain_campaign.md` §RETIRED. The `bitbrain` verdict in this ledger —
nothing beat Pattern — is unchanged; this line only records that the id-17
experiment that followed it is closed, so the two ledgers do not contradict
each other. The surviving "BitBrain-named" capability is the id-16 lead-gain
corrector, now called **LEADGAIN**.