TFIL: remove the virtual centre pillar from the shipped default; register j102 env reads

The default mover painted a 30/10 radiance blob on the arena centre even
though the arena has NO physical pillar there, creating a 4x4 tile
(144x144 px) exclusion zone over open centre floor. Set
PillarHotness/PillarRadiance to 0/0 in the shipped default (matching the
ring variant) and add TR_TFIL_PILLAR_ON=1 to restore the old 30/10 field
for A/B without a rebuild; registered in env_report.

Because the shipped default legitimately changed, the default-path parity
golden (fixtures/tfil_commit_default.golden) was regenerated from the NEW
default, with an explicit 'deliberate default change' note in the test so
a future failure is treated as a real regression.

Also register the three env reads job j102 added in common_libs/bitbrain
(TR_BITBRAIN_MODE / _DECAY_EVERY / _DECAY_SHIFT), which the env-report
guard was failing on.

Verification: test_env_report all green; test_tfil_commit_env 30/30.
This commit is contained in:
2026-09-25 22:02:00 +02:00
parent fca899376e
commit d0750ab020
4 changed files with 11927 additions and 11882 deletions
+24 -2
View File
@@ -31,8 +31,17 @@ const CorridorHeat = 20.0
const WallHotness = 30.0
const WallRadiance = 10.0
const PillarHotness = 30.0
const PillarRadiance = 10.0
## The "virtual centre pillar": heat OUR code paints on the arena centre even
## though the arena has NO physical pillar there. The shipped default is now
## OFF (0/0) — the bot must not avoid open centre floor for no reason. Set
## `TR_TFIL_PILLAR_ON=1` to restore the old 30/10 field for A/B (see
## `loadTfilPillarEnv`). The ring variant already ships 0/0.
const
PillarHotnessOn = 30.0
PillarRadianceOn = 10.0
var
PillarHotness* = 0.0
PillarRadiance* = 0.0
const CommitTicks = 15 ## ticks to commit to a dodge point
const MinCommitTicks = 5 ## must commit for this many ticks before danger replan allowed
@@ -113,6 +122,19 @@ proc loadTfilCommitEnv*() =
loadTfilCommitEnv()
proc loadTfilPillarEnv*() =
## Read the virtual-centre-pillar knob. OFF by default: the shipped field is
## the arena with no invented centre hazard. `TR_TFIL_PILLAR_ON=1` restores
## the pre-change 30/10 field so the two defaults can be A/B-ed offline.
if getEnvBool("TR_TFIL_PILLAR_ON", false):
PillarHotness = PillarHotnessOn
PillarRadiance = PillarRadianceOn
else:
PillarHotness = 0.0
PillarRadiance = 0.0
loadTfilPillarEnv()
# ── Time-indexed bullet heat (TR_TFIL_HEAT_TIME=1, default OFF = shipped) ─────
#
# WHY: the flat model gives every bullet-overlapping tile the same heat and