From 9301e395e8af116662ff3b9f26e63e5515363f9b Mon Sep 17 00:00:00 2001 From: acamilo Date: Wed, 23 Sep 2026 16:07:45 +0000 Subject: [PATCH] docs: the trap hunt and the bench run the service's frame since FND-01, and hunts across the change do not compare --- infra/docs/macros-bench.md | 3 ++- infra/docs/macros-traps.md | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/infra/docs/macros-bench.md b/infra/docs/macros-bench.md index 535be9a..0e0f4dc 100644 --- a/infra/docs/macros-bench.md +++ b/infra/docs/macros-bench.md @@ -20,7 +20,8 @@ FLY_ROM=".../Pokemon Red (U) [S][BF].gb" FLY_MACRO_BRAIN=data/fafb-v783 \ cargo run --release -p flysim --example palette_bench ``` -Both arms are the sim loop's own frame order over the real connectome (`data/fafb-v783`), the real +Both arms are the sim loop's own frame order (`flysim::frame::LegacyFrame` since 2026-09-23; +before that `NeuralAgent::tick`'s, one frame behind the stream) over the real connectome (`data/fafb-v783`), the real Game Boy readout preset with nothing overridden, the real Pokémon adapter paying the real reward catalog, and the real ratchet on the adapter's own recovery policy. The only difference between them is `flysim::macros::MacroLayer`, built from the configuration the way `Sim::boot` builds it, diff --git a/infra/docs/macros-traps.md b/infra/docs/macros-traps.md index 3f464b9..e91a850 100644 --- a/infra/docs/macros-traps.md +++ b/infra/docs/macros-traps.md @@ -151,6 +151,15 @@ window every 15 brain seconds, so a loop is caught wherever it starts) in which A window with no macro in it is not flagged: silence waits, and that is the doctrine working. +**2026-09-23, FND-01.** The hunt now runs `flysim::frame::LegacyFrame`, the frame the service +runs, restored the way the service restores (no held channel, no location, the blocked window at +brain time 0). Before that it ticked the brain through `NeuralAgent::tick`, one frame behind the +stream: each frame and its rewards reached the brain after the next ticks, the ratchet was +observed without the objective signal, and a rollback did not re-observe the scene. Hunts from +before and after the change are not comparable number for number; compare two arms built from +the same side of it. `FLY_TRACE=` writes the run in the service's own per-frame trace +format (`flysim::trace`), so a hunt can be diffed against the service from the same checkpoint. + ```sh FLY_ROM=".../Pokemon Red (U) [S][BF].gb" FLY_MACRO_BRAIN=data/fafb-v783 \ FLY_TRAP_CHECKPOINT=.local/checkpoints/release-viridian-loop.checkpoint \