- CRITICAL: add combined to migration_builders so its anchor is seeded — the pre-branch forward_summary
row would otherwise trip the lost-anchor guard and crash combined_forward_nav every nightly
- hash accuracy: bybit cost_bps mirrors Settings default (10.0); multistrat instruments derive from
FUND_INSTRUMENTS (no duplicate) so a return-affecting change actually re-inceptions
- sixtyforty documented as a benchmark exempt from strict PIT (spec §4)
- observed mode: xsfunding consumes the engine's UTC _today; re-inception resets carried book-state
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Restores the safety invariant the legacy ForwardTracker enforced (raise on state loss rather
than reset the OOS clock to day 0 + discard the record — 3 prod resets "burned real capital").
run_track now raises when there is no active anchor BUT prior forward history exists (lost
anchor row), while a genuine first run still inceptions. Protects the deploy-tier tracks Task 8b
routed onto the engine.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- replace_nav purges stale pre-t0 rows on re-inception (nav cache == current record; fixes
polluted nav_history / wrong dashboard headline_t0 after a definition change)
- record_mode validated before any anchor mutation (a bad mode no longer persists a broken anchor)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>