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) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B6mcaT2PjRFKcogzp9UkfC
This commit is contained in:
Joseph Doherty
2026-06-22 06:12:04 -04:00
parent a714aa1bff
commit df28bcfa53
+22 -1
View File
@@ -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