docs(re): correct Status interface-version comments (4 on gRPC, not 0)
Claude-Session: https://claude.ai/code/session_012SDSQ3AcaXqPcBtDESBRii
This commit is contained in:
@@ -18,8 +18,9 @@
|
|||||||
> captured correctly; the table uses a unified column header for readability.
|
> captured correctly; the table uses a unified column header for readability.
|
||||||
|
|
||||||
> **Status note:** `StatusService.GetStatusInterfaceVersion` returned UiVersion=4, UiError=0 on the live
|
> **Status note:** `StatusService.GetStatusInterfaceVersion` returned UiVersion=4, UiError=0 on the live
|
||||||
> 2023 R2 server. Status is classified as reachability-only — its version integer carries no semantic
|
> 2023 R2 server. This differs from the historical 0 observed on 2020 WCF — both are reachability-only.
|
||||||
> meaning for the SDK's byte serializers — so its UiVersion is not gated and not asserted in tests.
|
> Status is classified as reachability-only: its version integer carries no semantic meaning for the
|
||||||
|
> SDK's byte serializers, so its UiVersion is not gated and not asserted in tests.
|
||||||
|
|
||||||
## Evidence Test
|
## Evidence Test
|
||||||
|
|
||||||
|
|||||||
@@ -29,8 +29,9 @@ internal enum HistorianServiceInterface
|
|||||||
/// <item>Retrieval (<c>Retr</c>) interface version = 4</item>
|
/// <item>Retrieval (<c>Retr</c>) interface version = 4</item>
|
||||||
/// <item>Transaction (<c>Trx</c>) interface version = 2</item>
|
/// <item>Transaction (<c>Trx</c>) interface version = 2</item>
|
||||||
/// </list>
|
/// </list>
|
||||||
/// The Status (<c>Stat</c>) service's <c>GetInterfaceVersion</c> returns 0 (not a real
|
/// The Status (<c>Stat</c>) service's <c>GetInterfaceVersion</c> is not a real version (0 on
|
||||||
/// version), so the Status interface is validated for reachability only, never value.
|
/// 2020 WCF, 4 on 2023 R2 gRPC) — it carries no meaning for the byte serializers either way — so
|
||||||
|
/// the Status interface is validated for reachability only, never value.
|
||||||
///
|
///
|
||||||
/// A 2023 R2 gRPC server reports History interface version 12 even though it carries the
|
/// A 2023 R2 gRPC server reports History interface version 12 even though it carries the
|
||||||
/// same proven 2020 native buffers. That value is captured and accepted (see
|
/// same proven 2020 native buffers. That value is captured and accepted (see
|
||||||
@@ -59,7 +60,8 @@ internal static class HistorianServerVersionGate
|
|||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// True when the service interface reports a meaningful version that should be matched.
|
/// True when the service interface reports a meaningful version that should be matched.
|
||||||
/// Status is reachability-only (its <c>GetInterfaceVersion</c> returns 0).
|
/// Status is reachability-only (its <c>GetInterfaceVersion</c> is not a real version —
|
||||||
|
/// 0 on 2020 WCF, 4 on 2023 R2 gRPC).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static bool IsValueGated(HistorianServiceInterface service) => service switch
|
public static bool IsValueGated(HistorianServiceInterface service) => service switch
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -72,7 +72,8 @@ public sealed class GrpcInterfaceVersionEvidenceTests
|
|||||||
Assert.Equal(0u, transaction.Error);
|
Assert.Equal(0u, transaction.Error);
|
||||||
Assert.Equal(2u, transaction.Version);
|
Assert.Equal(2u, transaction.Version);
|
||||||
|
|
||||||
// Status: reachability-only — UiError must be 0; UiVersion is intentionally 0 by design.
|
// Status: reachability-only — assert UiError==0 only; UiVersion is not value-gated
|
||||||
|
// (observed 4 on 2023 R2 gRPC, 0 on 2020 WCF).
|
||||||
Assert.Equal(0u, status.UiError);
|
Assert.Equal(0u, status.UiError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user