docs(archreview): cross-reference historiangw#11 for the Int1 EnsureTags gap
v2-ci / build (push) Successful in 3m49s
v2-ci / unit-tests (push) Failing after 8m10s

This commit is contained in:
Joseph Doherty
2026-07-14 05:35:15 -04:00
parent 416789c6ab
commit 9ba162d0f8
2 changed files with 6 additions and 2 deletions
+3 -1
View File
@@ -331,7 +331,9 @@ convention) + a regression unit test + `StorageRateMs` on the live-suite inline
gateway's histsdk on this historian**: `EnsureTags(Int1)` returns `ProtocolEvidenceMissingException` (the vendored
client's "no capture evidence for this type" guard → gRPC `Unimplemented`), both fresh and as a retype target.
A **type sweep** confirmed it is Int1-specific: **Int2/UInt2/Int4/UInt4/Float/Double all provision `success=True`;
only Int1 fails.** This is a **gateway/histsdk type-support gap**, not an OtOpcUa defect.
only Int1 fails.** Root cause: `histsdk` `HistorianTagWriteProtocol.GetAnalogDataTypeCode` has no captured
CTagMetadata wire code for Int1. This is a **gateway/histsdk type-support gap**, not an OtOpcUa defect — **filed as
[historiangw#11](https://gitea.dohertylan.com/dohertj2/historiangw/issues/11)**.
**✅ U-7 retype policy — ANSWERED (via `grpcurl` against the real historian):**
- `EnsureTags` is a **real create-or-update upsert** — re-`EnsureTags` of an existing tag at the same type → `success`.
+3 -1
View File
@@ -173,7 +173,9 @@ mapper code change is needed or wanted). Consequences:
- **Net for a pre-bump Float Boolean tag asked to become Int1:** the provision **fails** (per-tag
`Success=false``failed=N` tally). It is **neither silently retyped nor data-lost** — the tag stays Float
and remains readable; the Int1 provision simply doesn't land until the gateway's histsdk gains `Int1`
create-evidence. (Prerequisite for reaching this outcome at all: the provisioner must stamp a **positive
create-evidence — filed as
[historiangw#11](https://gitea.dohertylan.com/dohertj2/historiangw/issues/11). (Prerequisite for reaching this
outcome at all: the provisioner must stamp a **positive
`StorageRateMs`** — a `0` made `EnsureTags` throw `ArgumentOutOfRangeException` and fail *every* provision;
fixed in `GatewayTagProvisioner`, PR #439.)
3. **The failure mode is bounded and observable either way.** Provisioning is fire-and-forget and never