This website requires JavaScript.
b8ac7e35e6
test(cluster): self-form fallback — lone-seed forms, disabled waits, site-node guard
Joseph Doherty
2026-07-22 06:08:28 -04:00
9ded86342e
feat(cluster): InitJoin self-form fallback armed via Akka.Hosting startup task
Joseph Doherty
2026-07-22 06:06:31 -04:00
979dc102dd
feat(cluster): SelfFormAfter option (bootstrap self-form fallback window)
Joseph Doherty
2026-07-22 06:05:34 -04:00
8e195263f6
docs(claude): record the two redundancy corrections in the project instructions
Joseph Doherty
2026-07-21 19:05:32 -04:00
0de1352e55
fix(deps): pin System.Security.Cryptography.Xml 10.0.10 — fresh restores were red
Joseph Doherty
2026-07-21 18:59:48 -04:00
84c6524edc
docs(mesh): record phases 0a/0b as done and plan phase 1
Joseph Doherty
2026-07-21 18:46:10 -04:00
b2d19a1730
fix(tests): repair the DriverTypeNames guard, and stop MSBuild hoarding worker nodes
Joseph Doherty
2026-07-21 18:42:34 -04:00
50b55ee4b9
fix(redundancy): elect the Primary by cluster age, not by address
Joseph Doherty
2026-07-21 18:39:07 -04:00
2964361a6f
fix(cluster): auto-down downing strategy — a two-node pair could not survive an oldest-node crash
Joseph Doherty
2026-07-21 18:32:42 -04:00
c6fb8bb0ad
docs(design): correct 6.2 — the keep-oldest gap is closed upstream and live here
Joseph Doherty
2026-07-21 14:16:18 -04:00
8838e92d0a
fix(tests): StopNodeBAsync also has to stop the node, not just dispose it
Joseph Doherty
2026-07-21 10:52:57 -04:00
835fc08c3f
fix(tests): stop the integration host from ballooning to 30 GB
Joseph Doherty
2026-07-21 10:35:35 -04:00
06b5d81bfb
Merge feat/localdb-phase2: alarm store-and-forward on LocalDb + live-gate fixes
Joseph Doherty
2026-07-21 10:17:45 -04:00
4caaa11e9e
docs(design): fix two staleness artefacts the settled decisions introduced
Joseph Doherty
2026-07-21 10:09:10 -04:00
fe12ed9d34
docs(design): settle the three open questions on the per-cluster mesh
Joseph Doherty
2026-07-21 10:07:00 -04:00
f862804a35
docs(design): per-cluster Akka mesh — separate 2-node mesh per application Cluster
Joseph Doherty
2026-07-21 06:46:17 -04:00
ad385eb70f
docs(redundancy): record the per-Akka-cluster role-election limitation
Joseph Doherty
2026-07-21 06:18:57 -04:00
f9f1b8fcee
fix(localdb): phase-2 live gate — 4 production defects found and fixed
Joseph Doherty
2026-07-21 06:13:01 -04:00
2e4ccf7fe9
chore(localdb): phase-2 DoD sweep
Joseph Doherty
2026-07-21 05:03:57 -04:00
4480a7d755
docs(localdb): record deviations D-6 and D-7 in the phase-2 recon
Joseph Doherty
2026-07-21 04:47:35 -04:00
f76d1f91e5
docs+chore(localdb): phase-2 rig config + docs
Joseph Doherty
2026-07-21 04:43:37 -04:00
271fcc4e15
test(localdb): alarm S&F convergence scenarios
Joseph Doherty
2026-07-21 04:39:32 -04:00
af545efdf5
feat(localdb): one-time alarm-historian.db migrator
Joseph Doherty
2026-07-21 04:31:10 -04:00
71379816e7
feat(localdb): alarm S&F on LocalDb with primary-gated drain (cutover)
Joseph Doherty
2026-07-21 04:13:00 -04:00
8a9cb40a72
feat(localdb): alarm_sf_events replicated table
Joseph Doherty
2026-07-21 03:58:50 -04:00
124de57e6f
docs(localdb): phase-2 recon findings
Joseph Doherty
2026-07-21 03:56:06 -04:00
2e46d0544e
Merge docs/phase2-stop-condition: Phase 2 Task 0 STOP condition resolved (does not fire)
Joseph Doherty
2026-07-21 03:46:56 -04:00
f2049a31d0
docs(localdb-phase2): pre-answer Task 0's STOP condition — it does not fire
Joseph Doherty
2026-07-21 03:46:56 -04:00
d218282cd6
Merge docs/track-deferred-items: track deferred work as issues; fix stale limitation
Joseph Doherty
2026-07-21 03:37:26 -04:00
5ebf9876a5
docs: file Gitea issues for every deferred item; correct a stale limitation
Joseph Doherty
2026-07-21 03:37:25 -04:00
7808faa7f6
Merge fix/486: fail the apply when the deployment artifact could not be read
Joseph Doherty
2026-07-21 03:27:58 -04:00
689fc06e85
docs(486): live-gate the failed-apply fix on docker-dev
Joseph Doherty
2026-07-21 03:27:54 -04:00
ef41a43102
fix(drivers): fail the apply when the artifact could not be read (#486 )
Joseph Doherty
2026-07-21 03:22:40 -04:00
5627d325eb
Merge docs/485-live-gate: live verification of both #485 fixes
Joseph Doherty
2026-07-21 03:02:07 -04:00
e4397aa84e
docs(485): live-gate both #485 fixes on docker-dev
Joseph Doherty
2026-07-21 03:02:02 -04:00
5aad1e33de
Merge fix/485 driver-side: keep drivers + subscriptions when an artifact reads back empty
Joseph Doherty
2026-07-21 02:40:18 -04:00
b0c031f09f
fix(drivers): don't tear down field I/O when a deploy's artifact reads back empty (#485 )
Joseph Doherty
2026-07-21 02:40:14 -04:00
c7f5b9cfa3
Merge fix/485: hold the last-known-good address space when a deploy's artifact cannot be read
Joseph Doherty
2026-07-21 02:29:43 -04:00
4b0be1335e
fix(opcua): hold last-known-good when a deploy's artifact cannot be read (#485 )
Joseph Doherty
2026-07-21 02:29:39 -04:00
5fdb5a5a5e
Merge fix/localdb-phase1-followups: close both LocalDb Phase 1 live-gate follow-ups
Joseph Doherty
2026-07-21 02:17:51 -04:00
09df440675
docs(localdb): link the live gate's unrelated finding to issue #485
Joseph Doherty
2026-07-21 02:17:32 -04:00
f587e7972e
docs(localdb): live-gate the two Phase 1 follow-ups; pin LocalDb 0.1.3
Joseph Doherty
2026-07-21 02:14:00 -04:00
232bff5df7
fix(localdb): close both Phase 1 live-gate follow-ups
Joseph Doherty
2026-07-21 01:27:02 -04:00
c957db52e2
Merge feat/localdb-phase1: LocalDb Phase 1 pair-local config cache + boot-from-cache + optional replication
Joseph Doherty
2026-07-21 01:02:52 -04:00
ebc5fc6742
chore(localdb): record live-gate results in tasks.json
Joseph Doherty
2026-07-20 23:15:21 -04:00
41c36064dd
docs(localdb): phase-1 live-gate evidence (8/8 pass; 4 defects fixed, 2 limitations)
Joseph Doherty
2026-07-20 23:10:44 -04:00
c6a9f93a0c
fix(localdb): re-cache the artifact on RestoreApplied so a wiped node self-heals
Joseph Doherty
2026-07-20 22:56:23 -04:00
9137cb41eb
fix(localdb): materialise the address space from the cached blob on boot-from-cache
Joseph Doherty
2026-07-20 22:38:54 -04:00
ce9fa07ff8
fix(localdb): re-bind ASPNETCORE_HTTP_PORTS surface, not just ASPNETCORE_URLS
Joseph Doherty
2026-07-20 22:25:31 -04:00
4b2f0e6e15
fix(localdb): map ZB.MOM.WW.LocalDb* to the gitea feed in packageSourceMapping
Joseph Doherty
2026-07-20 22:16:16 -04:00
c08762db1b
chore(localdb): phase-1 DoD sweep
Joseph Doherty
2026-07-20 22:11:02 -04:00
c834d89ae7
docs(localdb): phase-1 runbook + redundancy/config docs
Joseph Doherty
2026-07-20 22:06:58 -04:00
7676ab93c4
chore(localdb): rig config — consolidated path everywhere, replication on the site-a pair
Joseph Doherty
2026-07-20 22:04:28 -04:00
afa5be713a
test(localdb): 2-node convergence harness + scenarios
Joseph Doherty
2026-07-20 22:02:03 -04:00
5a21be0a62
test(localdb): DI pins over the real host composition methods
Joseph Doherty
2026-07-20 21:51:25 -04:00
b350fba233
feat(localdb): replication health check + meter export
Joseph Doherty
2026-07-20 21:48:47 -04:00
abe10dbbd7
docs(localdb): phase-1 execution progress / resume state (tasks 0-9 done)
Joseph Doherty
2026-07-20 21:45:35 -04:00
a27eff3298
feat(localdb): boot from the pair-local artifact cache when central SQL is unreachable
Joseph Doherty
2026-07-20 11:12:19 -04:00
1becf59168
feat(localdb): DriverHostActor stores applied artifacts in the pair-local cache
Joseph Doherty
2026-07-20 11:06:57 -04:00
a38a52b831
feat(localdb): chunked deployment-artifact cache over ILocalDb
Joseph Doherty
2026-07-20 10:58:27 -04:00
2bae1b4c9f
refactor(localdb): delete the dormant LiteDB LocalCache (superseded by ZB.MOM.WW.LocalDb)
Joseph Doherty
2026-07-20 10:46:07 -04:00
e771a11a30
fix(localdb): rename Runtime.Deployment namespace to Runtime.DeploymentCache
Joseph Doherty
2026-07-20 10:42:22 -04:00
b9ddf20edd
feat(localdb): dedicated h2c listener + MapZbLocalDbSync gated on LocalDb:SyncListenPort
Joseph Doherty
2026-07-20 10:39:34 -04:00
6aff9a8332
feat(localdb): wire AddOtOpcUaLocalDb into the driver role
Joseph Doherty
2026-07-20 10:35:02 -04:00
3d29be834e
feat(localdb): fail-closed bearer interceptor for the sync endpoint
Joseph Doherty
2026-07-20 10:28:39 -04:00
3b65c24bfb
feat(localdb): deployment-cache schema + OnReady registration
Joseph Doherty
2026-07-20 10:28:39 -04:00
44255fcb91
build(localdb): reference ZB.MOM.WW.LocalDb 0.1.1 + Grpc.AspNetCore
Joseph Doherty
2026-07-20 10:21:47 -04:00
42f8550716
docs(localdb): phase-1 recon findings
Joseph Doherty
2026-07-20 10:17:40 -04:00
1adaa2fc01
chore(auth): bump ZB.MOM.WW.Auth 0.1.1 -> 0.1.5 (family alignment) (#484 )
dohertj2
2026-07-20 06:06:10 -04:00
a5eac3ec78
chore(auth): bump ZB.MOM.WW.Auth 0.1.1 -> 0.1.5
chore/auth-0.1.5
Joseph Doherty
2026-07-20 06:03:10 -04:00
be87ddeb0b
chore(secrets): bump to Secrets 0.2.3 - visible delete modal (scadaproj#2)
Joseph Doherty
2026-07-19 01:22:10 -04:00
5f72ff851d
fix(adminui): make /admin/secrets interactive - wrap the Secrets.Ui page with a render mode (#483 )
Joseph Doherty
2026-07-19 00:22:23 -04:00
c878fbbd03
feat(secrets): enable Akka clustered secret replication on the docker-dev rig
Joseph Doherty
2026-07-18 16:00:14 -04:00
2254ae3dea
fix(secrets): consume Secrets 0.2.2 - clustered-secrets DI deadlock fixed upstream
Joseph Doherty
2026-07-18 15:03:35 -04:00
1ccc237cb6
docs(test): record why these assert descriptors, not a built provider
feat/secrets-0.2.0
Joseph Doherty
2026-07-18 12:19:50 -04:00
b3d1a26f38
fix(secrets): consume Secrets 0.2.1 - Akka replication was inert in 0.2.0
Joseph Doherty
2026-07-18 12:12:02 -04:00
3336ec08c7
feat(secrets): opt-in Akka cluster secret replication (default OFF; upstream blocker documented)
Joseph Doherty
2026-07-18 11:15:03 -04:00
e27c19c49d
feat(secrets): add ZB.MOM.WW.Secrets.Replicator.AkkaDotNet 0.2.0 package reference
Joseph Doherty
2026-07-18 05:35:12 -04:00
f347762350
chore(secrets): bump ZB.MOM.WW.Secrets 0.1.2 -> 0.2.0
Joseph Doherty
2026-07-18 05:11:37 -04:00
2cae4c8f01
Merge pull request 'feat(alarms): scripted condition Quality from worst-of-input tag quality (#478 )' (#480 ) from feat/scripted-alarm-quality-478 into master
dohertj2
2026-07-17 16:08:06 -04:00
043e237dba
docs(alarms): state #478 coverage boundary + file Layer-4 comms-loss follow-up (#481 )
Joseph Doherty
2026-07-17 16:07:55 -04:00
8c5e2be92e
feat(alarms): scripted condition Quality from worst-of-input tag quality (#478 )
Joseph Doherty
2026-07-17 15:56:06 -04:00
6dda0549e2
Merge pull request 'feat(alarms): condition Quality tracks source connectivity (#477 )' (#479 ) from fix/alarm-condition-quality-477 into master
dohertj2
2026-07-17 15:18:34 -04:00
db751d12a5
feat(alarms): condition Quality tracks source connectivity (#477 )
Joseph Doherty
2026-07-17 15:10:04 -04:00
f6a3c31b60
Merge pull request 'fix(alarms): populate ConditionClassId/ConditionClassName on condition events (#475 )' (#476 ) from fix/alarm-condition-class-fields into master
dohertj2
2026-07-17 13:58:39 -04:00
e08b6b0e69
fix(alarms): populate ConditionClassId/ConditionClassName on conditions (#475 )
Joseph Doherty
2026-07-17 00:49:43 -04:00
50426d4790
Merge pull request 'fix(alarms): populate EventType/SourceNode/SourceName on native + scripted conditions (#473 )' (#474 ) from fix/alarm-condition-source-fields into master
dohertj2
2026-07-17 00:45:51 -04:00
7339a4af07
fix(alarms): populate EventType/SourceNode/SourceName on conditions (#473 )
fix/alarm-condition-source-fields
Joseph Doherty
2026-07-17 00:36:44 -04:00
872cf7e37a
test(secrets): register ISecretResolver in driver-factory resilience tests (Task 10 fix)
Joseph Doherty
2026-07-16 18:27:59 -04:00
f1534920de
test(secrets): G-2c guard AdminUI DriverConfig secret: ref round-trip (Task 9)
Joseph Doherty
2026-07-16 18:19:24 -04:00
9bb237b794
feat(secrets): G-2b resolve OpcUaClient secret: Password/UserCertificatePassword (Task 8)
Joseph Doherty
2026-07-16 18:14:12 -04:00
1424a21419
feat(secrets): G-2a secret: arm on GalaxySecretRef via ISecretResolver (Task 7)
Joseph Doherty
2026-07-16 17:57:04 -04:00
ce383df39a
docs(secrets): G-5 clustered master-key posture runbook (Task 6)
Joseph Doherty
2026-07-16 17:30:32 -04:00
a0be76b5f0
feat(secrets): mount /admin/secrets UI + secrets authorization (Task 5, G-6)
Joseph Doherty
2026-07-16 17:26:54 -04:00
73d8439412
docs(secrets): G-4 ${secret:} config delivery convention + fail-closed proof (Task 4)
Joseph Doherty
2026-07-16 17:14:32 -04:00
8843418c54
feat(secrets): register AddZbSecrets unconditionally on the host (Task 3)
Joseph Doherty
2026-07-16 17:07:41 -04:00
772d3a5f34
feat(secrets): add ZB.MOM.WW.Secrets refs + pre-host ${secret:} expander (Tasks 1-2)
Joseph Doherty
2026-07-16 17:03:16 -04:00
ec6598ceae
Merge pull request 'v3 Batch 4 — dual-namespace address space + raw-only runtime binding (v3.0)' (#472 ) from v3/batch4-address-space into master
dohertj2
2026-07-16 14:38:29 -04:00
b4b378c5cd
docs(v3): Batch 4 PR description — dual-namespace address space (v3.0)
v3/batch4-address-space
Joseph Doherty
2026-07-16 14:36:30 -04:00
e41ffe7655
merge reassert review fixes (M1 skip historian re-record, LOW-3 comment) into v3/batch4-address-space
Joseph Doherty
2026-07-16 14:34:08 -04:00