From 681606dad0f0d364a7461ec3b9a52f3eb776c495 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Mon, 12 Oct 2026 13:59:34 -0400 Subject: [PATCH] =?UTF-8?q?docs(index):=20OtOpcUa=20batch=20#681=E2=80=93#?= =?UTF-8?q?684=20=E2=80=94=20Gateway=20per-sample=20from=20raw,=20advertis?= =?UTF-8?q?ed=20aggregates,=20QuestDB=20tag=20index,=20Good-only=20aggrega?= =?UTF-8?q?tes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/skills/sister-project-history/otopcua.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.claude/skills/sister-project-history/otopcua.md b/.claude/skills/sister-project-history/otopcua.md index fa923ea..24a8a76 100644 --- a/.claude/skills/sister-project-history/otopcua.md +++ b/.claude/skills/sister-project-history/otopcua.md @@ -278,3 +278,17 @@ AddRoute of the dev Mac (`oee-tagdump-mac`, `10.181.206.245.1.1`) on the two tes - **Follow-ups:** #681 (Gateway per-sample aggregates from raw), #682 (advertise per-backend aggregates), #683 (QuestDB data-range lookup cost), #684 (Average/Min/Max include Uncertain). - **ScadaBridge impact:** none — it issues no processed history reads. +- **2026-10-12 batch #681–#684 (OtOpcUa `70fb1f1f`).** #682/#683/#684 closed; #681 open only for the live AVEVA leg + (VPN). Live gate 9 passed on docker-dev (both centrals); its one defect (a SqlServer plan cliff) was fixed before push. + - **#681 (Gateway):** the ten per-sample aggregates (incl. Average, Count) are back, computed from raw AVEVA reads by + the shared SQL-backend evaluator — same semantics as SqlServer/QuestDB. ⚠️ Min/Max now come from raw (were AVEVA + modes); reads are capped by `MaxTimeWeightedRawRows`. Every gateway stream is drained — an abandoned stream evicts + the gateway's shared historian session (historiangw#26). + - **#682:** `HistoryServerCapabilities/AggregateFunctions` lists only the backend's aggregates (SqlServer/QuestDB + 17, Gateway 12, none without a historian); `ServerCapabilities/AggregateFunctions` keeps the SDK's 37. ⚠️ No + historian ⇒ processed reads `BadAggregateNotSupported` (was `GoodNoData`). + - **#683:** QuestDB `tag` SYMBOL indexed (added to existing tables at boot); SqlServer Start/End via a FORCESEEK PK + join-back (1 d @ 1 min 60 s timeout → 0.13 s on a long-history tag). + - **#684:** ⚠️ Average/Min/Max/Range/*ActualTime use Good samples only (Part 13); Uncertain values beyond the Good + extreme make Min/Max `Uncertain_DataSubNormal`. + - **ScadaBridge impact:** none — no processed history reads.