Commit Graph

  • 050164b21f chore(phase4b): mark tasks complete + record follow-ups (shipped 08a65513) Joseph Doherty 2026-06-16 20:15:37 -04:00
  • 08a6551360 docs(phase4b): Modbus driver-type canonical + Galaxy nesting + FOCAS auto-scale (managed-backend caveat) Joseph Doherty 2026-06-16 19:58:11 -04:00
  • 6855be288f feat(focas): per-axis auto-scale from cnc_getfigure figures (manual config = fallback) Joseph Doherty 2026-06-16 19:52:45 -04:00
  • a40c77de87 fix(adminui): flip remaining ModbusTcp test seeds + doc comments to Modbus (review) Joseph Doherty 2026-06-16 19:51:56 -04:00
  • bec37848d5 fix(galaxy): degrade all parent-cycle members to root (review) Joseph Doherty 2026-06-16 19:51:20 -04:00
  • 21c7645da8 feat(galaxy): nest gobject browse tree by parent_gobject_id (degrade-to-flat) Joseph Doherty 2026-06-16 19:41:26 -04:00
  • 8b4675b1a5 fix(adminui): canonicalize Modbus driver-type string on "Modbus" (was ModbusTcp) Joseph Doherty 2026-06-16 19:39:41 -04:00
  • 3fcbc70cba feat(focas): add cnc_getfigure per-axis position-figure client binding Joseph Doherty 2026-06-16 19:38:49 -04:00
  • 2b66309c15 plan(phase4b): Mac-verifiable driver gaps implementation plan + tasks.json Joseph Doherty 2026-06-16 19:23:03 -04:00
  • f90017bc9a design(phase4b): Mac-verifiable driver gaps (Modbus reconcile + Galaxy nesting + FOCAS auto-scale) Joseph Doherty 2026-06-16 19:17:19 -04:00
  • c081917a69 chore(phase8): reconcile per-cluster-scoping tasks.json (already shipped; bookkeeping was stale) Joseph Doherty 2026-06-16 18:51:49 -04:00
  • 9a28e46d6e chore(phase7): mark tasks complete (shipped 1122dcdc) Joseph Doherty 2026-06-16 18:41:30 -04:00
  • 1122dcdc57 polish(client-ui): clearer Shelve/Unshelve success messages (review) Joseph Doherty 2026-06-16 18:38:58 -04:00
  • 4675bd6139 test(client-ui): cover Confirm missing-ConditionId + Shelve/Confirm exception paths (review) Joseph Doherty 2026-06-16 18:34:30 -04:00
  • 336879990c docs(phase7): desktop client alarm Ack/Shelve/Confirm actions Joseph Doherty 2026-06-16 18:32:26 -04:00
  • fd986c3bd3 fix(client-ui): relabel Shelve dialog button to Unshelve when that kind is selected (review) Joseph Doherty 2026-06-16 18:31:32 -04:00
  • 6a61f35ac0 feat(client-ui): Shelve/Confirm context-menu items with per-item enablement Joseph Doherty 2026-06-16 18:28:19 -04:00
  • a774bb088d feat(client-ui): ConfirmAlarmWindow dialog (comment) Joseph Doherty 2026-06-16 18:25:29 -04:00
  • 60da9224bf feat(client-ui): ShelveAlarmWindow dialog (kind + duration) Joseph Doherty 2026-06-16 18:25:28 -04:00
  • 4f55d894a2 feat(client-ui): AlarmsViewModel Shelve/Confirm methods + CanShelve/CanConfirm Joseph Doherty 2026-06-16 18:23:11 -04:00
  • 8980adceb3 test(client-ui): track Shelve/Confirm calls + exceptions in FakeOpcUaClientService Joseph Doherty 2026-06-16 18:19:29 -04:00
  • 6707be2a31 docs(phase7): implementation plan + task persistence (8 tasks) Joseph Doherty 2026-06-16 17:51:56 -04:00
  • 573728b58b docs(phase7): design — Client.UI alarm Ack/Shelve/Confirm via context menu Joseph Doherty 2026-06-16 17:47:25 -04:00
  • ad3ec9d97e chore(phase6): mark tasks complete + record live /run results and follow-ups Joseph Doherty 2026-06-16 17:32:12 -04:00
  • 23f353e79b test(adminui): close Phase 6 review test-gaps + Enterprise-delete warning Joseph Doherty 2026-06-16 17:10:40 -04:00
  • cbaf1c39ce docs(phase6): AdminUI editors, pickers, deletes, new-script Joseph Doherty 2026-06-16 17:08:08 -04:00
  • 68f9eef62d fix(adminui): preserve historize on Galaxy re-pick + clear stale script-create error (review) Joseph Doherty 2026-06-16 17:03:38 -04:00
  • 069a5f3165 feat(adminui): Galaxy picker pre-fills native-alarm fields from IsAlarm Joseph Doherty 2026-06-16 16:55:05 -04:00
  • 9a8b8ff6f6 feat(adminui): Build-address pickers in the protocol-driver Tag editors Joseph Doherty 2026-06-16 16:54:29 -04:00
  • c00a547191 feat(adminui): isHistorized + historianTagname as first-class Tag fields Joseph Doherty 2026-06-16 16:44:46 -04:00
  • c98625fd9f feat(adminui): create-new-script from the inline virtual-tag panel Joseph Doherty 2026-06-16 16:44:14 -04:00
  • 526eebb3bb feat(adminui): UNS-tree delete for Cluster + Enterprise (refuse-if-children, no rowversion) Joseph Doherty 2026-06-16 16:35:07 -04:00
  • 6a8020e7e7 feat(adminui): native-alarm HistorizeToAveva opt-out Joseph Doherty 2026-06-16 16:27:31 -04:00
  • 72d414ada7 feat(adminui): typed TagConfig editors for OpcUaClient + Historian Joseph Doherty 2026-06-16 16:25:19 -04:00
  • 39755d717d docs(phase6): implementation plan + task persistence (10 tasks, execution deferred to post-compaction) Joseph Doherty 2026-06-16 16:11:42 -04:00
  • dbff29dddf docs(phase6): design — AdminUI typed editors, pickers & UX (destaled scope, #7 deferred) Joseph Doherty 2026-06-16 16:09:06 -04:00
  • 156aa900ee chore(phase5): mark task persistence completed (merged 1164d423) Joseph Doherty 2026-06-16 07:35:17 -04:00
  • 1164d423b6 fix(probe): Galaxy gRPC ping — drop invalid Retry, treat MxGatewayAuth exceptions as reachable (live /run) Joseph Doherty 2026-06-16 07:32:59 -04:00
  • af280af842 docs(phase5): correct FOCAS probe binding — direct DllImport, not WireFocasClient (integration review) Joseph Doherty 2026-06-16 07:12:48 -04:00
  • 961b2b558d docs(phase5): real Test-Connect handshakes per driver + degrade semantics Joseph Doherty 2026-06-16 07:06:47 -04:00
  • 5df3c73204 fix(probe): bound AbLegacy handshake by timeout CTS + stop sw; correct FOCAS timeout comment (code-review) Joseph Doherty 2026-06-16 07:03:55 -04:00
  • 9bfbbb0fd8 fix(probe): bound OpcUaClient/AbCip handshakes by timeout CTS; IPv4 preflight; stop sw (code-review) Joseph Doherty 2026-06-16 06:56:16 -04:00
  • 2d688c2a6d feat(probe): Galaxy Test-Connect does a gRPC ping (auth-rejection counts as reachable) Joseph Doherty 2026-06-16 06:48:40 -04:00
  • b663ae6eff feat(probe): TwinCAT Test-Connect does an ADS ReadState (degrade-guarded) Joseph Doherty 2026-06-16 06:48:22 -04:00
  • 5ed0276ffb feat(probe): FOCAS Test-Connect attempts a cnc_allclibhndl3 handshake (degrade-guarded) Joseph Doherty 2026-06-16 06:45:19 -04:00
  • 21f3e8feab feat(probe): AbLegacy Test-Connect opens a real PCCC session (libplctag init) Joseph Doherty 2026-06-16 06:44:15 -04:00
  • 0c08b152c2 feat(probe): AbCip Test-Connect opens a real CIP session (libplctag init) Joseph Doherty 2026-06-16 06:39:46 -04:00
  • 957a63cfdb feat(probe): OpcUaClient Test-Connect does a GetEndpoints discovery handshake Joseph Doherty 2026-06-16 06:39:27 -04:00
  • 9a8336ff6e feat(probe): S7 Test-Connect does a real ISO-on-TCP + S7 setup handshake Joseph Doherty 2026-06-16 06:38:51 -04:00
  • 9b909002be feat(probe): Modbus Test-Connect does a real FC03 handshake Joseph Doherty 2026-06-16 06:36:48 -04:00
  • 2f7c6bf963 docs(phase5): implementation plan + task persistence (8 probe handshakes) Joseph Doherty 2026-06-16 06:32:15 -04:00
  • 1f2d32ac1e docs(phase5): design — Test-Connect protocol handshakes (all 8 probes, best-effort) Joseph Doherty 2026-06-16 06:28:21 -04:00
  • 050f5c4b60 docs(historian): Total aggregate is server-side OPC UA only, not the bundled CLI (integration review) Joseph Doherty 2026-06-16 05:55:18 -04:00
  • f9b38c0a61 docs(phase4): Modbus Int64/UInt64, FOCAS fail-fast+scaling, Historian Total+dead-letter cap Joseph Doherty 2026-06-16 05:47:04 -04:00
  • 88d9e3b1a8 docs(focas): correct stale LastFixedSnapshots comment after double widening (code-review) Joseph Doherty 2026-06-16 05:42:38 -04:00
  • 4973075291 feat(focas): scale axis positions by 10^PositionDecimalPlaces (config-supplied) Joseph Doherty 2026-06-16 05:32:36 -04:00
  • fcb3801415 fix(historian): dead-letter poison events after maxAttempts (finding 002) Joseph Doherty 2026-06-16 05:25:43 -04:00
  • 5e27b5f708 feat(historian): support Total aggregate (client-side Average x interval-seconds) Joseph Doherty 2026-06-16 05:24:56 -04:00
  • 5c5aaef609 fix(focas): fail-fast at init on unimplemented backend (operator footgun) Joseph Doherty 2026-06-16 05:24:41 -04:00
  • bd8fee610b fix(modbus): surface Int64/UInt64 node DataType (Driver.Modbus-007) Joseph Doherty 2026-06-16 05:23:47 -04:00
  • 97c087f2af docs(phase4): implementation plan + tasks.json (5 data-type tier tasks) Joseph Doherty 2026-06-16 05:21:00 -04:00
  • 57d9f1b38e docs(phase4): data-type tier design — Modbus Int64/UInt64 node type, FOCAS fail-fast+scaling, Historian Total+dead-letter (S7+arrays deferred) Joseph Doherty 2026-06-16 05:18:19 -04:00
  • 7eeb9fb0f5 docs(alarms): note native ack during reconnect is best-effort (integration review) Joseph Doherty 2026-06-15 15:09:58 -04:00
  • 8899d6e091 test(galaxy): assert current Write/Subscribe guard text (PR 4.4/4.W refs removed in Phase 0 b4af9e7f) Joseph Doherty 2026-06-15 15:03:38 -04:00
  • db22c2b19a docs(alarms): OPC UA Enable/Disable wired + native-ack→AVEVA with principal + HistoryUpdate permission bit Joseph Doherty 2026-06-15 14:59:10 -04:00
  • 30315185a3 feat(alarms): wire NativeAlarmAckRouter to DriverHostActor in host DI [H6e] Joseph Doherty 2026-06-15 14:54:12 -04:00
  • 93d9160dae feat(alarms): DriverHostActor routes native-condition acks to the owning driver [H6d] Joseph Doherty 2026-06-15 14:46:00 -04:00
  • 87dd65b97a test(alarms): native ack wrong-role deny + tidy NativeAlarmAck doc (code-review) Joseph Doherty 2026-06-15 14:39:26 -04:00
  • a6d9de091b feat(alarms): native condition Acknowledge routes to NativeAlarmAckRouter with principal [H6c] Joseph Doherty 2026-06-15 14:33:58 -04:00
  • be6858baa1 fix(alarms): OnEnableDisable native-check via lock-guarded IsNativeAlarmNode + unstale AlarmCommand doc (code-review) Joseph Doherty 2026-06-15 14:30:17 -04:00
  • 328bd1b9ee feat(alarms): wire OnEnableDisable over OPC UA (AlarmAck-gated; native→BadNotSupported) [H4] Joseph Doherty 2026-06-15 14:24:19 -04:00
  • 226587d817 test(alarms): cover isNative rebuild/kind-flip lifecycle + Phase7Applier call-site (code-review) Joseph Doherty 2026-06-15 14:20:20 -04:00
  • 2423edf232 test(alarms): assert Galaxy ack null-OperatorUser falls back to empty (code-review) Joseph Doherty 2026-06-15 14:18:57 -04:00
  • 418663b359 feat(alarms): thread isNative through MaterialiseAlarmCondition; node manager tracks native conditions [H6a] Joseph Doherty 2026-06-15 14:13:30 -04:00
  • ed941c51da feat(alarms): AlarmAcknowledgeRequest carries OperatorUser; Galaxy/ScriptedAlarmSource honor it [H6b] Joseph Doherty 2026-06-15 14:11:40 -04:00
  • c236263e8d fix(authz): give HistoryUpdate its own NodePermissions bit (was aliased to HistoryRead) [H2] Joseph Doherty 2026-06-15 14:09:35 -04:00
  • 6ab3d8630b docs(alarms): Phase 3 implementation plan + tasks (H4 + H2-bit + H6) Joseph Doherty 2026-06-15 14:05:00 -04:00
  • 40b883effe docs(alarms): Phase 3 design — OPC UA standards completeness (H4 Enable/Disable + H2 HistoryUpdate bit + H6 native-ack→AVEVA) Joseph Doherty 2026-06-15 13:59:28 -04:00
  • 4af8e65af1 fix(redundancy): PeerProbeSupervisor explicitly ignores co-mingled OpcUaProbeResult (integration review) Joseph Doherty 2026-06-15 13:40:16 -04:00
  • 4c78dcd358 feat(redundancy): wire dbHealth into OpcUaPublishActor + spawn PeerProbeSupervisor per node Joseph Doherty 2026-06-15 13:33:34 -04:00
  • 393b746d9b docs(redundancy): sync component table with the wired calculator + PeerProbeSupervisor Joseph Doherty 2026-06-15 13:30:55 -04:00
  • 5a064e086d test(redundancy): lock in stale-Terminated guard + clarify OnTerminated (code-review) Joseph Doherty 2026-06-15 13:29:58 -04:00
  • 70e6d3d2c0 docs(redundancy): ServiceLevelCalculator is wired into the live publish path Joseph Doherty 2026-06-15 13:26:34 -04:00
  • f41e957e07 feat(redundancy): PeerProbeSupervisor maintains one peer OPC UA probe per driver peer Joseph Doherty 2026-06-15 13:22:38 -04:00
  • 37b32a5623 feat(redundancy): periodic HealthTick refreshes DB reachability via Ask/PipeTo Joseph Doherty 2026-06-15 13:15:26 -04:00
  • 5382eea9b5 test(redundancy): cover stale-probe-not-demoted branch + make _probeFreshnessWindow readonly (code-review) Joseph Doherty 2026-06-15 13:11:01 -04:00
  • cf278035d2 feat(redundancy): OpcUaProbeOk from peer-probes-me with freshness debounce Joseph Doherty 2026-06-15 13:04:41 -04:00
  • a9ff1a64b2 fix(redundancy): always publish first ServiceLevel (even 0) + log SafeSelfStatus failures (code-review) Joseph Doherty 2026-06-15 13:00:25 -04:00
  • 3e609a2b19 feat(redundancy): OpcUaPublishActor computes ServiceLevel via calculator (DB+stale+leader; legacy seam) Joseph Doherty 2026-06-15 12:51:32 -04:00
  • ff0f62db38 refactor(redundancy): move ServiceLevelCalculator to Core.Cluster (shared, Runtime-reachable) Joseph Doherty 2026-06-15 12:45:17 -04:00
  • 7605f4d8fd docs(redundancy): Phase 2 implementation plan + tasks (H3 ServiceLevel wiring) Joseph Doherty 2026-06-15 12:41:51 -04:00
  • 0528353315 docs(redundancy): Phase 2 design — health-aware ServiceLevel (H3) Joseph Doherty 2026-06-15 12:33:09 -04:00
  • 4bd7180e7f fix(docker-dev): stop seeding retired SystemPlatform namespace Joseph Doherty 2026-06-15 12:17:02 -04:00
  • 907005d2d2 docs(claude): note local docker-dev rig has login disabled — run live /run verification directly, don't wait for sign-in Joseph Doherty 2026-06-15 11:50:55 -04:00
  • c6a543d1b6 docs(vtags): note rename-respawn transient + write-side-only historize (integration review) Joseph Doherty 2026-06-15 10:50:08 -04:00
  • aaa5d8b851 docs(vtags): document runtime Historize honoring + infra-gated durable sink (Phase 1 H5) Joseph Doherty 2026-06-15 10:43:29 -04:00
  • 4501f12669 feat(vtags): wire IHistoryWriter through DriverHostActor (Null default; durable sink infra-gated) (H5d, stillpending §1) Joseph Doherty 2026-06-15 10:38:49 -04:00
  • 2f30c54dc1 test(vtags): thread-safe CapturingHistoryWriter + drop redundant wait (H5c review follow-up) Joseph Doherty 2026-06-15 10:33:14 -04:00
  • 0c6d4c5491 feat(vtags): forward historized vtag results to IHistoryWriter (H5c, stillpending §1) Joseph Doherty 2026-06-15 10:26:25 -04:00
  • 83d3b9f7be test(vtags): planner detects Historize-only toggle as a change + doc nit (H5a review follow-up) Joseph Doherty 2026-06-15 10:21:31 -04:00