v1.5.1 - Gap-Evacuation Guard Allowance & Rail-Typed Holes
2026-09-05
- Fix(sync): re-type SPREAD slots before chain-order adoption and honor the apply result (
modules/order/sync_engine.ts). - Fix(accounting): rebuild tracked funds from chain during state recovery (
modules/order/accounting.ts). - Fix(cow): bit-identical same-price duplicate guard for CREATE slots (
modules/order/utils/validate.ts). - Docs: kept last-fill-guard pivot semantics recorded (
modules/dexbot_cow_runtime.ts). - Fix(guard): violation-reducing gap-evacuation rotations past the last-fill guard (
isEvacuationRotationAllowed, frozen B-stamp, UPDATE-only). - Fix(holes): rail-typed VIRTUAL holes across fill/rotation/load cycles (
toRailHolePlaceholder). - Feat(evac): geometry-only gap-evacuation detection + persisted per-slot streak counter.
- Feat(evac-teeth): cancel-only evacuation for stranded in-gap orders.
- Diag(sync): orphan-adoption remap log carries slot geometry.
- Fix(tests): stub-class hardening for cold-guard interference.
- Fix(accounting): debug-log side guard (repairs
test_scaled_spread_correctionScenario B).
2026-09-06
- Feat(reconcile): refill rail levels vacated by startup re-map (vacate+create atomic, VRR-1..7).
- Feat(evac): persist gap-evacuation streaks across restarts (GEP-1..4).
- Test: incident-replay integration suite for gap-evacuation acceptance (REP-001..004).
- Fix(guard): gap-evacuation stamping hardening + execution re-verification (
isEvacuationStampStillValid, EVAC-016..019). - Fix(sync): legacy fallback adoption parity.
- Fix(cow): bit-exact same-batch price duplicate key.
Full detail: CHANGELOG.md