
pingqiuandClaude Opus 4.6
77a6e60fa3
feat: add P3 hardening validation — 4 matrix + 2 extra cases (Phase 08)
Compact replay matrix on accepted P1/P2 live path:
Matrix 1 (ChangedAddress): address change → cancel old plan → new
assignment → new recovery → identity preserved → pins released
Matrix 2 (StaleEpoch): epoch bump → invalidate → cancel plan →
new epoch assignment → new session → pins released
Matrix 3 (NeedsRebuild): unrecoverable gap → rebuild assignment →
RebuildExecutor(IO=v2bridge) → InSync → pins released
Matrix 4 (PostCheckpointBoundary): at committed=ZeroGap, in window=
CatchUp via CatchUpExecutor(IO=v2bridge) → pins released
Extra 1 (FailoverCycle): epoch 1 → failover → epoch 2 → recovery
resumes → InSync. Logs: invalidation + cancellation + new session.
Extra 2 (OverlappingRetention): plan1 acquires pins → cancel →
plan2 acquires pins → cancel → ActiveHoldCount==0,
MinWALRetentionFloor has no holds.
Each test verifies all 5 evidence categories:
entry truth, engine result, execution result, cleanup, observability
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 15:46:48 -07:00
..
2026-03-10 18:19:31 -07:00
2026-03-23 02:12:25 -07:00
2026-03-06 01:06:51 -08:00
2026-03-11 17:35:43 -07:00
2026-03-13 10:56:18 -07:00
2026-03-23 02:12:42 -07:00
2026-03-10 15:09:41 -07:00
2026-03-09 17:44:01 -07:00
2026-03-02 09:33:45 -08:00
2026-03-30 20:01:46 -07:00
2026-03-31 10:46:17 -07:00
2026-03-31 15:46:48 -07:00
2026-03-04 11:01:08 -08:00
2026-03-04 11:01:08 -08:00
2026-03-26 16:46:31 -07:00
2026-03-11 17:35:43 -07:00
2026-03-02 09:34:00 -08:00
2026-03-31 10:46:17 -07:00
2026-03-24 00:19:25 -07:00
2026-03-25 15:38:06 -07:00
2026-03-31 15:22:23 -07:00
2026-03-01 10:43:34 -08:00
2026-03-09 17:44:01 -07:00
2026-03-10 16:02:30 -07:00
2026-03-01 10:43:34 -08:00
2026-03-01 21:26:39 -08:00
2026-03-25 15:38:06 -07:00
2026-03-25 02:39:32 -07:00
2026-03-06 01:06:51 -08:00
2026-03-06 01:06:51 -08:00
2026-03-12 19:30:59 -07:00
2026-03-01 16:00:06 -08:00
2026-03-12 15:06:48 -07:00
2026-03-24 00:19:25 -07:00
2026-03-30 20:01:46 -07:00
2026-03-01 10:43:34 -08:00
2026-03-06 00:05:17 -08:00
2026-03-06 00:05:17 -08:00
2026-03-06 00:05:17 -08:00
2026-02-28 09:32:01 -08:00
2026-02-28 09:32:01 -08:00
2026-03-07 21:30:14 -08:00
2026-03-01 16:00:06 -08:00
2026-03-04 11:01:08 -08:00
2026-03-08 23:02:59 -07:00
2026-03-30 20:01:46 -07:00
2026-03-26 19:16:45 -07:00
2026-03-22 14:44:24 -07:00
2026-03-22 14:44:24 -07:00
2026-03-07 21:30:14 -08:00
2026-03-12 15:06:48 -07:00
2026-03-12 15:06:48 -07:00
2026-03-01 16:00:06 -08:00
2026-03-02 09:33:45 -08:00
2026-03-25 15:38:06 -07:00
2026-03-09 17:44:01 -07:00
2026-03-02 09:33:45 -08:00
2026-03-02 09:34:35 -08:00
2026-03-25 15:38:06 -07:00
2026-03-03 17:05:43 -08:00
2026-03-13 10:56:18 -07:00
2026-03-13 00:15:27 -07:00
2026-03-03 17:05:43 -08:00
2026-03-12 15:06:48 -07:00
2026-03-11 17:35:44 -07:00
2026-03-13 17:21:17 -07:00
2026-03-12 19:30:59 -07:00
2026-03-26 17:22:55 -07:00
2026-03-26 17:22:55 -07:00
2026-03-30 20:01:46 -07:00
2026-03-30 20:01:46 -07:00
2026-03-25 15:38:06 -07:00
2026-03-30 20:01:46 -07:00
2026-03-25 01:52:35 -07:00
2026-03-03 01:43:42 -08:00
2026-03-05 00:52:05 -08:00
2026-03-06 00:05:17 -08:00
2026-03-06 00:05:17 -08:00
2026-03-25 02:39:32 -07:00
2026-03-31 10:46:17 -07:00
2026-03-13 10:56:18 -07:00
2026-03-23 20:40:41 -07:00
2026-03-03 00:53:33 -08:00
2026-03-03 00:53:33 -08:00
2026-03-11 21:52:00 -07:00
2026-03-11 21:52:00 -07:00
2026-03-06 01:06:51 -08:00
2026-03-12 15:06:48 -07:00
2026-03-30 20:01:46 -07:00
2026-03-25 15:38:06 -07:00
2026-03-30 20:01:46 -07:00
2026-03-12 19:30:59 -07:00
2026-03-12 19:30:59 -07:00
2026-02-28 09:32:01 -08:00
2026-02-28 09:32:01 -08:00
2026-03-12 19:30:59 -07:00
2026-03-12 19:30:59 -07:00
2026-03-31 10:46:17 -07:00
2026-03-01 10:43:34 -08:00
2026-03-03 00:53:33 -08:00
2026-03-01 16:00:06 -08:00