SirStone
7a6237ec20
j140 rename the lead-gain corrector: BitBrain -> LEADGAIN (+ legacy TR_BITBRAIN_* aliases)
...
The gun at rack id 16 learned a multiplier for Pattern's lead, separately
per range band. It was called BITBRAIN and shipped a TR_BITBRAIN_* prefix,
which is why the name read as a neural network it no longer contains.
guns/bitbrain_gun.nim -> guns/lead_gain.nim (rack id 16 UNCHANGED)
RackGunNames[16] BITBRAIN -> LEADGAIN
TR_BITBRAIN_* knobs -> TR_LEADGAIN_*
[bb] log line -> [lg]
BACKWARD COMPATIBILITY is mandatory: the live .env carries
TR_RACK_BITBRAIN=both, TR_BITBRAIN_GAINS, TR_BITBRAIN_MEM=decay and
TR_BITBRAIN_LOG=1, and those must keep behaving identically. The new ADE+SBC
gun (next commit) claims the BITBRAIN name and the TR_BITBRAIN_* prefix, so
the namespace is disambiguated by ONE deterministic switch, TR_BITBRAIN_NET
(default 0):
TR_BITBRAIN_NET unset/0 -> LEGACY: the 14 frozen legacy suffixes are aliases
for TR_LEADGAIN_*, and TR_RACK_BITBRAIN still
selects rack id 16. One [depr] line on stderr
names the new spelling of each honoured knob.
TR_BITBRAIN_NET = 1 -> the TR_BITBRAIN_* names belong to the new gun.
The legacy suffix set and the new gun's knob set are DISJOINT, so no name is
ever claimed twice; the new name always wins over its alias.
Parity: shipped rack is still onlyPattern, shipped movement is still strafe.
Guards unchanged: test_env_report 25, test_rack_membership 48,
test_tm_pattern_registration 20, test_lead_gain_registration 13 (was
test_bitbrain_registration), test_bitbrain 56, test_gun_harness 39,
test_tfil_commit_env 30. New: test_lead_gain_legacy 24.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-09-26 15:54:00 +02:00
SirStone
0dc5552c73
j139 dotenv: strip trailing inline comments and warn on non-token values
...
A `#` preceded by whitespace and outside quotes now ends the value, so
`TR_DEBUG_DRAW=0 # hides the grid` resolves to `0` instead of the
whole tail. Values that are still not plain tokens (whitespace, `#`, an
unclosed quote) get one `[dotenv] WARNING` line naming file, key, raw value
and the fact that the reader falls back to its DEFAULT, instead of being
applied silently. Guard test 29 -> 47 checks.
2026-09-26 15:18:04 +02:00
SirStone
10473fc211
j138 draw-only: yellow triangle (enemy-heading other point, enemy, us) in the geometry overlay
2026-09-26 15:14:48 +02:00
SirStone
189d990812
j136 [modules] inventory: also list the always-on body API
2026-09-26 14:48:43 +02:00
SirStone
36c4334487
bitbrain gun README: the gain warning was wrong and contradicted its own verdict section (it recommended the direction measured decisively harmful)
2026-09-26 14:48:23 +02:00
SirStone
7516ca47c0
docs: quick-recap README for bitbrain gun (inputs/outputs, knobs, verdict)
2026-09-26 14:47:42 +02:00
SirStone
8f44140783
j136 add TR_MODULE_* on/off switches + single [modules] boot inventory
2026-09-26 14:46:29 +02:00
SirStone
fd34e4ae4a
j135 draw-only geometry overlay (TR_GEO_DEBUG) + global debug-draw switch (TR_DEBUG_DRAW)
2026-09-26 14:29:46 +02:00
SirStone
3903ec71b4
j134 ledger: note phantom_meteor is dead code (not selectable), out of scope
2026-09-26 13:01:36 +02:00
SirStone
3237b65f40
j134 ledger: propagated fire fix to all 5 movers via one shared fire_tracker (TR_FIRE_FIX), per-mover catch table 98.888->100, live tick alignment measured (correction belongs on event_tick+2)
2026-09-26 12:59:35 +02:00
SirStone
882733819b
j134 fix: tracker must take the mover's switch per-call (instance flag was silently off on the object-literal construction path) + apply the correction on the reading that carries the server's turn-N+1 energy change (two-slot buffer); live-verified alignment
2026-09-26 12:56:26 +02:00
SirStone
6ad5d99922
j134 fire fix: share ONE fire_tracker across tfil/ring/strafe/learned/surf (TR_FIRE_FIX, default on); env-gated TR_FIRE_DIAG alignment trace
2026-09-26 12:40:19 +02:00
SirStone
bd57db6d63
j133 strafe: correct the comment's measured fire count (67065, catch 98.888%->100.000%)
2026-09-26 12:25:06 +02:00
SirStone
3bee4353b2
j133 ledger: appended 'Missed fires + the label question' (catch 98.888->100%, 746/67065 shots were blind: 456 by the server +3*power bonus, 290 by our own same-tick damage; exact label still -0.230, state-conditional model -0.347 -> the observable state is the constraint) + report fixtures
2026-09-26 12:22:31 +02:00
SirStone
799438bbe9
j133 strafe fire detection: correct the enemy energy delta for the server's +3*power hit bonus and our own damage, never drop a too-large drop (TR_STRAFE_FIRE_FIX, default on); catch 98.89%->100% of enemy fires on the 70-battle corpus
2026-09-26 12:18:21 +02:00
SirStone
0566264b06
j132 strafe display check: also assert the chosen tile's ramp border and value plate reach the SVG
2026-09-26 11:54:14 +02:00
SirStone
cc332138b3
j131 learned movement: real bullet-endpoint resolution (TR_LEARNED_REAL_EVENTS, default off) + exact-geometry Gate A/B (inversion NOT fixed; state still the constraint)
2026-09-26 11:54:11 +02:00
SirStone
d5047598b5
j132 strafe display check: also assert the chosen tile's heat number reaches the SVG with the heat grid ON and OFF
2026-09-26 11:53:10 +02:00
SirStone
4db46f02dd
j132 strafe pick quality: chosen tile's heat in the [strafe] log line (heat=h/10.0 alt=best-other ok=0|1) and ON the tile (green/yellow/red ramp + value), legible with TR_STRAFE_HEAT_GRID=0; deterministic display check vs pathMaxHeat
2026-09-26 11:51:33 +02:00
SirStone
8dd9b3b3b5
j130 learned movement outcome label: live panel results (no arm beats strafe; label swap is a dead heat; gap is information) + Gate A report
2026-09-26 11:35:47 +02:00
SirStone
61def1c3e9
j130 learned movement: outcome label (P(hit|state,g)) mode + Gate A; pre-registered outcome arms
2026-09-26 11:27:03 +02:00
SirStone
4c934a67c1
j129: add entry-point check for the virtual-bullet overlay draw proc
2026-09-26 11:03:14 +02:00
SirStone
752d3a3829
j129: virtual-bullet debug overlay (TR_VBULLET_DEBUG, default off) - travelled path, predicted aim ring, hit/miss vector; shared turret colour table
2026-09-26 11:02:39 +02:00
SirStone
a5c893ace6
learned movement: record the pre-registered prediction as partly wrong (right on wins, wrong on the hit-rate mechanism)
2026-09-26 10:56:02 +02:00
SirStone
4f332dcb95
learned movement (SBC): live panel results and the direct answer (module is a wash vs strafe on wins; state conditioning is a CI-separated hit-rate gain vs the same mover without it; the label is the wrong quantity)
2026-09-26 10:55:14 +02:00
SirStone
ee98827a62
learned movement: danger-map alignment diagnostic (corr(P(arrival bin), P(hit|bin)) = -0.342) in the gate + ledger
2026-09-26 10:45:26 +02:00
SirStone
b4e54fc3cd
j127: allocation batch results - forced shares do not beat pattern; allocation not a lever (closed axis)
2026-09-26 10:45:10 +02:00
SirStone
a436e9f16a
j128 learned movement: state-conditional counted-SBC wave danger (TR_MOVEMENT=learned, default-off), offline gate + pre-registered panel arms
2026-09-26 10:42:10 +02:00
SirStone
2a3a62a0ab
j127: fix TR_RACK_SHARE round-boundary dwell lock (bot.tick resets, tracker currentSince persists) - share path only
2026-09-26 10:29:45 +02:00
SirStone
6fd5fe6328
j127: forced-share allocator (TR_RACK_SHARE, default-off) + allocation batch pre-registration
2026-09-26 10:13:22 +02:00
SirStone
2e336452e6
HeadOn gun colour: red -> pure white (#FFFFFF)
2026-09-26 09:50:08 +02:00
SirStone
e25a00175a
Pattern gun colour: orange -> green (#00CC44 / #66FF99) so it is not confusable with BitBrain's pink
2026-09-26 09:40:22 +02:00
SirStone
2d8b7d7875
j126: read bot settings from a .env file (default ./.env, --env-file flag, TR_ENV_FILE); file wins over shell leftovers, boot report labels (source: .env)
2026-09-26 09:08:39 +02:00
SirStone
8e109bae0b
closing j125: verify movement ship end-to-end (clean build SuccessX, full 16-test guard suite all counts match, real default+revert battles) and restructure gun/movement ledgers outcome-first
2026-09-26 05:06:49 +02:00
SirStone
cf77d0d647
j124: spinner + fair-melee results doc; analyzer convergence tests
2026-09-26 05:05:09 +02:00
SirStone
5fe28574ab
gun j123 Batch 2 outcome + phase-2 final answer: len6 does not replicate (wash on 33 opponents); the shipped Pattern is already tuned on its match-length/history parameters; no default changed
2026-09-26 04:54:40 +02:00
SirStone
1b59b65810
gun j123 Batch 1 outcome + Batch 2 prereg: len6 is the only arm to beat pattern on wins (15 opp), but all 5 arms are wins-positive incl. the bearing-invariant rad_offset; pre-register the 33-opponent confirmation with a structural control
2026-09-26 04:22:49 +02:00
SirStone
6c21dc4c58
j124 fair melee: add strong-field melee harness + driver (legacy champion field)
2026-09-26 04:08:44 +02:00
SirStone
06da7abb0e
j124 spinner claim: add ConstantSpinner adversary + spinner A/B arms, panel, analyzer
2026-09-26 04:05:36 +02:00
SirStone
2a98aba91b
gun j123 Task A+B prereg: expose Pattern's TR_PATTERN_LEN/TR_PATTERN_DEPTH (default parity) and pre-register the 6-arm match-parameter sweep
2026-09-26 04:01:51 +02:00
SirStone
467e07a6a4
gun ledger: fix the arm count in the final answer (six configurations, not seven)
2026-09-26 03:55:32 +02:00
SirStone
2a5ea5c17b
gun j121 Batch 2 outcome: the wider panel kills the damage hint (bitbrain wash, tmhorizon WORSE); onlyPattern confirmed; phase closed
2026-09-26 03:54:52 +02:00
SirStone
c343c00aaf
gun j121 Batch 2: correct the SpinBot path in the wider panel before any battle (it is not under /tmp/tr_bots)
2026-09-26 03:35:11 +02:00
SirStone
3fd6db97e7
movement ship: gate v2 fresh-data primary passed (sign-flip p=0.045, CI [+0.02,+0.58]); default TR_MOVEMENT flipped to strafe
2026-09-26 03:19:33 +02:00
SirStone
087e26955f
gun j121 Batch 1 outcome: onlyPattern CONFIRMED across the 15-opponent panel; pre-register Batch 2 wider-panel calibration
2026-09-26 02:58:41 +02:00
SirStone
514674886d
movement gate v2: pre-register the sign-flip primary test on fresh 300-battle data (before any battle)
2026-09-26 02:44:22 +02:00
SirStone
feefc1912e
movement final: confirmation result and ship decision (gate failed on the sign-test leg; default NOT flipped)
2026-09-26 02:41:08 +02:00
SirStone
1d8143a15e
gun j121 Batch 1: pre-register the 6-arm Pattern-panel tournament and the decision rules
2026-09-26 02:22:38 +02:00
SirStone
ff03e81591
movement final: pre-register the ship criterion before the confirmation battles
2026-09-26 02:21:09 +02:00
SirStone
47ce244740
movement j119 Batch 3+4 results: the reversal/dwell and heat-field axes are a clean negative; nothing beats strafe
2026-09-26 02:18:22 +02:00