Commit Graph

  • 9c5a091395 feat(vtags): decode VirtualTag Historize from artifact, byte-parity with composer (H5b, stillpending §1) Joseph Doherty 2026-06-15 10:17:08 -04:00
  • fc8121cbf3 feat(vtags): carry VirtualTag.Historize onto EquipmentVirtualTagPlan (H5a, stillpending §1) Joseph Doherty 2026-06-15 10:17:05 -04:00
  • ebf2f1dd7a fix(vtags): prune _planByVtag on child termination + crash-then-change test (H1b review follow-up) Joseph Doherty 2026-06-15 10:12:11 -04:00
  • ada01e1af8 fix(vtags): respawn equipment virtualtag child on in-place plan change (H1b, stillpending §1) Joseph Doherty 2026-06-15 10:05:29 -04:00
  • 1dc713693a fix(deploy): count removed equipment tags/vtags in RemovedNodes (H1a review follow-up) Joseph Doherty 2026-06-15 10:01:37 -04:00
  • 1e95856b00 fix(deploy): rebuild address space on changed-only deploys (H1a, stillpending §1) Joseph Doherty 2026-06-15 09:57:40 -04:00
  • 50a2fdf32d chore(plans): mark confirmed-shipped .tasks.json completed so audits don't re-flag (stillpending §7) Joseph Doherty 2026-06-15 09:52:51 -04:00
  • a9d267c91a docs(security,core): correct stale write-outcome doc + note benign DraftSnapshot/LeaderChanged residue (stillpending §9/§3) Joseph Doherty 2026-06-15 09:48:14 -04:00
  • b4af9e7f37 docs(comments): correct 7 stale 'later task/milestone' comments (stillpending §9) Joseph Doherty 2026-06-15 09:47:08 -04:00
  • 68a0f759f0 docs(plans): Phase 0+1 implementation plan for the still-pending backlog Joseph Doherty 2026-06-15 09:40:03 -04:00
  • f64be52796 docs(plans): phased completion design for the still-pending backlog Joseph Doherty 2026-06-15 09:27:06 -04:00
  • 151b7165af docs(abcip,focas): document RetireAsync one-tick overlap residual + guard Dispose Joseph Doherty 2026-06-15 06:14:44 -04:00
  • 6ba59f9d4d fix(abcip,focas): collapse alarm projection to a single poll loop (no reconnect leak) Joseph Doherty 2026-06-15 06:09:38 -04:00
  • 43b3769a1d docs(plans): add write-outcome self-correction implementation plan Joseph Doherty 2026-06-15 05:57:15 -04:00
  • 5a70cd7910 chore(deps): bump vendored MxGateway.Client/Contracts 0.1.0 -> 0.1.1 Joseph Doherty 2026-06-15 05:57:09 -04:00
  • 013882262a fix(galaxy): bound alarm-subscription handles to one (no reconnect leak) Joseph Doherty 2026-06-15 05:49:07 -04:00
  • c9643f68ba fix(runtime): restart driver no longer throws 'actor name is not unique' Joseph Doherty 2026-06-15 05:41:18 -04:00
  • aa1e21f53c docs(historian): clarify modified-value history is infra-gated (no backend modified-read path) Joseph Doherty 2026-06-15 05:15:50 -04:00
  • bea0b482d4 fix(historian): address code review on Raw HistoryRead paging Joseph Doherty 2026-06-15 05:15:07 -04:00
  • 94c3ca60fc feat(historian): server-side continuation-point paging for HistoryRead-Raw Joseph Doherty 2026-06-15 03:02:48 -04:00
  • a5c0c82661 fix(opcua): address code review on write-outcome surfacing Joseph Doherty 2026-06-15 02:45:51 -04:00
  • bb59fd4e75 feat(opcua): surface failed inbound writes to clients (fail-fast, Bad blip, audit event) Joseph Doherty 2026-06-15 02:38:57 -04:00
  • dcb0be650e feat(galaxy): debug-log native alarm feed delivery (subs + fanout) Joseph Doherty 2026-06-15 01:30:15 -04:00
  • a833d1b4aa fix(alarms): address code review — accurate reconnect comment + SubscribeAlarms drop handlers Joseph Doherty 2026-06-15 00:49:19 -04:00
  • 7f313df7a6 fix(alarms): subscribe native alarms to un-gate the IAlarmSource feed Joseph Doherty 2026-06-15 00:42:43 -04:00
  • 063d004fda docs(security): fix data-plane alarm-ack GroupToRole value (AlarmAck, not AlarmAcknowledge) Joseph Doherty 2026-06-15 00:42:32 -04:00
  • d19deb9b42 test(galaxy): readback via explicit TCS + skip unused buffered-interval RPC (review) Joseph Doherty 2026-06-14 23:32:00 -04:00
  • 622bfda27d test(galaxy): live-gw reopen + supervisory-write-persist integration smokes Joseph Doherty 2026-06-14 23:24:50 -04:00
  • fa2388eabf test(alarms): assert reconnect-dropped native alarm does not dead-letter; tighten severity doc Joseph Doherty 2026-06-14 22:56:18 -04:00
  • c03361de1b test(drivers): extract shared stub-driver harness (de-dup) Joseph Doherty 2026-06-14 22:49:26 -04:00
  • d8129e5ab7 test(alarms): fix reconnect-drop test to use mailbox-ordering approach Joseph Doherty 2026-06-14 22:48:36 -04:00
  • 49d98cba31 docs(alarms): note native-alarm severity-bucket snapping Joseph Doherty 2026-06-14 22:41:57 -04:00
  • 51cda2c744 test(alarms): assert OperatorComment flows through ForwardNativeAlarm Joseph Doherty 2026-06-14 22:41:43 -04:00
  • c8db5767ea test(alarms): guard native-alarm-during-reconnect is dropped not dead-lettered Joseph Doherty 2026-06-14 22:41:08 -04:00
  • a1d333869e docs(plans): residual-followups-cleanup plan (4 offline items; reconcile stale residuals) Joseph Doherty 2026-06-14 22:38:42 -04:00
  • cd20c3c064 docs: refresh pending.md for compaction (Phase C shipped; open-items digest) Joseph Doherty 2026-06-14 22:23:58 -04:00
  • c24abc8a97 docs(historian): mark Phase C tasks 1-6 complete (T7 live deferred) Joseph Doherty 2026-06-14 21:19:28 -04:00
  • 7eb8f4d054 docs(historian): Phase C HistoryRead guide + CLAUDE.md pointer Joseph Doherty 2026-06-14 20:27:17 -04:00
  • 83e1318425 refactor(historian): align ServerHistorianOptions with AlarmHistorian (Port default, Validate list, log context) Joseph Doherty 2026-06-14 20:23:22 -04:00
  • a6f1f4ef15 feat(historian): AddServerHistorian DI + Host wiring of IHistorianDataSource Joseph Doherty 2026-06-14 20:17:10 -04:00
  • e6ec0ad8be fix(historian): events arm sets results on bad paths + Variant.Null SourceName + test hardening Joseph Doherty 2026-06-14 20:10:16 -04:00
  • e3c0ef7b41 feat(historian): HistoryReadEvents over equipment-folder notifiers + event-field projection Joseph Doherty 2026-06-14 19:56:38 -04:00
  • 059f18bdad test(historian): multi-node HistoryRead isolation + single-lookup ServeNode + comment fix Joseph Doherty 2026-06-14 19:44:56 -04:00
  • 13fba8f8fb feat(historian): HistoryRead override (Raw/Processed/AtTime) over IHistorianDataSource Joseph Doherty 2026-06-14 19:31:39 -04:00
  • 50e1141fc2 test(historian): assert Deferred sink forwards historianTagname + doc nits Joseph Doherty 2026-06-14 19:16:23 -04:00
  • 6041dc202b feat(historian): materialise historized vars with Historizing + HistoryRead bit + NodeId->tagname map Joseph Doherty 2026-06-14 19:09:32 -04:00
  • c35c1d3734 refactor(historian): single-parse ExtractTagHistorize + review-nit tests/docs Joseph Doherty 2026-06-14 19:02:02 -04:00
  • 440929c82a feat(historian): carry isHistorized + historianTagname through EquipmentTagPlan (byte-parity) Joseph Doherty 2026-06-14 18:55:04 -04:00
  • fb906f26ac docs(historian): Phase C HistoryRead implementation plan + tasks Joseph Doherty 2026-06-14 18:48:33 -04:00
  • 5e42c1bc38 docs(historian): Phase C server-side HistoryRead design Joseph Doherty 2026-06-14 18:46:43 -04:00
  • c9a0f627ea docs(drivers): mark reconfigure-while-faulted bookkeeping task complete Joseph Doherty 2026-06-14 18:09:46 -04:00
  • 56f73e49ec docs(drivers): mark reconfigure-while-faulted Task 1 complete Joseph Doherty 2026-06-14 17:23:10 -04:00
  • 7ffe8939e7 style(drivers): clarify Reconnecting InitializeFailed no-op is generation-agnostic (code-review nit) Joseph Doherty 2026-06-14 17:19:34 -04:00
  • 751786ec8c fix(drivers): adopt corrected config via ApplyDelta while (re)connecting (#7) Joseph Doherty 2026-06-14 17:15:28 -04:00
  • 806a252f25 docs(drivers): implementation plan for reconfigure-while-faulted (#7) Joseph Doherty 2026-06-14 17:11:07 -04:00
  • 076ca025ba docs(drivers): design for adopting config mid-(re)connect (reconfigure-while-faulted #7) Joseph Doherty 2026-06-14 17:08:24 -04:00
  • f9be38430c fix(alarms): route native alarms by ConditionId (dotted FullName), not bare SourceNodeId (integration review) Joseph Doherty 2026-06-14 04:09:01 -04:00
  • 7e86fa7099 fix(alarms): normalise native TransitionKind to canonical EmissionKind vocabulary (review) Joseph Doherty 2026-06-14 03:58:46 -04:00
  • 8736fcc37c feat(alarms): Primary-gated AlarmTransitionEvent fan-out for native alarms (Phase B WS-5) Joseph Doherty 2026-06-14 03:48:41 -04:00
  • b50ef9fc2d feat(alarms): materialise a Part 9 condition for an alarm equipment tag (Phase B WS-3) Joseph Doherty 2026-06-14 03:37:51 -04:00
  • 4c56a1719b feat(alarms): DriverHostActor routes native alarm transitions to Part 9 conditions (Phase B WS-4c) Joseph Doherty 2026-06-14 03:34:25 -04:00
  • b0e83902b8 docs(alarms): native driver-alarm TagConfig schema (Phase B) Joseph Doherty 2026-06-14 03:28:55 -04:00
  • 422e5b7db2 refactor(alarms): harden ExtractTagAlarm severity parse (TryGetInt32) + trim projector prior-state (review nits) Joseph Doherty 2026-06-14 03:27:03 -04:00
  • 25c3bd16ba feat(alarms): DriverInstanceActor forwards native OnAlarmEvent to parent (Phase B WS-4b) Joseph Doherty 2026-06-14 03:24:24 -04:00
  • c1aeafaaf3 feat(alarms): NativeAlarmProjector maps transitions to condition snapshots (Phase B WS-4a) Joseph Doherty 2026-06-14 03:16:44 -04:00
  • e1ccd99ea2 feat(alarms): EquipmentTagPlan.Alarm parsed byte-parity from TagConfig (Phase B WS-2) Joseph Doherty 2026-06-14 03:12:48 -04:00
  • f44d8d1e6b feat(alarms): carry transition Kind on AlarmEventArgs; Galaxy populates it (Phase B WS-1) Joseph Doherty 2026-06-14 03:04:44 -04:00
  • a996f03b5b docs(galaxy): Phase B native-alarms implementation plan + tasks Joseph Doherty 2026-06-14 02:58:12 -04:00
  • 90096e9c00 docs(galaxy): Phase B native-alarms design (equipment-tag path) Joseph Doherty 2026-06-14 02:50:34 -04:00
  • 1d797c1c8a docs(opcua): fix stale NodeWriteRouter reference in EnsureVariable comment Joseph Doherty 2026-06-14 01:45:35 -04:00
  • c1e921de0b fix(opcua): RunContinuationsAsynchronously so revert never re-enters the write Lock Joseph Doherty 2026-06-14 01:39:47 -04:00
  • 590e497872 fix(runtime): narrow ActorNodeWriteGateway catch + drop vacuous no-actor assertion Joseph Doherty 2026-06-14 01:32:34 -04:00
  • 10efcf4517 feat(opcua): write-outcome self-correction — capture prior + compare-and-revert on failure Joseph Doherty 2026-06-14 01:30:20 -04:00
  • 526ddb6a57 feat(runtime): ActorNodeWriteGateway — Asks RouteNodeWrite, returns NodeWriteOutcome Joseph Doherty 2026-06-14 01:23:43 -04:00
  • 0f7c47a559 feat(commons): IOpcUaNodeWriteGateway + NodeWriteOutcome for write-outcome routing Joseph Doherty 2026-06-14 01:20:14 -04:00
  • 8a79cb0ec7 docs(design): write-outcome self-correction (surface real device-write status, #5) Joseph Doherty 2026-06-14 01:13:38 -04:00
  • 945c238039 docs(plans): harden-milestone-1b plan + task record Joseph Doherty 2026-06-14 00:51:05 -04:00
  • 190ef34e6f docs(security): document the GroupToRole data-plane role requirement Joseph Doherty 2026-06-14 00:45:28 -04:00
  • 97d82dda46 test(runtime): future-enum trap for AccessLevel->Writable parity Joseph Doherty 2026-06-14 00:45:00 -04:00
  • 7e405e949b fix(runtime): swallow self SubscriptionFailed too (symmetric to SubscriptionEstablished) Joseph Doherty 2026-06-14 00:42:31 -04:00
  • f77488eed9 fix(galaxy): invalidate writer handle caches on session reconnect Joseph Doherty 2026-06-14 00:39:24 -04:00
  • 42b4a923fd fix(runtime): fast-fail writes in degraded driver states + swallow self SubscriptionEstablished Joseph Doherty 2026-06-14 00:34:37 -04:00
  • 99eea0b455 test(runtime): raw-blob routing test uses a no-FullName protocol blob (genuine #4d case) Joseph Doherty 2026-06-14 00:26:10 -04:00
  • 46f559f5f9 perf(focas): cache equipment-tag parsed addresses (no per-call reparse) Joseph Doherty 2026-06-14 00:20:57 -04:00
  • 4cda275b8d fix(runtime): fast-fail RouteNodeWrite while Stale + micro-opts + raw-blob routing test Joseph Doherty 2026-06-14 00:16:47 -04:00
  • 02e37a6d68 docs(notes): track pending.md + current.md session state Joseph Doherty 2026-06-13 23:41:06 -04:00
  • f05b5d79c4 fix(galaxy): AdviseSupervisory before raw Write so writes commit Joseph Doherty 2026-06-13 22:53:59 -04:00
  • 8d8c05f595 docs(drivers): mark protocol-equipment-tag-linkage plan complete (T0–T12, live-verified) Joseph Doherty 2026-06-13 12:44:29 -04:00
  • bb5832e900 feat(server): inbound operator-write pipeline — OnWriteValue authz gate + node-write router Joseph Doherty 2026-06-13 12:02:34 -04:00
  • a23fb2b82e feat(server): equipment-tag node writability from Tag.AccessLevel (parity-safe, no migration) Joseph Doherty 2026-06-13 11:46:00 -04:00
  • f8f1027287 feat(runtime): NodeId->driver reverse routing + primary-gated RouteNodeWrite Joseph Doherty 2026-06-13 11:44:26 -04:00
  • b031a6ceef feat(s7): resolve equipment-tag refs (read + write) via EquipmentTagRefResolver Joseph Doherty 2026-06-13 11:25:31 -04:00
  • 34a42486dc feat(focas): resolve equipment-tag refs (read + write) via EquipmentTagRefResolver Joseph Doherty 2026-06-13 11:24:45 -04:00
  • 5ebf541f54 feat(twincat): resolve equipment-tag refs (read + write) via EquipmentTagRefResolver Joseph Doherty 2026-06-13 11:24:12 -04:00
  • e2ea720c08 feat(ablegacy): resolve equipment-tag refs (read + write) via EquipmentTagRefResolver Joseph Doherty 2026-06-13 11:23:42 -04:00
  • 9d49cb7bbe feat(abcip): resolve equipment-tag refs (read + write) via EquipmentTagRefResolver Joseph Doherty 2026-06-13 11:23:21 -04:00
  • 232c557985 feat(modbus): resolve equipment-tag refs (read + write) via EquipmentTagRefResolver Joseph Doherty 2026-06-13 11:12:01 -04:00
  • eaa335d779 feat(drivers): shared EquipmentTagRefResolver (by-name + parse-on-miss + cache) Joseph Doherty 2026-06-13 11:07:23 -04:00
  • 6b041c6daa docs(drivers): plan — protocol-driver equipment-tag linkage + write pipeline (13 tasks) Joseph Doherty 2026-06-13 10:51:18 -04:00
  • e58f33584f docs(drivers): design — protocol-driver equipment-tag linkage + inbound write pipeline Joseph Doherty 2026-06-13 10:45:25 -04:00