Commit Graph

  • 22d553afd1 docs(opcuaclient): mark plan tasks complete (T0–T2 done, live-verified) master Joseph Doherty 2026-06-13 09:37:20 -04:00
  • 9357c001b7 fix(opcuaclient): register the OpcUaClient driver factory (was always stubbed) Joseph Doherty 2026-06-13 08:20:02 -04:00
  • bc9cd464b5 docs(opcuaclient): plan — register OpcUaClient driver factory (3 tasks) Joseph Doherty 2026-06-13 08:14:04 -04:00
  • 5aa1030be9 docs(opcuaclient): design — register the OpcUaClient driver factory (fixes always-stubbed bug) Joseph Doherty 2026-06-13 08:11:41 -04:00
  • c4435e4fd6 feat(runtime): route driver values to folder-scoped equipment NodeIds (live-value delivery) Joseph Doherty 2026-06-13 06:32:38 -04:00
  • 5432d8a021 refactor(opcua): repoint Phase7Applier + VirtualTagHostActor to shared EquipmentNodeIds Joseph Doherty 2026-06-13 06:31:44 -04:00
  • da1accceff feat(runtime): carry DriverInstanceId on AttributeValuePublished (live-value routing key) Joseph Doherty 2026-06-13 06:27:52 -04:00
  • 26816fd17e feat(commons): EquipmentNodeIds — single source of truth for folder-scoped equipment NodeIds Joseph Doherty 2026-06-13 06:26:59 -04:00
  • 891f875f6a docs(live-values): Phase plan — equipment-tag live-value delivery (6 tasks) Joseph Doherty 2026-06-13 06:24:38 -04:00
  • 7e9eb5d17a docs(live-values): design — equipment-tag live-value delivery (FullName→NodeId router) Joseph Doherty 2026-06-13 06:21:40 -04:00
  • c3c5617266 docs(test): neutralize last stale 'SystemPlatform tags' comment (final-review nit) Joseph Doherty 2026-06-12 22:44:10 -04:00
  • b8277922b6 fix(config): also clean NodeAcl + release ExternalIdReservation in SystemPlatform cleanup migration Joseph Doherty 2026-06-12 22:34:13 -04:00
  • 7d25480fee docs(galaxy): neutralize remaining stale SystemPlatform/alias terminology in comments + a test name Joseph Doherty 2026-06-12 22:30:50 -04:00
  • ba42bed538 feat(config): forward-only migration deleting orphaned SystemPlatform namespace data (clean break) Joseph Doherty 2026-06-12 22:25:00 -04:00
  • dcbaf63ab1 feat(config): remove the SystemPlatform NamespaceKind (capstone) — Galaxy is Equipment-kind Joseph Doherty 2026-06-12 22:18:56 -04:00
  • 0945f19a50 feat(adminui): wire Galaxy live-browse picker into the standard TagModal Joseph Doherty 2026-06-12 22:09:22 -04:00
  • 056bfbda1b test(opcua): composer↔artifact byte-parity for a Galaxy equipment tag Joseph Doherty 2026-06-12 22:05:15 -04:00
  • 5edea52bd7 docs(galaxy): fix stale SystemPlatform/alias/Galaxy doc comments (review follow-up) Joseph Doherty 2026-06-12 22:00:52 -04:00
  • b4b7cd7d0f feat(authz): remove SystemPlatform scope + permission-trie walk (Galaxy resolves via Equipment) Joseph Doherty 2026-06-12 21:54:28 -04:00
  • 95be607a07 feat(opcua): remove SystemPlatform-mirror GalaxyTags contract end-to-end (composer+applier+artifact, byte-parity) Joseph Doherty 2026-06-12 21:45:19 -04:00
  • 5dfb797817 refactor(adminui): strip alias/relay machinery from UnsTreeService + EquipmentPage; Galaxy tags use standard TagModal Joseph Doherty 2026-06-12 21:28:13 -04:00
  • ca2698949b refactor(adminui): delete alias-tag/relay-converter files (build red until spine stripped) Joseph Doherty 2026-06-12 21:20:41 -04:00
  • e2c6c15ae0 feat(opcua): remove SystemPlatform mirror producer + Galaxy exception from Phase7Composer Joseph Doherty 2026-06-12 21:17:39 -04:00
  • 47cb5725a9 docs(galaxy): retire alias/SystemPlatform model — Galaxy tags are standard equipment tags Joseph Doherty 2026-06-12 21:17:30 -04:00
  • 499c9b9165 feat(validation): allow GalaxyMxGateway under Equipment; rename Galaxy-tag FullName check Joseph Doherty 2026-06-12 21:11:06 -04:00
  • 1c4052ee83 docs(galaxy): Phase A implementation plan (Galaxy standard driver) Joseph Doherty 2026-06-12 21:05:45 -04:00
  • 91cb907633 docs(galaxy): design — Galaxy as a standard Equipment driver Joseph Doherty 2026-06-12 20:55:08 -04:00
  • db2e4777dd fix(historian-sidecar): close active TCP client on cancel so RunAsync unwinds Joseph Doherty 2026-06-12 13:34:45 -04:00
  • 6218512365 fix(historian-sidecar): don't wedge the TCP listener when Start() bind fails Joseph Doherty 2026-06-12 13:02:22 -04:00
  • 1be06502c7 fix(historian): correct AlarmHistorian config-key refs in docs + install (review) Joseph Doherty 2026-06-12 12:25:13 -04:00
  • fcf84adbad fix(historian-client): cancellable TLS client handshake + default-fields test (review) Joseph Doherty 2026-06-12 12:13:04 -04:00
  • d4ecc9138f feat(adminui): historian TCP-connect probe + TLS form fields Joseph Doherty 2026-06-12 12:07:06 -04:00
  • 6d5fc35747 docs(historian): TCP transport Joseph Doherty 2026-06-12 12:02:50 -04:00
  • ce25581596 feat(install): historian TCP env + firewall rule Joseph Doherty 2026-06-12 12:02:26 -04:00
  • e2960515cf chore(historian): drop dead pipe package ref + stale pipe strings (review) Joseph Doherty 2026-06-12 12:02:05 -04:00
  • 72f32045a4 refactor(historian): remove named-pipe transport Joseph Doherty 2026-06-12 11:51:53 -04:00
  • 6104eaba60 test(historian-client): TCP-ify FakeSidecarServer + client tests Joseph Doherty 2026-06-12 11:46:47 -04:00
  • ac12633087 feat(historian-client): default ctor dials TCP Joseph Doherty 2026-06-12 11:37:42 -04:00
  • 706077f02f feat(historian-sidecar): TCP bootstrap + env, drop allowed-SID Joseph Doherty 2026-06-12 11:34:06 -04:00
  • 999e58c605 fix(historian-sidecar): cancel SocketException guard + version-reject log + TLS test (review) Joseph Doherty 2026-06-12 11:31:04 -04:00
  • fd4d05534e fix(historian-client): dispose TcpClient/SslStream on connect+TLS failure (review) Joseph Doherty 2026-06-12 11:30:39 -04:00
  • 6e152047eb feat(historian-client): TCP connect factory + FrameChannel rename Joseph Doherty 2026-06-12 11:21:28 -04:00
  • 7ce7505a36 feat(historian-host): bind TCP host/port/tls config Joseph Doherty 2026-06-12 11:19:46 -04:00
  • 3528702185 feat(historian-sidecar): TcpFrameServer (TCP + optional TLS) Joseph Doherty 2026-06-12 11:16:28 -04:00
  • 35ac0b8c4e feat(historian-client): add TCP/TLS options fields Joseph Doherty 2026-06-12 11:14:36 -04:00
  • eb6a71abf2 docs(historian): implementation plan for sidecar TCP transport Joseph Doherty 2026-06-12 11:10:41 -04:00
  • 3d3f8a47a9 docs(historian): design for sidecar TCP transport (replace named pipe) Joseph Doherty 2026-06-12 11:03:32 -04:00
  • c6edef0efb fix(install): assert Wonderware sidecar deploy is complete in Refresh-Services Joseph Doherty 2026-06-12 09:41:51 -04:00
  • 57355405a6 chore(security): drop dead audit suppressions; patch OpenTelemetry + Tmds.DBus CVEs Joseph Doherty 2026-06-12 09:03:42 -04:00
  • dc9abf674b fix(deps): bump MessagePack 2.5.187 -> 2.5.301 (CVE-2026-48109 / GHSA-hv8m-jj95-wg3x) Joseph Doherty 2026-06-12 08:04:04 -04:00
  • 8406349a27 chore(plan): mark alias-tag tasks T0–T10 complete Joseph Doherty 2026-06-12 07:55:54 -04:00
  • e77fd3eec0 fix(adminui): converter UI — try/catch + confirm + FleetAdmin gate on per-equipment convert (review) Joseph Doherty 2026-06-11 21:54:21 -04:00
  • 7682d185fb feat(adminui): relay->alias converter UI (per-equipment + fleet-wide /uns/convert-relays) Joseph Doherty 2026-06-11 21:49:43 -04:00
  • 299eaa461c fix(adminui): gate Galaxy picker so it doesn't clobber alias FullName on edit; refresh gateways (review) Joseph Doherty 2026-06-11 21:45:55 -04:00
  • d19271fff8 fix(adminui): converter skips name-collisions + disabled relays (review) Joseph Doherty 2026-06-11 21:44:19 -04:00
  • 2a30d7185a docs: Galaxy alias tags + relay converter (Uns.md, CLAUDE.md) Joseph Doherty 2026-06-11 21:39:12 -04:00
  • 4af27ea173 feat(adminui): AliasTagModal + Tags-tab Add-alias (Galaxy picker) Joseph Doherty 2026-06-11 21:37:04 -04:00
  • 943bc5f709 feat(adminui): ConvertRelayVirtualTagsToAliasesAsync (relay VTag -> alias Tag) Joseph Doherty 2026-06-11 21:32:43 -04:00
  • fe068652b3 fix(adminui): alias update pins invariants + LoadAliasTagAsync + null-driver guard (review) Joseph Doherty 2026-06-11 21:25:06 -04:00
  • 9f13101896 feat(validation): require TagConfig.FullName on Galaxy alias tags; reframe Tag doc Joseph Doherty 2026-06-11 21:21:32 -04:00
  • 53116bdd83 feat(adminui): CreateAliasTagAsync/UpdateAliasTagAsync + Galaxy-gateway guard Joseph Doherty 2026-06-11 21:17:45 -04:00
  • fcc73ccd2d fix(adminui): null Source for alias rows without a FullName (review nits) Joseph Doherty 2026-06-11 21:12:52 -04:00
  • bc9e83ed9f feat(composer): admit GalaxyMxGateway-backed equipment alias tags (+byte-parity) Joseph Doherty 2026-06-11 21:10:21 -04:00
  • 4b4738a891 feat(adminui): alias DTO + Galaxy gateway lookup + Source/IsAlias on tag rows Joseph Doherty 2026-06-11 21:05:02 -04:00
  • 2ba2f8a899 feat(commons): TryParseRelayBody — detect pure ctx.GetTag relay scripts Joseph Doherty 2026-06-11 20:59:10 -04:00
  • 93a9c6d3db docs(plan): Galaxy alias tag implementation plan (T0–T10) Joseph Doherty 2026-06-11 20:31:17 -04:00
  • 305023aa9f docs(design): Galaxy alias tag (UNS) — approved brainstorming design Joseph Doherty 2026-06-11 20:22:32 -04:00
  • 909e0e3664 chore(uns): mark equipment-page plan complete (live-verified + merged) Joseph Doherty 2026-06-11 15:42:38 -04:00
  • d77124b191 chore(uns): mark plan tasks T0–T10 complete (resume snapshot) Joseph Doherty 2026-06-11 15:24:30 -04:00
  • 80b19d6fc8 chore(uns): create-redirect null guard + alarm isolation test + alarm-authoring doc (final review) Joseph Doherty 2026-06-11 15:23:06 -04:00
  • a0f3f4ab89 docs(uns): document the equipment page tabs; repoint alarm-editing surface Joseph Doherty 2026-06-11 15:14:09 -04:00
  • f1c4392b0d refactor(uns): drop dead LoadEquipmentChildrenAsync + LinesForCluster; fix stale comment Joseph Doherty 2026-06-11 15:11:28 -04:00
  • 6e7127c396 feat(uns): remove standalone scripted-alarm pages + nav link (alarms now per-equipment) Joseph Doherty 2026-06-11 15:06:13 -04:00
  • f1b9e7116b fix(uns): guard ScriptedAlarmModal form rebuild against stray re-renders (code-review) Joseph Doherty 2026-06-11 15:03:43 -04:00
  • 826ffdc1a0 feat(uns): equipment is a tree leaf linking to the detail page; drop EquipmentModal Joseph Doherty 2026-06-11 15:01:10 -04:00
  • 773c073d0e feat(uns): Alarms tab + ScriptedAlarmModal on the equipment page Joseph Doherty 2026-06-11 14:53:03 -04:00
  • 1294fb6ee5 fix(uns): surface stale-row edits + dismiss modal on delete + @key rows (code-review) Joseph Doherty 2026-06-11 14:49:23 -04:00
  • 61ad5ab8cc feat(uns): wire Tags + Virtual Tags tabs on the equipment page (reuse modals) Joseph Doherty 2026-06-11 14:44:35 -04:00
  • 7fbfeca451 feat(uns): equipment detail page shell + Details tab + create-redirect Joseph Doherty 2026-06-11 14:36:48 -04:00
  • 5cae3c5b96 fix(uns): guard scripted-alarm name uniqueness on create/update (code-review) Joseph Doherty 2026-06-11 14:31:35 -04:00
  • 705ed6234f feat(uns): scripted-alarm CRUD in IUnsTreeService for the equipment Alarms tab Joseph Doherty 2026-06-11 14:25:59 -04:00
  • 7c22861598 feat(uns): per-equipment tag/virtual-tag list service methods Joseph Doherty 2026-06-11 14:19:46 -04:00
  • 7d91737dac feat(uns): carry created id on UnsMutationResult for equipment create Joseph Doherty 2026-06-11 14:16:21 -04:00
  • 1f904c4502 docs(uns): implementation plan + tasks for tabbed equipment detail page Joseph Doherty 2026-06-11 14:12:42 -04:00
  • df2a488b81 docs(uns): design for tabbed equipment detail page Joseph Doherty 2026-06-11 14:03:21 -04:00
  • 6208304a44 docs(historian): HistorizeToAveva opt-out semantics + config knobs + startup validation Joseph Doherty 2026-06-11 13:24:46 -04:00
  • 7f535c0e9d test(historian): cover non-positive DeadLetterRetentionDays validation warning Joseph Doherty 2026-06-11 13:24:46 -04:00
  • 56750e110f fix(alarms): historize the real operator for shelve/unshelve/enable/disable transitions Joseph Doherty 2026-06-11 13:14:00 -04:00
  • 5ea6e9d7d9 fix(historian): validate non-positive drain/capacity/retention knobs (review) + log prefix Joseph Doherty 2026-06-11 13:09:13 -04:00
  • f215982b93 feat(historian): drain/capacity/retention config knobs + startup config-warning validation Joseph Doherty 2026-06-11 13:04:16 -04:00
  • 61b230d79a harden(historian): nullable HistorizeToAveva (missing→historize) for rolling-restart-safe deserialize + middle-link test Joseph Doherty 2026-06-11 13:00:57 -04:00
  • c20d228384 fix(historian): volatile _backoffIndex + read _evictedCount under lock (thread-safety) Joseph Doherty 2026-06-11 12:49:44 -04:00
  • 8012509584 feat(historian): honor per-alarm HistorizeToAveva opt-out at the durable write Joseph Doherty 2026-06-11 12:48:13 -04:00
  • fa839d1dbf docs(plan): alarm historian follow-ups (pending #1-6) implementation plan Joseph Doherty 2026-06-11 12:42:54 -04:00
  • f64f7ce669 fix(alarms): historize the operator (not 'system') for CommentAdded transitions (review) Joseph Doherty 2026-06-11 11:42:56 -04:00
  • 6dbd4fb875 docs(historian): alerts-fed historization (scripted, Primary-gated, exactly-once) + config-gated Sqlite→Wonderware sink Joseph Doherty 2026-06-11 11:36:37 -04:00
  • 943c621371 feat(historian): config-gated SqliteStoreAndForward→Wonderware sink (AddAlarmHistorian) Joseph Doherty 2026-06-11 11:30:31 -04:00
  • e9355e9514 refactor(historian): gate before translate (no discarded alloc on secondary) + strengthen double-write warning (review) Joseph Doherty 2026-06-11 11:24:48 -04:00
  • bb42e5834a feat(historian): subscribe to alerts topic + translate to AlarmHistorianEvent (Primary-gated, exactly-once) Joseph Doherty 2026-06-11 11:18:26 -04:00
  • d2cc4a1222 test+docs(galaxy): verify alarm acknowledger recovers after transient fault; document alarm-client reconnect Joseph Doherty 2026-06-11 11:12:49 -04:00