Files
TeslaRel410/restoration/source410/BT
CydandClaude Fable 5 38cce95641 BT410 5.3.109: the watchers watch -- the heat mirror and the voltage watchdog run per-frame
Two of the 22 stubs killed bottom-up, because the gyro chain needs them:
GyroscopeSimulation -> PowerWatcher::Simulation -> UpdateWatch ->
HeatWatcher::WatchSimulation.

HeatWatcher::WatchSimulation (@004aeac4): resolve the watched subsystem,
read its temperature, drive the 3-level heat alarm (Normal / Degradation /
Failure).  The binary dereferences the watch link unconditionally -- it
always binds on a master node; the null guard covers replicants, holding
Normal.

PowerWatcher::UpdateWatch (@004b181c's body): the heat mirror first, then
the watchdog MIRRORS the watched subsystem's electrical state -- which is
what drives the Torso's twist-rate power gate and the searchlight/thermal
voltage reads -- with one override: a subsystem reading Ready off a SAGGING
source (measured <= minVoltage x rated) shows level 1, the BROWNOUT.

Both Performances now REGISTER in their ctors on the master instance (the
established sibling gate; the binary's form is the segment-copy/master flag
pair).  They had never been registered before -- which is why the old
Fail() stubs never tripped in months of runs: the watchers existed but
nothing ever asked them to watch.

Plumbing: class-typed Performance shims on both watchers (the base takes
the Subsystem-typed pointer -- same shim every sibling carries),
HeatableSubsystem::CurrentTemperatureOf() accessor, UpdateWatch declared.

Live run clean.  Stub census: 20 across 14 files.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-03 16:25:27 -05:00
..