dohertj2 dohertj2
  • Joined on 2026-02-20
dohertj2 pushed to main at dohertj2/3yearplan 2026-04-17 09:56:10 -04:00
9b2acfe699 Add OtOpcUa implementation corrections (2026-04-17) capturing mismatches between the otopcua-handoff and the v2 design work in lmxopcua/docs/v2/: 2 framing inaccuracies (native-OPC-UA-needs-no-driver, single-endpoint-per-cluster), 3 missing constraints (namespace ACLs not yet planned in the data path, schemas-repo dependencies blocking equipment-class templates, per-node ApplicationUri trust-pinning as a pre-cutover certificate-distribution step), 6 architectural decisions to revisit (driver list committed pre-survey, Tier A/B/C process-isolation model with Galaxy + FOCAS out-of-process, Polly v8+ resilience, 5-identifier equipment model with MachineCode/ZTag/SAPID alongside UUID, missing tier 1/2/3 consumer cutover plan, per-building cluster pattern interactions at Warsaw), 4 resolved TBDs (pilot class = FANUC CNC, schemas-repo format = JSON Schema, ACL location = central config DB co-located with topology, enterprise shortname still unresolved), and 4 new TBDs (UUID-generation authority, System Platform IO Aveva-pattern validation as Year 1/2 research, multi-cluster site addressing at Warsaw, cluster-endpoint mental model). Format follows the handoff's Sending-Corrections-Back protocol (what plan says / what was found / what plan should say).
dohertj2 pushed to main at dohertj2/3yearplan 2026-04-17 09:30:24 -04:00
8428b7c186 Fix ScadaBridge accuracy per design repo review
dohertj2 pushed to main at dohertj2/3yearplan 2026-04-17 09:21:26 -04:00
fc3e19fde1 Add OtOpcUa implementation handoff document
dohertj2 pushed to v2 at dohertj2/lmxopcua 2026-04-17 09:21:09 -04:00
449bc454b7 Ignore .claude/ so per-developer Claude Code settings, runtime lock files (scheduled_tasks.lock), and background-agent transcripts stop appearing in git status — these are local IDE state, not project artifacts.
dohertj2 created branch v2 in dohertj2/lmxopcua 2026-04-17 09:19:22 -04:00
dohertj2 pushed to v2 at dohertj2/lmxopcua 2026-04-17 09:19:22 -04:00
a1e79cdb06 Draft v2 multi-driver planning docs (docs/v2/) so Phase 0–5 work has a complete reference: rename to OtOpcUa, migrate to .NET 10 x64 (Galaxy stays .NET 4.8 x86 out-of-process), add seven new drivers behind composable capability interfaces (Modbus TCP / DL205, AB CIP, AB Legacy, S7, TwinCAT, FOCAS, OPC UA Client), introduce a central MSSQL config DB with cluster-scoped immutable generations and per-node credential binding, deploy as two-node site clusters with non-transparent redundancy and minimal per-node overrides, classify drivers by stability tier (A pure-managed / B wrapped-native / C out-of-process Windows service) with Tier C deep dives for both Galaxy and FOCAS, define per-driver test data sources (libplctag ab_server, Snap7, NModbus in-proc, TwinCAT XAR VM, FOCAS TCP stub plus native FaultShim) plus a 6-axis cross-driver test matrix, and ship a Blazor Server admin UI mirroring ScadaLink CentralUI's Bootstrap 5 / LDAP cookie auth / dark-sidebar look-and-feel — 106 numbered decisions across six docs (plan.md, driver-specs.md, driver-stability.md, test-data-sources.md, config-db-schema.md, admin-ui.md), DRAFT only and intentionally not yet wired to code.
dohertj2 pushed to main at dohertj2/3yearplan 2026-04-17 09:15:35 -04:00
d89c23a659 Add ScadaBridge design repo link (repo name: scadalink-design)
dohertj2 pushed to main at dohertj2/3yearplan 2026-04-17 09:15:02 -04:00
f46a9da0d8 Add links document with LmxOpcUa repo reference
dohertj2 pushed to main at dohertj2/3yearplan 2026-04-17 09:13:52 -04:00
fcd8d24d60 Add README with plan overview, architecture, and document index
dohertj2 created branch main in dohertj2/3yearplan 2026-04-17 09:12:43 -04:00
dohertj2 pushed to main at dohertj2/3yearplan 2026-04-17 09:12:43 -04:00
ec1dfe59e4 Initial commit: 3-year shopfloor IT/OT transformation plan
dohertj2 created repository dohertj2/3yearplan 2026-04-17 09:11:32 -04:00
dohertj2 pushed to master at dohertj2/lmxopcua 2026-04-16 00:40:41 -04:00
bc282b6788 Add Galaxy platform scope filter so multi-node deployments can restrict the OPC UA address space to only objects hosted by the local platform, reducing memory footprint and MXAccess subscription count from the full Galaxy (49 objects / 4206 attributes) down to the local subtree (3 objects / 386 attributes on the dev Galaxy).
dohertj2 pushed to master at dohertj2/lmxopcua 2026-04-14 00:49:33 -04:00
c76ab8fdee Close all four stability-review 2026-04-13 findings so a failed runtime probe subscription can no longer leave a phantom entry that Tick() flips to Stopped and fans out false BadOutOfService quality across a host's subtree, a silently-failed dashboard bind no longer lets the service advertise a successful start while an operator-visible endpoint is dead, the seven sync-over-async sites in LmxNodeManager (rebuild probe sync, Read, Write, four HistoryRead overrides) can no longer park the OPC UA stack thread indefinitely on a hung backend, and alarm auto-subscribe + transferred-subscription restore no longer race shutdown as untracked fire-and-forget tasks.
dohertj2 pushed to master at dohertj2/lmxopcua 2026-04-13 23:23:50 -04:00
731092595f Stop MxAccess from overwriting Bad quality on stopped-host variables: suppress pending data changes at dispatch, guard cross-host clear from wiping sibling state, and silence the Unknown→Running startup callback so recovering DevPlatform can no longer reset variables that a still-stopped DevAppEngine marked Bad.
dohertj2 pushed to master at dohertj2/lmxopcua 2026-04-13 17:08:38 -04:00
4b209f64bb Expose per-host runtime status as synthetic OPC UA variables so clients can observe Platform/Engine ScanState transitions without the status dashboard
dohertj2 pushed to master at dohertj2/lmxopcua 2026-04-13 16:37:56 -04:00
0003984c1a Document the Galaxy runtime status feature across the architecture guides so operators and future maintainers can find probe machinery, config fields, dashboard panel, and HealthCheck Rule 2e without having to dig through runtimestatus.md or service_info.md
dohertj2 pushed to master at dohertj2/lmxopcua 2026-04-13 16:25:38 -04:00
f2ea751e2b Document the Galaxy runtime status deploy so operators can reconstruct the stop/start verification sequence, the two bugs found in-flight, and the phase-2 client-freeze decision gate without having to dig through the plan file or chat transcript
dohertj2 pushed to master at dohertj2/lmxopcua 2026-04-13 16:21:27 -04:00
98ed6bd47b Stop OPC UA Read requests from serving stale Good-quality cached values while a Galaxy runtime host is Stopped, and defer probe-transition callbacks through a dispatch-thread queue so MarkHostVariablesBadQuality can no longer deadlock against worker threads waiting on the MxAccess STA thread
dohertj2 pushed to master at dohertj2/lmxopcua 2026-04-13 15:42:11 -04:00
9d49cdcc58 Track Galaxy Platform and AppEngine runtime state via ScanState probes and proactively invalidate descendant variable quality on Stopped transitions so operators can detect a stopped runtime host before downstream clients read stale data and so the bridge delivers a uniform bad-quality signal instead of relying on MxAccess per-tag fan-out