jgrusewski
f1916404b4
fix(gate): tolerate weekday-only gaps (equity tracks) via max_gap_days
...
The reconciliation gate's _has_gaps assumed calendar-continuous booking (crypto is
24/7). A weekday-only US-equity NAV (multistrat) has Fri->Mon 3-day steps + holiday
long weekends (<=4d) — NORMAL, but the gate would flag them as an execution gap at
day 20 -> perpetual false-WAIT (never reconciles). Now _has_gaps takes max_gap_days
from gate_spec (default 1 = crypto, unchanged); multistrat sets 4. A step of
0/negative (duplicate/out-of-order) is still always a hole.
Surfaced verifying the just-added multistrat gate track (14/20 building, real ref
CAGR 9.9% / Sharpe 1.48). Full suite green (1833).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-08 09:49:33 +02:00
..
2026-06-23 15:13:27 +02:00
2026-06-14 23:35:59 +02:00
2026-06-22 11:16:06 +02:00
2026-06-21 20:18:38 +02:00
2026-06-15 00:20:48 +02:00
2026-06-14 17:03:11 +02:00
2026-06-22 12:21:09 +02:00
2026-06-14 16:45:01 +02:00
2026-06-23 13:38:51 +02:00
2026-06-24 20:21:06 +02:00
2026-06-23 22:45:14 +02:00
2026-06-28 16:17:41 +02:00
2026-06-26 23:19:51 +02:00
2026-06-28 14:07:39 +02:00
2026-06-14 17:11:58 +02:00
2026-07-02 12:51:39 +02:00
2026-06-23 13:38:51 +02:00
2026-06-25 20:34:52 +02:00
2026-06-15 11:27:24 +02:00
2026-06-15 11:24:19 +02:00
2026-06-15 11:13:21 +02:00
2026-06-21 19:33:15 +02:00
2026-06-26 00:32:46 +02:00
2026-06-28 14:24:49 +02:00
2026-06-14 20:06:52 +02:00
2026-06-19 00:18:14 +02:00
2026-06-14 16:45:36 +02:00
2026-06-19 19:38:19 +02:00
2026-06-28 09:47:35 +02:00
2026-06-15 11:10:13 +02:00
2026-06-13 17:56:19 +02:00
2026-06-15 00:38:17 +02:00
2026-06-15 00:23:05 +02:00
2026-06-23 00:10:39 +02:00
2026-06-20 17:45:00 +02:00
2026-06-22 08:08:47 +02:00
2026-06-14 19:54:57 +02:00
2026-06-23 00:37:58 +02:00
2026-06-18 10:01:36 +02:00
2026-06-21 20:17:56 +02:00
2026-06-17 12:24:29 +02:00
2026-06-28 14:05:18 +02:00
2026-06-14 12:23:09 +02:00
2026-06-14 11:33:44 +02:00
2026-06-09 12:21:47 +02:00
2026-06-14 20:06:52 +02:00
2026-06-21 20:54:50 +02:00
2026-06-13 19:09:08 +02:00
2026-06-23 09:04:18 +02:00
2026-06-17 00:22:38 +02:00
2026-06-21 23:32:36 +02:00
2026-06-21 19:33:15 +02:00
2026-06-22 09:17:01 +02:00
2026-06-14 19:54:08 +02:00
2026-06-13 02:01:04 +02:00
2026-06-14 23:05:03 +02:00
2026-06-26 08:07:42 +02:00
2026-06-27 16:12:37 +02:00
2026-06-13 02:06:30 +02:00
2026-06-22 19:56:51 +02:00
2026-06-21 19:45:32 +02:00
2026-06-21 19:33:15 +02:00
2026-06-21 21:06:01 +02:00
2026-06-23 09:04:18 +02:00
2026-06-24 17:27:10 +02:00
2026-06-14 11:45:42 +02:00
2026-06-09 13:52:32 +02:00
2026-06-21 20:14:30 +02:00
2026-07-08 09:49:33 +02:00
2026-06-14 17:29:37 +02:00
2026-06-22 09:22:07 +02:00
2026-06-09 19:20:23 +02:00
2026-06-14 23:21:08 +02:00
2026-07-07 20:22:30 +02:00
2026-07-07 20:22:30 +02:00
2026-06-26 00:46:10 +02:00
2026-06-23 09:04:18 +02:00
2026-06-14 17:11:58 +02:00
2026-06-14 16:46:05 +02:00
2026-06-23 10:53:15 +02:00
2026-06-21 23:29:30 +02:00
2026-06-28 14:04:03 +02:00
2026-06-14 17:39:29 +02:00
2026-06-22 20:22:31 +02:00
2026-06-26 00:46:10 +02:00
2026-06-21 10:37:05 +02:00
2026-06-18 20:56:50 +02:00
2026-06-14 23:18:09 +02:00
2026-06-14 16:46:45 +02:00
2026-06-14 17:29:37 +02:00
2026-06-19 19:49:46 +02:00
2026-06-21 20:30:05 +02:00
2026-06-22 08:18:22 +02:00
2026-06-26 16:33:47 +02:00
2026-06-22 20:22:31 +02:00
2026-06-20 20:11:07 +02:00
2026-06-13 02:24:41 +02:00
2026-06-22 16:59:24 +02:00
2026-06-25 01:39:07 +02:00
2026-06-15 00:34:55 +02:00
2026-06-15 00:28:40 +02:00
2026-06-25 23:16:18 +02:00
2026-06-21 23:37:58 +02:00
2026-06-23 13:38:51 +02:00
2026-06-23 13:38:51 +02:00
2026-06-23 13:38:51 +02:00
2026-06-21 20:16:15 +02:00