sots-engine/src/shim/shim.cfg.crreplace0
alex 618ccb1c25 shim: research.replace_cascade, and a completion counter that prints in replace mode too
The B3 hook's unlock cascade was compare-mode only, so a replace run left the
completed node unstamped and no tech unlocked -- and its only per-call counter was
gated on the cascade, so a replace run had no instrument of its own saying a
completion had happened at all. Lane CR needs both halves to ask whether
ProcessResearch can be displaced.

research.replace_cascade=on (default off, so the shipped behaviour is unchanged and
still measurable) lets a replace-mode call write the four TechNode words
SetResearched stamps and the tree's completion-order counter. The ServerPlayer half
of the callback stays unmodelled and stays declared: no event is posted, no
ObservedTech element is appended, no tech effect is applied. The pair of settings is
the measurement -- same binary, one config line, and the leaf difference between the
two autosaves is the cascade's own contribution.

The per-call log line now prints in every mode and counts completions from the pass's
own step results, so 'a completion fired' is a statement by the instrument rather
than an inference from the artefact under test.
2026-09-09 09:15:47 -04:00

35 lines
1.4 KiB
Text

# Lane CR, crreplace0. ProcessResearch in replace; every other registered hook named off.
# research.replace_cascade=off.
# exhaustive
hooks=trace
hook.Game::EncounterDetect::AssignContacts=off
hook.Game::EncounterDetect::ProcessTeamRecord=off
hook.Game::SVSOSlaversRefuel::UpdateDifficultyTier=off
hook.Game::SVSOSwarmQueen::OnTurnBegin=off
hook.Game::SVSOSwarmQueen::RegisterHives=off
hook.Game::SVSOSwarmQueen::TickHives=off
hook.Game::SectionDictionary::SectionDictionary=off
hook.Game::ServerPlayer::ComputeBudget=off
hook.Game::ServerPlayer::OnTechResearched=off
hook.Game::ServerPlayer::ProcessTurn=off
hook.Game::ServerSystem::ComputeTotalOutput=off
hook.Game::ServerSystem::GroupOutput=off
hook.Game::ServerSystem::ProcessTurn=off
hook.Game::StrategyApp::RunAI=off
hook.Game::StrategyHost::Autosave=off
hook.Game::StrategyServer::ApplyEncounterResult=off
hook.Game::StrategyServer::BeginProcessTurn=off
hook.Game::StrategyServer::MoveFleet=off
hook.Game::StrategyServer::NodeLineDecay=off
hook.Game::StrategyServer::OnAllCombatDone_Tail=off
hook.Game::StrategyServer::ProcessFleetMovement=off
hook.Game::StrategyServer::ProcessNodeSpaceTravel=off
hook.Game::StrategyServer::ProcessTurn=off
hook.Game::WeaponDictionary::Init=off
hook.Mars::GlobalConsts::LoadFile=off
hook.Mars::RNG::Seed=off
hook.Game::TechTree::ProcessResearch=replace
research.replace_cascade=off
trace.path=C:\SOTS\shim.trace.jsonl
trace.inline_max=256
trace.flush=always