Docs: 07-21 auto-recast root-cause correction (wire-count InputEvent ★), harness lessons, CLAUDE.md net-zero trims

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-21 13:19:16 -07:00
parent 0e570f1c54
commit 9d6977cd64
3 changed files with 49 additions and 7 deletions
@@ -87,6 +87,21 @@ DOES propagate into parented children's `LocalToWorld` (verified live on 6.5.0).
- Forcing an animation pose: disable the drive system, write params via `AnimatorParametersAspect`; measure
ground-contact via feet-Y only on non-deformed geometry.
## Input-path validation (07-21, the auto-recast false negative)
- **A guardian window must OUTLIVE the period it judges.** Frames ≠ ticks: an unfocused editor can run FASTER
than 60 fps, so a 500-frame watch can end BEFORE a 7 s cooldown does. The morning "sim is clean" verdict was
a false negative for exactly this; the 2000-frame re-run caught a recast at every cooldown reopen. Size the
window in TICKS of the judged period × 2, converted generously.
- **`DebugInputInjectionSystem` writes the COMPONENT — it can never reproduce wire-semantics bugs.** To exercise
the real gather → copy-layer → command-buffer path headless, queue synthetic device events:
`StateEvent.From(Keyboard.current, out var ev); InputControlExtensions.WriteValueIntoEvent<float>(kb.digit1Key, 1f, ev); InputSystem.QueueEvent(ev);`
(+ a 0f release event). Works unfocused with runInBackground.
- **Wire truth: `InputEvent` counts ACCUMULATE across commands** (the per-frame gather reset never reaches the
buffer). Test fixtures that push `InputBufferData<PlayerInput>` must model that: press = count STEP at one
tick, and the stepped count PERSISTS in every later entry — a "release = count 0" entry is a wire-impossible
shape that hides the ever-pressed class of bug (and double-fires a delta gate).
## EditMode fixtures for prediction-gated systems (07-21, AbilityFireSystemConeTests)
- **`NetworkTime.Flags` is INTERNAL** — a system gated on `IsFirstTimeFullyPredictingTick` silently no-ops in any