docs: add implementation plan for all 15 structure gaps

50 tasks across 5 parallel tracks (A-E) with full TDD steps,
Go reference citations, file paths, and test_parity.db update
protocol. Task persistence file for session resumption.
This commit is contained in:
Joseph Doherty
2026-02-24 12:05:22 -05:00
parent f1e42f1b5f
commit 2a240c6355
2 changed files with 1324 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,56 @@
{
"planPath": "docs/plans/2026-02-24-structuregaps-full-parity-plan.md",
"tasks": [
{"id": 0, "subject": "Task A1: Message Block Binary Record Encoding", "status": "pending"},
{"id": 1, "subject": "Task A2: Message Block Abstraction", "status": "pending", "blockedBy": [0]},
{"id": 2, "subject": "Task A3: FileStore Block Manager Rewrite", "status": "pending", "blockedBy": [1]},
{"id": 3, "subject": "Task A4: Tombstone Tracking and Purge", "status": "pending", "blockedBy": [2]},
{"id": 4, "subject": "Task A5: Write Cache and TTL Scheduling", "status": "pending", "blockedBy": [2]},
{"id": 5, "subject": "Task A6: Port FileStore Go Tests + DB Update", "status": "pending", "blockedBy": [3, 4]},
{"id": 6, "subject": "Task B1: RAFT Apply Queue and Commit Tracking", "status": "pending", "blockedBy": [5, 26]},
{"id": 7, "subject": "Task B2: Campaign Timeout and Election Management", "status": "pending", "blockedBy": [6]},
{"id": 8, "subject": "Task B3: Health Classification and Peer Tracking", "status": "pending", "blockedBy": [6]},
{"id": 9, "subject": "Task B4: Membership Changes (Add/Remove Peer)", "status": "pending", "blockedBy": [7, 8]},
{"id": 10, "subject": "Task B5: Snapshot Checkpoints and Log Compaction", "status": "pending", "blockedBy": [9]},
{"id": 11, "subject": "Task B6: Pre-Vote Protocol", "status": "pending", "blockedBy": [7]},
{"id": 12, "subject": "Task B7: Stream/Consumer Assignment Types", "status": "pending", "blockedBy": [10]},
{"id": 13, "subject": "Task B8: JetStream Meta-Group Proposal Workflow", "status": "pending", "blockedBy": [12]},
{"id": 14, "subject": "Task B9: Placement Engine", "status": "pending", "blockedBy": [12]},
{"id": 15, "subject": "Task B10: Per-Stream RAFT Groups", "status": "pending", "blockedBy": [13]},
{"id": 16, "subject": "Task B11: Port RAFT + Cluster Go Tests + DB Update", "status": "pending", "blockedBy": [15, 14, 11]},
{"id": 17, "subject": "Task C1: Client Adaptive Buffers + Slow Consumer", "status": "pending"},
{"id": 18, "subject": "Task C2: AckProcessor NAK/TERM/PROGRESS", "status": "pending"},
{"id": 19, "subject": "Task C3: PushConsumer Delivery Dispatch", "status": "pending"},
{"id": 20, "subject": "Task C4: Redelivery Tracker with Backoff", "status": "pending", "blockedBy": [18]},
{"id": 21, "subject": "Task C5: Priority Groups and Idle Heartbeats", "status": "pending", "blockedBy": [19]},
{"id": 22, "subject": "Task C6: PullConsumer Timeout + Filter", "status": "pending"},
{"id": 23, "subject": "Task C7: JetStream API Leader Forwarding", "status": "pending"},
{"id": 24, "subject": "Task C8: Stream Purge with Options", "status": "pending", "blockedBy": [5]},
{"id": 25, "subject": "Task C9: Mirror Synchronization Loop", "status": "pending", "blockedBy": [5]},
{"id": 26, "subject": "Task C10: Source Coordination with Filtering", "status": "pending", "blockedBy": [5]},
{"id": 27, "subject": "Task C11: Port Protocol Go Tests + DB Update", "status": "pending", "blockedBy": [17, 20, 21, 22, 23, 24, 25, 26]},
{"id": 28, "subject": "Task D1: Gateway Interest-Only Mode", "status": "pending"},
{"id": 29, "subject": "Task D2: Route Pool Accounting per Account", "status": "pending"},
{"id": 30, "subject": "Task D3: Route S2 Compression", "status": "pending"},
{"id": 31, "subject": "Task D4: Gateway Reply Mapper Expansion", "status": "pending"},
{"id": 32, "subject": "Task D5: Leaf Solicited Connections + JetStream Domains", "status": "pending"},
{"id": 33, "subject": "Task D6: Leaf Subject Filtering", "status": "pending"},
{"id": 34, "subject": "Task D7: Port Networking Go Tests + DB Update", "status": "pending", "blockedBy": [28, 29, 30, 31, 32, 33]},
{"id": 35, "subject": "Task E1: MQTT Binary Protocol Parser", "status": "pending"},
{"id": 36, "subject": "Task E2: MQTT Session Persistence (JetStream)", "status": "pending", "blockedBy": [35]},
{"id": 37, "subject": "Task E3: MQTT QoS and Retained Messages", "status": "pending", "blockedBy": [36]},
{"id": 38, "subject": "Task E4: Account Import/Export + Cycle Detection", "status": "pending"},
{"id": 39, "subject": "Task E5: Account JetStream Limits", "status": "pending"},
{"id": 40, "subject": "Task E6: System Account + $SYS Handling", "status": "pending", "blockedBy": [38]},
{"id": 41, "subject": "Task E7: Config Signal Handling (SIGHUP)", "status": "pending"},
{"id": 42, "subject": "Task E8: Auth Change Propagation on Reload", "status": "pending", "blockedBy": [41]},
{"id": 43, "subject": "Task E9: TLS Certificate Reload", "status": "pending", "blockedBy": [41]},
{"id": 44, "subject": "Task E10: WebSocket Compression Negotiation", "status": "pending"},
{"id": 45, "subject": "Task E11: WebSocket JWT Authentication", "status": "pending"},
{"id": 46, "subject": "Task E12: Monitoring Connz Filtering + Sort", "status": "pending"},
{"id": 47, "subject": "Task E13: Full System Event Payloads", "status": "pending"},
{"id": 48, "subject": "Task E14: Message Trace Propagation", "status": "pending"},
{"id": 49, "subject": "Task E15: Port Services Go Tests + DB Update", "status": "pending", "blockedBy": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48]}
],
"lastUpdated": "2026-02-24T12:00:00Z"
}