Joseph Doherty
0a540d9f09
feat(historian-gateway): GetHealthSnapshot via Probe/GetConnectionStatus (counter discipline)
...
Claude-Session: https://claude.ai/code/session_012SDSQ3AcaXqPcBtDESBRii
2026-06-26 16:45:40 -04:00
Joseph Doherty
1e93b2ebfb
feat(historian-gateway): GatewayHistorianDataSource read paths (raw/processed/at-time)
...
Claude-Session: https://claude.ai/code/session_012SDSQ3AcaXqPcBtDESBRii
2026-06-26 16:44:48 -04:00
Joseph Doherty
c51ca2276b
fix(historian-gateway): seam maxEvents XML doc + driver Platforms + ValueTask in fake
...
Addresses Task 1 code-review: document that ReadEventsAsync.maxEvents is enforced
client-side (no server cap in the wire contract); add Platforms=AnyCPU;x64 to match
sibling drivers; use ValueTask.CompletedTask in FakeHistorianGatewayClient.
Claude-Session: https://claude.ai/code/session_012SDSQ3AcaXqPcBtDESBRii
2026-06-26 16:35:08 -04:00
Joseph Doherty
a96e85f0e4
feat(historian-gateway): AlarmHistorianEvent->HistorianEvent mapper (SendEvent properties)
...
Claude-Session: https://claude.ai/code/session_012SDSQ3AcaXqPcBtDESBRii
2026-06-26 16:32:38 -04:00
Joseph Doherty
a54c7a9366
feat(historian-gateway): HistorianEvent->HistoricalEvent mapper (+ clamped severity)
...
Claude-Session: https://claude.ai/code/session_012SDSQ3AcaXqPcBtDESBRii
2026-06-26 16:32:38 -04:00
Joseph Doherty
c7296d7458
feat(historian-gateway): sample/aggregate->DataValueSnapshot + quality mapper (Wonderware parity)
...
Claude-Session: https://claude.ai/code/session_012SDSQ3AcaXqPcBtDESBRii
2026-06-26 16:32:38 -04:00
Joseph Doherty
3226b87818
feat(historian-gateway): DriverDataType->HistorianDataType mapper + write-gap fallbacks (matrix-guarded)
...
Claude-Session: https://claude.ai/code/session_012SDSQ3AcaXqPcBtDESBRii
2026-06-26 16:32:38 -04:00
Joseph Doherty
c822a6b196
feat(historian-gateway): HistoryAggregateType->RetrievalMode mapper (matrix-guarded)
...
Claude-Session: https://claude.ai/code/session_012SDSQ3AcaXqPcBtDESBRii
2026-06-26 16:32:38 -04:00
Joseph Doherty
a98fc46d26
feat(historian-gateway): scaffold Gateway driver project + consume client package
...
Claude-Session: https://claude.ai/code/session_012SDSQ3AcaXqPcBtDESBRii
2026-06-26 16:18:50 -04:00
Joseph Doherty
369e832e5a
docs(historian-gateway): relocate OtOpcUa↔HistorianGateway integration plan + design
...
Claude-Session: https://claude.ai/code/session_012SDSQ3AcaXqPcBtDESBRii
2026-06-26 16:09:29 -04:00
Joseph Doherty
a7dd2f59d0
docs(otopcua): record FixedTree live-validation on wonder-app-vd03 (Makino Z-34184)
v2-ci / build (push) Failing after 39s
v2-ci / unit-tests (tests/Core/ZB.MOM.WW.OtOpcUa.Cluster.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.ControlPlane.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Runtime.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Security.Tests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.Host.IntegrationTests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests) (push) Has been skipped
2026-06-26 16:02:05 -04:00
Joseph Doherty
04159fd716
test(otopcua): ConfigComposer->ParseComposition DeviceHost round-trip (follow-up E)
2026-06-26 15:39:40 -04:00
Joseph Doherty
1058542d80
docs(otopcua): record FixedTree follow-ups A-E as implemented (design, plan, RESUME)
2026-06-26 15:19:46 -04:00
Joseph Doherty
0074f37a64
test(otopcua): tighten multi-device collapse assertion + clear warn-state on removal (follow-up E)
2026-06-26 15:16:59 -04:00
Joseph Doherty
50f08635ec
feat(otopcua): multi-device-per-driver FixedTree partition (follow-up E)
2026-06-26 15:00:11 -04:00
Joseph Doherty
51721df563
refactor(otopcua): extract authored-only send helper + empty-authored dropped-path test (follow-up D)
2026-06-26 14:44:26 -04:00
Joseph Doherty
05c820795a
perf(otopcua): one SetDesiredSubscriptions per driver per redeploy (follow-up D)
2026-06-26 14:30:16 -04:00
Joseph Doherty
cde16063d9
test(otopcua): negative + convergence coverage for rebind re-trigger (follow-up C)
2026-06-26 14:18:01 -04:00
Joseph Doherty
533671487e
feat(otopcua): re-trigger discovery on config-unchanged rebind (follow-up C)
2026-06-26 14:06:50 -04:00
Joseph Doherty
adcd7b57c1
feat(otopcua): driver-level equipment resolution + per-equipment discovered-plan cache (follow-up E)
2026-06-26 13:33:21 -04:00
Joseph Doherty
915492a759
refactor(otopcua): align device-host map parity + document EquipmentNode rebuild trade-off (follow-up E)
2026-06-26 13:22:26 -04:00
Joseph Doherty
cb7ce7f171
feat(otopcua): EquipmentNode carries DriverInstanceId/DeviceId/DeviceHost (follow-up E projection)
2026-06-26 13:07:31 -04:00
Joseph Doherty
e7d5ebe956
fix(otopcua): cancel pending rediscover timer on TriggerRediscovery + test hardening (follow-up C)
2026-06-26 12:57:08 -04:00
Joseph Doherty
f7358bf4fd
feat(otopcua): DriverInstanceActor.TriggerRediscovery message (follow-up C)
2026-06-26 12:45:26 -04:00
Joseph Doherty
a1a655e6c9
test(otopcua): Once re-discovery reruns one pass per reconnect + comment tidy (follow-up B)
2026-06-26 12:38:52 -04:00
Joseph Doherty
ce34816a50
feat(otopcua): DriverInstanceActor honors RediscoverPolicy (Never/Once/UntilStable) (follow-up B)
2026-06-26 12:32:28 -04:00
Joseph Doherty
efbdaf853c
feat(otopcua): set Modbus/S7/Galaxy re-discovery policy to Once + Once-branch test (follow-up B)
2026-06-26 12:26:28 -04:00
Joseph Doherty
a378b572af
feat(otopcua): add ITagDiscovery.RediscoverPolicy + per-driver assignments (follow-up B)
2026-06-26 12:18:44 -04:00
Joseph Doherty
c2c368dcec
feat(otopcua): make FixedTree re-discovery per-pass timeout injectable (follow-up A)
2026-06-26 12:12:47 -04:00
Joseph Doherty
37cac5dee5
docs(otopcua): record FixedTree-under-Equipment injection feature (design, plan, status)
2026-06-26 09:11:40 -04:00
Joseph Doherty
25ccd25b6b
test(otopcua): assert exact discovered NodeId in the e2e
2026-06-26 09:04:26 -04:00
Joseph Doherty
5104540e32
test(otopcua): cover discovered-node rebind drop + clarify re-apply scope
2026-06-26 09:01:01 -04:00
Joseph Doherty
1aa13ebd27
test(otopcua): end-to-end discovered-node injection + value flow
2026-06-26 08:46:28 -04:00
Joseph Doherty
0788bad145
feat(otopcua): re-inject discovered nodes after address-space rebuild
2026-06-26 08:36:52 -04:00
Joseph Doherty
b1e4fba792
fix(otopcua): skip redundant discovered-node re-apply + guard tests
2026-06-26 08:28:42 -04:00
Joseph Doherty
21298ec1b2
fix(otopcua): resume discovery on actor context + bound/harden re-discovery
2026-06-26 08:19:12 -04:00
Joseph Doherty
b9b8d3d389
feat(otopcua): inject discovered nodes into the equipment projection on connect
2026-06-26 07:59:01 -04:00
Joseph Doherty
cf6b1abf4c
feat(otopcua): re-run driver discovery on reconnect
2026-06-26 07:44:28 -04:00
Joseph Doherty
51634cca38
feat(otopcua): driver-instance post-connect bounded re-discovery
2026-06-26 07:40:24 -04:00
Joseph Doherty
bb21db0a8e
fix(otopcua): log+document discovered-node materialise message
2026-06-26 07:32:13 -04:00
Joseph Doherty
34fc304712
fix(otopcua): guard discovered-injection equipment id + cover deferred forwarding
2026-06-26 07:27:09 -04:00
Joseph Doherty
ccf93fc029
feat(otopcua): OpcUaPublishActor handles discovered-node materialisation
2026-06-26 07:24:22 -04:00
Joseph Doherty
598cdfad5a
feat(otopcua): applier pass to materialise discovered nodes idempotently
2026-06-26 07:16:36 -04:00
Joseph Doherty
f8406d348c
fix(otopcua): report NodeAdded model-change outside the node Lock
2026-06-26 07:06:43 -04:00
Joseph Doherty
93f7586590
fix(otopcua): guard root-level discovered var parent + tighten mapper
2026-06-26 06:59:34 -04:00
Joseph Doherty
33b0e639a5
feat(otopcua): GeneralModelChangeEvent(NodeAdded) for runtime node adds
2026-06-26 06:55:52 -04:00
Joseph Doherty
d7a0da5ea1
feat(otopcua): map discovered nodes under an equipment subfolder
2026-06-26 06:47:18 -04:00
Joseph Doherty
da55c6913d
feat(otopcua): capturing address-space builder for driver discovery
2026-06-26 06:39:18 -04:00
Joseph Doherty
74e07225c9
docs(otopcua): record the equipment-tag data-plane investigation + fix chain
2026-06-26 06:00:05 -04:00
Joseph Doherty
6600ce9940
feat(otopcua): bridge Akka actor logs into Serilog
...
DriverHostActor/DriverInstanceActor and cluster events log via Akka's ILoggingAdapter, which had no Serilog bridge — under the Windows service host the default StandardOutLogger output is discarded, making the driver-role actor graph invisible (this masked the data-plane diagnosis).
- Add Akka.Logger.Serilog 1.5.60 (deps satisfied by Akka 1.5.62 / Serilog 4.3.1).
- WithOtOpcUaClusterBootstrap: ConfigureLoggers(DebugLevel; ClearLoggers(); AddLogger<SerilogLogger>()) — Akka.Hosting owns logger setup, so HOCON akka.loggers alone is not honored.
- Program.cs: set static Serilog.Log.Logger from the DI root logger after Build() (AddZbSerilog registers the MEL provider but not the static logger, which the Akka SerilogLogger and the startup banner both need).
2026-06-26 06:00:05 -04:00