From df28bcfa5383df17f1d226ab697cfea2e3ded280 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Mon, 22 Jun 2026 06:12:04 -0400 Subject: [PATCH] docs(roadmap): mark HCAL roadmap exhausted; remaining items are all gated M0/M1/M2/M3 done + live-verified; M4 R4.1/R4.3(idle)/R4.4 merged to main; the grpc-tooling-completion plan is fully executed. Add a top-of-file status banner enumerating the only remaining items and why each is gated (infra-gated event-row retrieval + active-SF magnitude; capture-gated SendEvent; server-walled SQL + revision edits; out-of-scope ReadBlocks / DeleteTagExtendedProperties). Nothing left is a pure code task. README transport matrix stays authoritative per-op. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01B6mcaT2PjRFKcogzp9UkfC --- docs/plans/hcal-roadmap.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/docs/plans/hcal-roadmap.md b/docs/plans/hcal-roadmap.md index f2e3e88..336285a 100644 --- a/docs/plans/hcal-roadmap.md +++ b/docs/plans/hcal-roadmap.md @@ -9,7 +9,28 @@ HCAL replacement, built on the **2023 R2 gRPC transport**. Derived from > protocol serializer/parser + golden-byte unit test + an env-gated live integration > test against the local Historian. -## Progress (updated 2026-06-21) +## Status: roadmap exhausted (2026-06-22) + +The reachable surface is **complete**. M0/M1/M2/M3 are done and live-verified; M4 R4.1 (store-forward +outbox), R4.3 (measured idle-state SF status), and R4.4 (redundancy) are shipped and **merged to +`main`**; and the follow-on `grpc-tooling-completion.md` plan is fully executed (writes, ReadEvents, +GetConnectionStatus, the extended-property read-parser fix — all done or bounded-out). The transport +matrix in the top-level `README.md` is the authoritative per-operation status. + +**Nothing left is a pure code task** — every remaining item is gated: + +- **Infra-gated** (needs a different live server): gRPC event *row* retrieval (`StartEventQuery` + succeeds but `GetNextEventQueryResultBuffer` long-polls — needs an **event-bearing** 2023 R2 server); + R4.3 active-SF *magnitude* (needs an **SF-active** server / the D2 storage-engine console handle). +- **Capture-gated** ("capture before guessing wire bytes"): `SendEvent` over gRPC (no distinct RPC; + framing uncaptured). +- **Architecturally walled** (no client-side fix): `ExecuteSqlCommand` over gRPC (server-side + `CSrvDbConnection` fault; a `RegisterTags` prime does not clear it); R4.2 revision *edits* + (storage-engine-pipe-only on both transports). +- **Out of scope until a demand signal**: `ReadBlocks` (`StartBlockRetrievalQuery`, never captured); + `DeleteTagExtendedProperties` (server-blocked on WCF). + +## Progress (updated 2026-06-22) - ✅ **R0.6 version gate** — `HistorianServerVersionGate` + `HistorianClientOptions.VerifyServerInterfaceVersion`; fail-closed on connect, wired into both WCF and gRPC paths. Supported versions are