fix(review): resolve deferred code-review findings; S7.Cli verdict, browser CP release, MemberLeft/Exited/Downed, Sql Detach hoist (#625)
Claude-Session: https://claude.ai/code/session_01Ef2ozxS7QPanGT8uoATbTe
This commit is contained in:
@@ -162,7 +162,7 @@ out of scope; option (a) here removes the silent-truncation defect for the commo
|
||||
| Severity | Low |
|
||||
| Category | Correctness & logic bugs |
|
||||
| Location | `OtOpcUaNodeManager.cs:1978` (`ServeRawPaged`), `HistoryPaging.cs` (whole), `HistoryPaging.cs:213` (`SliceTieCluster` `next <= endUtc`) |
|
||||
| Status | Deferred |
|
||||
| Status | Won't Fix |
|
||||
|
||||
**Description:** The Raw paging chain treats `endUtc` as an **inclusive** upper bound throughout —
|
||||
the `HistoryContinuationState`/`HistoryPaging` XML docs all say "the original (inclusive) end of
|
||||
@@ -186,14 +186,7 @@ the inclusive/exclusive question requires confirming the Wonderware backend's ac
|
||||
semantics (cross-module / infra), and changing a comparison without that confirmation risks the
|
||||
opposite off-by-one.
|
||||
|
||||
**Resolution:** Deferred — 2026-06-20: infra-gated. Resolving the `endUtc` inclusive-vs-exclusive
|
||||
disagreement requires confirming the actual Wonderware historian backend's boundary semantics, which is
|
||||
hardware/infra-gated and not reachable from this macOS dev host. The impact is benign and bounded — because
|
||||
the backend is the authority on which samples exist (a sample at exactly `endUtc` never appears in an
|
||||
exclusive-end read), the disagreement only ever yields ONE extra empty resume page (`[endUtc, endUtc)` →
|
||||
GoodNoData, no continuation point) rather than any duplicated or dropped data. Changing the
|
||||
`SliceTieCluster` comparison / paging XML docs without confirming the live backend boundary risks
|
||||
introducing the opposite off-by-one, so no code is changed here pending that live confirmation.
|
||||
**Resolution:** Won't Fix (2026-10-08, #625) — accepted by design. The paging chain treating `endUtc` as inclusive is the conservative side of the exclusive backend contract: worst case is one extra empty resume page, never a dropped or duplicated sample, and the live backend boundary cannot be confirmed from a dev host. The XML doc on `HistoryPaging.SliceTieCluster` now records the ruling. The backward-read (`StartTime == MinValue`) caveat is unchanged: the backend is assumed to return chronological results.
|
||||
|
||||
### OpcUaServer-004
|
||||
|
||||
|
||||
Reference in New Issue
Block a user