chore(clients): roll out feed-level snapshot_status to all five clients
Task 1 added AlarmSnapshotStatus and AlarmFeedMessage.snapshot_status = 5. Carry it downstream from the canonical Contracts protos: - Rust vendored protos under clients/rust/protos, refreshed byte-identical (build.rs falls back to them for out-of-repo tarball builds) - client descriptor set (protoc 34.1 pin) - Go (protoc-gen-go v1.36.11 / protoc-gen-go-grpc 1.6.2) - Python (grpcio-tools 1.80.0 pin) - Java (gradle generateProto) .NET needs no regeneration: the client compiles against the Contracts Generated/ output committed with the proto change. The hand-written CLI feed renderers switch on the payload oneof, so codegen alone does not carry the arm. Add snapshot-status to the .NET, Go, Rust, and Java renderers; the .NET and Go renderers were also missing provider-status, which has been on the wire since the provider-mode work, so add it there too. Java's renderer is an exhaustive switch expression and did not compile until the new case landed. The Python CLI renders generic protobuf-JSON and needs no change. Each client README gains a paragraph on the feed-level frame next to its existing from_truncated_snapshot paragraph: it arrives at stream open after provider_status and before the cached active_alarm frames, then on every verdict change including the clearing frame a monitor restart emits, so a live consumer can track set completeness without polling QueryActiveAlarms. GatewayDashboardDesign: list the two new payload cases the AlarmsHub forwards, and — separately — record the GroupToRole / GroupToTag / UntaggedSessionVisibility rows the settings page already renders but the bullet list omitted.
This commit is contained in:
@@ -1018,6 +1018,10 @@ message AlarmFeedMessage {
|
||||
// Provider-mode status. Emitted once on stream open and again on every
|
||||
// failover/failback so late joiners learn the current mode immediately.
|
||||
AlarmProviderStatus provider_status = 4;
|
||||
// Snapshot-completeness status. Emitted once on stream open and again on
|
||||
// every change of the truncation verdict, so late joiners learn whether the
|
||||
// feed's active-alarm set may be incomplete.
|
||||
AlarmSnapshotStatus snapshot_status = 5;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1028,6 +1032,23 @@ message AlarmProviderStatus {
|
||||
google.protobuf.Timestamp since = 4;
|
||||
}
|
||||
|
||||
// Feed-level snapshot-completeness status. Emitted once on StreamAlarms open
|
||||
// (after the initial provider_status frame, before the cached active_alarm
|
||||
// frames) so late joiners learn the current verdict, and again on every change
|
||||
// of the truncation verdict — when a reconcile reports a different verdict, and
|
||||
// when the gateway's alarm monitor restarts and drops a truncated verdict with
|
||||
// the cache generation it described (feed subscribers outlive that monitor
|
||||
// session, so they are sent the clearing frame). Mirrors the per-record
|
||||
// ActiveAlarmSnapshot.from_truncated_snapshot caveat at feed level so live
|
||||
// consumers can reason about completeness without polling QueryActiveAlarms.
|
||||
message AlarmSnapshotStatus {
|
||||
// True while the monitor's cached active-alarm set derives from a truncated
|
||||
// (capped) worker fetch — the set may be missing alarms. Distinct from
|
||||
// provider degradation (AlarmProviderStatus.degraded), which describes the
|
||||
// fidelity of the records rather than the completeness of the set.
|
||||
bool truncated = 1;
|
||||
}
|
||||
|
||||
message MxStatusProxy {
|
||||
// Mirrors the `success` member of the MXAccess MXSTATUS_PROXY struct
|
||||
// (a 16-bit signed value in the COM struct, widened to int32 on the
|
||||
|
||||
Reference in New Issue
Block a user