5bbd7689fa
Re-ran all 8 domain reviews at HEAD8c888f13against theb910f5ebbaseline: every round-1 finding source-verified (168 fixed, 0 regressions, 0 false claims); 56 new findings (1 Critical / 4 High / 15 Medium / 36 Low), concentrated in post-baseline code (anti-entropy resync, KPI rollup backfill, live alarm stream) and seams the fixes exposed. Headliners: S&F resync predicate inversion can wipe the delivering node's buffer (02-N1 Critical); resync snapshot exceeds the Akka remoting frame size (02-N2); failover drill kills the one node keep-oldest can't survive (01-N1); unbounded rollup backfill per failover (04-R1); live production API key in untracked test.txt (08-NF1). Adds PLAN-R2-01..08 + .tasks.json manifests and the Round-2 board, P0 list, cross-plan mutexes, and wave order in 00-MASTER-TRACKER.
116 lines
3.0 KiB
JSON
116 lines
3.0 KiB
JSON
{
|
|
"planPath": "archreview/plans/PLAN-R2-02-communication-store-and-forward.md",
|
|
"tasks": [
|
|
{
|
|
"id": 1,
|
|
"subject": "Task 1: Shared oldest-Up active-node evaluator, reachable from Communication and SiteRuntime",
|
|
"status": "pending",
|
|
"blockedBy": []
|
|
},
|
|
{
|
|
"id": 2,
|
|
"subject": "Task 2: Two-node divergence repro — leader≠oldest wipes the delivering node's buffer (failing first)",
|
|
"status": "pending",
|
|
"blockedBy": []
|
|
},
|
|
{
|
|
"id": 3,
|
|
"subject": "Task 3: Swap SiteReplicationActor to the shared oldest-Up predicate + Host wires the delivery-gate delegate",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
1,
|
|
2
|
|
]
|
|
},
|
|
{
|
|
"id": 4,
|
|
"subject": "Task 4: Swap SiteCommunicationActor.DefaultIsActiveCheck + Host wiring + doc sync",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
3
|
|
]
|
|
},
|
|
{
|
|
"id": 5,
|
|
"subject": "Task 5: Chunked resync protocol — additive messages, byte-budgeted chunker, active-side chunked answer",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
3
|
|
]
|
|
},
|
|
{
|
|
"id": 6,
|
|
"subject": "Task 6: Standby-side chunk assembly, atomic apply, ack + the N5 race comment",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
5
|
|
]
|
|
},
|
|
{
|
|
"id": 7,
|
|
"subject": "Task 7: Resync delivery confirmation on the active node + telemetry + doc rewrite",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
6
|
|
]
|
|
},
|
|
{
|
|
"id": 8,
|
|
"subject": "Task 8: Publish _sweepTask only when the sweep CAS is won (unclobber the shutdown drain)",
|
|
"status": "pending",
|
|
"blockedBy": []
|
|
},
|
|
{
|
|
"id": 9,
|
|
"subject": "Task 9: Eager validation for SweepBatchLimit / SweepTargetParallelism",
|
|
"status": "pending",
|
|
"blockedBy": []
|
|
},
|
|
{
|
|
"id": 10,
|
|
"subject": "Task 10: Coalesce live-alarm delta publishes (bound the per-circuit fan-out) [MUTEX with PLAN-R2-07]",
|
|
"status": "pending",
|
|
"blockedBy": []
|
|
},
|
|
{
|
|
"id": 11,
|
|
"subject": "Task 11: Aggregator lifecycle — queued re-seed after reconnect + stream-generation stamp",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
10
|
|
]
|
|
},
|
|
{
|
|
"id": 12,
|
|
"subject": "Task 12: Instance-injected ReconnectDelay/StabilityWindow (kill the process-global test seams)",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
11
|
|
]
|
|
},
|
|
{
|
|
"id": 13,
|
|
"subject": "Task 13: Production caller for RemoveSiteAsync — dispose a deleted site's gRPC channels",
|
|
"status": "pending",
|
|
"blockedBy": []
|
|
},
|
|
{
|
|
"id": 14,
|
|
"subject": "Task 14: Documented acceptance — standby-node aggregators + deleted-site viewer behavior",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
4
|
|
]
|
|
},
|
|
{
|
|
"id": 15,
|
|
"subject": "Task 15: Single-endpoint sites can go live [MUTEX with PLAN-R2-07]",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
12
|
|
]
|
|
}
|
|
],
|
|
"lastUpdated": "2026-07-13T03:28:50Z"
|
|
}
|