Commit Graph

  • c019d0fc2b fix(historian): trim only HistoryServerCapabilities/AggregateFunctions; null set = all (#682 review) Joseph Doherty 2026-10-12 09:18:53 -04:00
  • ede8610804 refactor(historian): Gateway served set behind GatewayHistorianDataSource.ServedAggregates (#682, merge seam for #681) Joseph Doherty 2026-10-12 08:57:19 -04:00
  • 6ea3ba44da feat(historian): advertise only the backend's aggregates under AggregateFunctions (#682) Joseph Doherty 2026-10-12 08:52:47 -04:00
  • 8ebee2ac40 docs(historian): warn that QuestDB first()/last() ordering is implementation behaviour (#680 F1 review) Joseph Doherty 2026-10-11 18:48:53 -04:00
  • d266ff83f4 Merge fix/680-startend-race: single-scan Start/End/Delta (QuestDB/SqlServer), null-tolerant bucket readers (#680 live gate F1) Joseph Doherty 2026-10-11 18:48:37 -04:00
  • 2ceed561ad fix(historian): live-gate 8 F1 — per-sample counts and picks from one table version (#680 follow-up) Joseph Doherty 2026-10-11 18:28:29 -04:00
  • 11f792538e Merge feat/680-per-sample: per-sample aggregates SDK/Part 13 parity — Count Good-only + in-range zero, raw Start/End, Delta status, end-of-data Partial (#680) Joseph Doherty 2026-10-11 16:47:10 -04:00
  • b5e3e5108c docs(historian): #680 lane B review — QuestDB data-range lookups are partition scans, both-direction gate, all-Bad Count 0x80000401, outage-last parity test, CLAUDE.md per-sample bullet Joseph Doherty 2026-10-11 16:39:39 -04:00
  • b8344bb151 fix(historian): #680 lane B — reverse end-of-data Partial (strictly inside), drop dead per-sample Percent cases Joseph Doherty 2026-10-11 16:00:13 -04:00
  • dbfe2fc4de fix(historian): #680 lane B — per-sample Count/Start/End/Delta per Part 13 + forward end-of-data Partial Joseph Doherty 2026-10-11 15:52:49 -04:00
  • f6a2628656 Merge feat/680-time-weighted: time-weighted aggregates SDK/Part 13 parity — TA/Total status, covered-part Total, outage bridging, duration Percent*, TA2/Total2 end of data (#680) Joseph Doherty 2026-10-11 16:15:35 -04:00
  • 0d206a0884 fix(historian): #680 review — recovery/only-sample TA2/Total2 value, outage-last + Boolean parity, docs Joseph Doherty 2026-10-11 16:02:22 -04:00
  • b61975f7d7 fix(historian): #680 lane A — time-weighted aggregates follow Part 13 Joseph Doherty 2026-10-11 15:52:30 -04:00
  • 19a4c093be Merge feat/679-gateway-aggregates: Gateway Average/Count BadAggregateNotSupported, TimeAverage → TimeWeightedAverage (#679) Joseph Doherty 2026-10-11 15:19:37 -04:00
  • fb5ec80fe6 fix(historian): #679 Gateway — Average/Count not supported (no AVEVA equivalent), TimeAverage → TimeWeightedAverage Joseph Doherty 2026-10-11 15:19:19 -04:00
  • 6d5c1c768b Merge feat/676-opcuaclient-followups: sustained closed secure channel is a definitive session loss (#676 live-gate A1) Joseph Doherty 2026-10-11 12:35:09 -04:00
  • beb1c583b1 fix(opcuaclient): #676 live gate A1 — a sustained closed connection is a definitive loss Joseph Doherty 2026-10-11 12:34:52 -04:00
  • 945ec2c069 Merge feat/677-aggregates: reverse processed reads SDK-anchored, start-of-data Partial (forward), AggregateConfiguration accept-defaults, IntegralDivisor=1, SDK parity tests (#677) Joseph Doherty 2026-10-11 11:47:52 -04:00
  • 7349260231 fix(historian): #677 review — start-of-data Partial forward-only, bounded/skipped earliest-sample query, wider SDK parity Joseph Doherty 2026-10-11 11:47:22 -04:00
  • 50c09e21d5 Merge feat/676-opcuaclient-followups: endpoint host+port rewrite, TCP-stall wire test, ReconnectPeriod removed, IDriverConnectionLossSource fast recovery, trailing re-read, replay summary (#676) Joseph Doherty 2026-10-11 11:45:26 -04:00
  • 27bf4826d6 fix(opcuaclient): #676 re-review — trailing read skips refs delivered to while in flight Joseph Doherty 2026-10-11 11:44:12 -04:00
  • 029a916288 Merge feat/674-historyupdate-posture follow-ups: HistoryUpdate closed until first redundancy snapshot, node-level v1 refusal, host wiring tests, plan-before-gate, UTC skew (#674 review) Joseph Doherty 2026-10-11 11:41:36 -04:00
  • 232c03ed1b fix(historian): #674 review follow-ups — HistoryUpdate boot-window gate, node-level v1 refusal, plan-before-gate, UTC skew compare Joseph Doherty 2026-10-11 11:41:11 -04:00
  • 7594120a55 Merge feat/675-reverse-event-paging follow-ups: SupportsReverseEvents capability (Gateway end-only stays forward), no broad NotSupported catch, guard test (#675 review) Joseph Doherty 2026-10-11 11:36:27 -04:00
  • 93d6c1da67 fix(historian): #675 review follow-ups — SupportsReverseEvents capability, no catch-as-unsupported Joseph Doherty 2026-10-11 11:36:12 -04:00
  • 30a9d5f094 fix(opcuaclient): #676 review fix-ups (port-less rewrite, full reconcile, delivery lock, timers) Joseph Doherty 2026-10-11 11:35:50 -04:00
  • fccffd0a0f feat(opcuaclient): #676 follow-ups — endpoint rewrite, stall wire test, fast definitive-loss recovery Joseph Doherty 2026-10-11 11:17:19 -04:00
  • 9120182314 Merge master into feat/677-aggregates Joseph Doherty 2026-10-11 11:30:46 -04:00
  • 27ca6cd791 feat(historian): #677 Part 13/SDK reverse anchoring, start-of-data Partial, AggregateConfiguration, IntegralDivisor Joseph Doherty 2026-10-11 11:26:00 -04:00
  • 8e6ac4b344 Merge feat/675-reverse-event-paging: reverse event HistoryRead paging, end-only backward, Gateway MaxValue pin (#675) Joseph Doherty 2026-10-11 11:23:51 -04:00
  • e59ab69398 Merge feat/674-historyupdate-posture: future-skew bound, Primary-only HistoryUpdate, SqlServer v1 accepted with modified trail disabled, QuestDB TTL pin (#674) Joseph Doherty 2026-10-11 11:21:30 -04:00
  • 8d154c6a81 feat(historian): #675 reverse HistoryRead-Events paging + end-only backward reads Joseph Doherty 2026-10-11 11:19:54 -04:00
  • 0658d244d0 feat(historian): #674 HistoryUpdate posture — future-skew bound, Primary gate, SqlServer v1 accepted, QuestDB TTL pin Joseph Doherty 2026-10-11 11:18:44 -04:00
  • 69190b14f1 test(historian): cancel the retention purge only once its DELETE is observed blocked (L6 review) Joseph Doherty 2026-10-11 10:57:44 -04:00
  • 1375f9349e Merge fix/678-small: retention cancel/fallback tests, #672 tests, FOCAS race, TTL log wording, debug overlay, role-overlay suffix fix (#678) Joseph Doherty 2026-10-11 10:55:19 -04:00
  • 045a21da14 fix(client): keep advertised port for a port-less URL; narrow history refusal catch to unwrapped faults (L4 review) Joseph Doherty 2026-10-11 10:48:20 -04:00
  • f292cf3beb fix(host): #678.6 build the role-overlay suffix from plain roles only; audit overlays; driver overlay Opc.Ua Debug -> Information Joseph Doherty 2026-10-11 10:47:01 -04:00
  • 3067146be3 Merge fix/client-followups: client endpoint host+port rewrite, Part 13 aggregate list, one-line history refusal (#678.5, #677.5, #674.6, #678.6) Joseph Doherty 2026-10-11 10:46:56 -04:00
  • fe919f8b08 fix(client): endpoint port rewrite, Part 13 time-weighted aggregates, clean history-refusal error (#678.5, #677.5, #674.6, #678.6) Joseph Doherty 2026-10-11 10:45:18 -04:00
  • f0b409f999 docs(docker-dev): #678.5 debug-logging overlay; correct the default-Debug claim Joseph Doherty 2026-10-11 10:44:45 -04:00
  • f9ab2f7293 fix(questdb): #678.4 distinguish cleared vs applied TTL log wording Joseph Doherty 2026-10-11 10:44:15 -04:00
  • 1e343b0c52 test(focas): #678.3 wait for motor speeds too; WaitFor fails on timeout (15 s) Joseph Doherty 2026-10-11 10:43:54 -04:00
  • 42eb96af9e test(runtime): #678.2 #672 initial-state unreachable peer + strengthen Self_unreachable_is_ignored Joseph Doherty 2026-10-11 10:43:15 -04:00
  • f41df6710c test(historian): #678.1 retention mid-command cancel + ClearPool fallback with falsification control Joseph Doherty 2026-10-11 10:42:10 -04:00
  • 825393299e docs(plans): follow-up batch #674-#678 design Joseph Doherty 2026-10-11 10:39:01 -04:00
  • bc03adb1fd Merge fix/670-f2-regate: keep the post-recovery replay guard armed for the whole window (#670 live-gate R2) Joseph Doherty 2026-10-11 09:42:58 -04:00
  • 099bc1b6e0 fix(opcuaclient): #670 F2 re-gate — hold the replay guard for the whole window Joseph Doherty 2026-10-11 09:42:39 -04:00
  • 57deaeba16 Merge fix/668-followups: #668 review fix-ups (ACL allow leg, explicit cursor source time, paging tests, QuestDB orphan warning, docs) Joseph Doherty 2026-10-11 09:37:27 -04:00
  • 7c80d36eb6 fix(historian): #668 review follow-ups (explicit modified source time, paging tests, ACL test, QuestDB orphan warning, docs) Joseph Doherty 2026-10-11 09:37:17 -04:00
  • 062086f9a6 Merge feat/668-modified-values: Part 11 modified-value history (IsReadModified) on SqlServer + QuestDB (#668) Joseph Doherty 2026-10-11 09:32:13 -04:00
  • cfd403710e feat(historian): Part 11 modified-value history on SqlServer + QuestDB (#668) Joseph Doherty 2026-10-11 09:26:36 -04:00
  • 699871040a Merge fix/670-followups: outage Bad stamped at detection; post-recovery replay guard (#670 live-gate F1/F2) Joseph Doherty 2026-10-11 09:16:03 -04:00
  • 87e8aff786 fix(opcuaclient): scope the #670 F2 late-replay drop to the post-recovery window Joseph Doherty 2026-10-11 09:15:51 -04:00
  • 984e069f5d Merge fix/667-followups: release the retention applock only when acquired (#667 live-gate F3) Joseph Doherty 2026-10-11 09:13:30 -04:00
  • e583b068a1 fix(historian): release the retention applock only when acquired (#667 F3) Joseph Doherty 2026-10-11 09:13:23 -04:00
  • 99c13e4459 fix(opcuaclient): #670 live-gate follow-ups — historize the outage Bad, drop late replays Joseph Doherty 2026-10-11 09:11:34 -04:00
  • 3b739b982b Merge feat/671-time-weighted-aggregates: Part 13 time-weighted aggregates (#671) Joseph Doherty 2026-10-11 09:10:52 -04:00
  • 56bb4855bb fix(historian): #671 review — raw-row cap, reverse Interpolative, SDK status rule, Partial bit Joseph Doherty 2026-10-11 09:10:26 -04:00
  • 1f88669304 feat(historian): Part 13 time-weighted aggregates on SqlServer + QuestDb (#671) Joseph Doherty 2026-10-11 08:44:26 -04:00
  • db6446ce73 Merge fix/670-opcuaclient-session-loss: OpcUaClient upstream session loss goes Bad and recovers (#670) Joseph Doherty 2026-10-11 08:41:48 -04:00
  • b028322568 fix(opcuaclient): #670 review — subscription loss with a live session, stale recovery latch Joseph Doherty 2026-10-11 08:41:27 -04:00
  • d803e0eab4 Merge fix/669-event-continuation: event HistoryRead continuation points + open-ended reads (#669) Joseph Doherty 2026-10-11 08:37:39 -04:00
  • 50b504d293 fix(opcua): raw open-ended/end-only reads per Part 11; extreme-bound conformance (#669) Joseph Doherty 2026-10-11 08:37:24 -04:00
  • acce99de9a fix(opcua): event paging review fixes (#669): open-ended end, node-bound cursors, save after projection Joseph Doherty 2026-10-11 08:30:36 -04:00
  • 91434e7f61 Merge fix/672-capture-gap: capture while the recording Primary is unreachable (#672) Joseph Doherty 2026-10-11 08:29:59 -04:00
  • b3db64af6c Merge feat/667-sqlserver-retention: SQL Server historian retention/purge (#667) Joseph Doherty 2026-10-11 08:27:47 -04:00
  • e4123ada91 fix(historian): retention applock release hardening, shutdown-quiet cancellation, release tests, docs (#667 review) Joseph Doherty 2026-10-11 08:27:31 -04:00
  • 2a8f9af5e4 fix(opcuaclient): upstream session loss goes Bad and recovers (#670) Joseph Doherty 2026-10-11 08:27:04 -04:00
  • 1b2c36eb87 fix(historian): capture while the recording Primary is unreachable (#672) Joseph Doherty 2026-10-11 08:26:39 -04:00
  • 924eff8d3c feat(historian): SQL Server retention purge (RetentionDays, Primary-gated, applock) (#667) Joseph Doherty 2026-10-11 08:21:30 -04:00
  • f9fd495292 fix(opcua): issue and resume continuation points for event HistoryRead (#669) Joseph Doherty 2026-10-11 08:21:02 -04:00
  • 7d75478f10 Merge fix/673-focas-flake: FOCAS LastStatus publication order (#673) Joseph Doherty 2026-10-11 08:16:16 -04:00
  • e5d12d391a fix(focas): publish LastStatus after the fixed-tree stamp; test waits on full readiness (#673) Joseph Doherty 2026-10-11 08:16:00 -04:00
  • db6a53036b docs(plans): issue batch #667-#673 design Joseph Doherty 2026-10-11 08:14:38 -04:00
  • ee67b6370a Merge feat/questdb-historian: QuestDB historian backend (#666) Joseph Doherty 2026-10-11 04:40:42 -04:00
  • 1569a59ad2 test(historian): QuestDB live gate PASSED on docker-dev (6/6 legs); RetentionDays compose key Joseph Doherty 2026-10-11 04:00:03 -04:00
  • 2ebe0a4226 Merge qdb/final: final-review fix wave (pool cap, catalog metadata, warn rate-limit, disposal, docs) Joseph Doherty 2026-10-11 03:37:55 -04:00
  • 8d82d049e9 fix(historian): QuestDB final-review fix wave (I-1, M-1, M-3, M-5, M-8, M-9) Joseph Doherty 2026-10-11 03:35:35 -04:00
  • e177a50046 Merge qdb/T8: QuestDB backend documentation (as built) Joseph Doherty 2026-10-11 03:10:56 -04:00
  • 94691ec50f docs(historian): QuestDB backend documentation (as built) Joseph Doherty 2026-10-11 03:09:11 -04:00
  • 17cff2ba16 Merge qdb/T7: QuestDb provider + Host wiring; conformance green on both backends Joseph Doherty 2026-10-11 03:04:43 -04:00
  • f661c084d8 test(historian): QuestDB-backed paging regression (T7 review) Joseph Doherty 2026-10-11 03:03:13 -04:00
  • 0e2bffc74a feat(historian): QuestDb provider + Host wiring; conformance suite green on both backends Joseph Doherty 2026-10-11 02:53:40 -04:00
  • 3244f9781a refactor(historian): one QuestDbTimeClusters helper for writer + updater existence reads; redelivery tombstone test Joseph Doherty 2026-10-11 02:32:11 -04:00
  • d2be213e86 fix(historian): page by the backend's timestamp resolution; QuestDB AtTime stamps the requested time Joseph Doherty 2026-10-11 02:30:25 -04:00
  • 13d628a07f feat(historian): QuestDb provider, registry + consumer-gated validator, compose env Joseph Doherty 2026-10-11 02:23:21 -04:00
  • 18e85265f9 Merge qdb/T5: QuestDB reads and aggregates Joseph Doherty 2026-10-11 02:19:32 -04:00
  • 3790a21acb Merge qdb/T4: QuestDB writes (value writer, provisioner, alarm writer) Joseph Doherty 2026-10-11 02:16:49 -04:00
  • 9d90dc9457 fix(historian): clustered existence reads + tag-predicate tests (T4 review) Joseph Doherty 2026-10-11 02:16:14 -04:00
  • e5b9783ba3 Merge qdb/T6: QuestDB HistoryUpdate (soft delete) Joseph Doherty 2026-10-11 02:13:25 -04:00
  • c4b4b2e2bc feat(historian): QuestDB reads and aggregates (pushed down, shared evaluation) Joseph Doherty 2026-10-11 02:13:00 -04:00
  • 5c0671e5b5 fix(historian): per-tag update lock + clustered existence reads (T6 review) Joseph Doherty 2026-10-11 02:12:09 -04:00
  • 4c053cc4d0 feat(historian): QuestDB live writes, provisioning and alarm events Joseph Doherty 2026-10-11 02:08:04 -04:00
  • ee174c0179 feat(historian): QuestDB HistoryUpdate with soft delete and read-your-writes Joseph Doherty 2026-10-11 02:04:48 -04:00
  • ecc0f914cc Merge qdb/T3: QuestDB historian skeleton Joseph Doherty 2026-10-11 01:55:28 -04:00
  • fabcc6eed6 Merge qdb/T2: historian conformance suite over SQL Server Joseph Doherty 2026-10-11 01:52:59 -04:00
  • 11b703708c feat(historian): QuestDB backend skeleton — options, connection, schema bootstrap with TTL Joseph Doherty 2026-10-11 01:52:57 -04:00
  • c5b33aa123 test(historian): backend conformance suite (shared source), run against SQL Server Joseph Doherty 2026-10-11 01:50:51 -04:00
  • ca2c20f852 Merge qdb/T1: extract Driver.Historian.Sql.Common Joseph Doherty 2026-10-11 01:43:01 -04:00
  • 082e808d0d test(historian): pin Uncertain-input degradation (T1 review) Joseph Doherty 2026-10-11 01:42:22 -04:00