diff --git a/.claude/skills/sister-project-history/otopcua.md b/.claude/skills/sister-project-history/otopcua.md index 45d4ae9..2ddb2e3 100644 --- a/.claude/skills/sister-project-history/otopcua.md +++ b/.claude/skills/sister-project-history/otopcua.md @@ -306,3 +306,13 @@ AddRoute of the dev Mac (`oee-tagdump-mac`, `10.181.206.245.1.1`) on the two tes strict-ceiling uncapped reads, reverse events). - **ScadaBridge impact:** none expected — it does not issue reverse raw reads; a Gateway raw read no longer returns a sample stamped exactly at EndTime. +- **2026-10-13 #689–#691 (pushed `15ccd9b7`, all closed, live AVEVA gate PASS).** Gateway reverse raw walk sized from the page + (`ReverseWalk.cs`; ~40 rows/page at N=3 vs 32,770; tie refusal now per millisecond), proven-empty history carried in the + continuation point, reverse EVENTS served on Gateway (were refused; end-only returned the OLDEST N) and uncapped event reads no + longer throw (#689/#691.4/.5); Bad Gateway samples carry a null value (#690); gateway row ceiling learned from its refusal + (#691.3); native TimeAverage/Total on the SQL grid both directions, forward no longer averages past EndTime, >100k intervals + refused (#691.2); **Part 11 `ReturnBounds` on every backend** (#691.1) — ⚠️ the .NET SDK defaults `ReturnBounds` AND + `IsReadModified` to true, so SDK-default clients now get bounds / `Bad_InvalidArgument`; kill switch + `ServerHistorian:HonorReturnBounds`. Follow-ups #692 (N=1 empty pages), #693 (Gateway AtTime interpolation), #694; upstream + historiangw#28 (zero EventIds, receivedTime skew); #27 still open. + - **ScadaBridge impact:** none — it issues no HistoryRead.