dohertj2 dohertj2
  • Joined on 2026-02-20
dohertj2 pushed to main at dohertj2/ScadaBridge 2026-08-20 16:31:59 -04:00
5b9cf772db docs(deployment): record QA upgrade of wonder-app-vq03 + vq04 (all 4 nodes) to a24fa38e — 6 EF migrations, AuditLog:SiteWriter path added, System32 auditlog.db relocated; grouped bindings verified on Z28061 (264 rows / 8 groups)
dohertj2 pushed to main at dohertj2/ScadaBridge 2026-08-20 16:15:42 -04:00
a24fa38eae docs(plans): grouped connection bindings — all 9 tasks complete
546250096d fix(centralui): grouped bindings review fixes — Apply with the header at none/mixed keeps each member's connection (never unbinds; upsert Save could not persist it), object inference runs over effective references (bare-default members make an overridden group mixed, default-only prefixes infer), bindings to a deleted connection count as unbound, 'n changed · unsaved' diffs against last-saved state; bUnit behaviour tests for fallback banner, grouping and mixed-group Apply+Save
5e04e81ba0 docs: grouped connection bindings — Central UI Configure page, ResolvedAttribute.DefaultDataSourceReference, CLI instance bind-module; correct the stale 'set-bindings REPLACES all' claim (server upserts) in README + help text
77f4af0d64 feat(centralui): grouped Connection Bindings panel — rows sourced from the flattened config (composed module members were invisible; flatten failure falls back to direct attributes with a banner), per-module connection + Object apply, unbound/mixed pills, show-only-unbound filter, Test Bindings covers composed rows, per-row Browse retained
02a374259b feat(cli): instance bind-module — rebind one composed module's members to a new object path via GetInstance → SetConnectionBindings upsert; --dry-run
Compare 10 commits »
dohertj2 opened issue dohertj2/lmxopcua#563 2026-08-20 10:05:42 -04:00
ACL: an expired API key keeps its session's roles while Security:Acl:Enabled is false (arch-review 03/S19 residual R2)
dohertj2 opened issue dohertj2/lmxopcua#562 2026-08-20 10:05:41 -04:00
ACL: event/alarm monitored items are revalidated by neither trigger (arch-review 03/S19 residual R1)
dohertj2 pushed to main at dohertj2/scadaproj 2026-08-20 10:00:41 -04:00
300094e792 docs(index): LocalDb 0.3.4 published — snapshot as_of_seq floors at last_acked_seq (ScadaBridge register row 106); ScadaBridge pins 0.3.4
75c1897522 fix(localdb): snapshot as_of_seq floors at last_acked_seq so a rebuilt peer's watermark is lifted — ends the full-snapshot-on-every-reconnect loop (0.3.4, ScadaBridge register row 106)
Compare 2 commits »
dohertj2 pushed to main at dohertj2/ScadaBridge 2026-08-20 10:00:39 -04:00
4388fa41e4 deps(localdb)+docs: consume LocalDb 0.3.4 — snapshot as_of_seq floors at last_acked_seq, ending the full-snapshot-on-every-reconnect loop (register row 106 closed, live-proven on the rig: second pair restart exchanged zero snapshots)
dohertj2 deleted branch fix/c3-remediation from dohertj2/mxaccessgw 2026-08-20 09:42:32 -04:00
dohertj2 pushed to main at dohertj2/mxaccessgw 2026-08-20 09:42:30 -04:00
fa364ce139 chore(archreview): cycle-3 remediation integration gate recorded (gateway 1183/1183, windev worker 524/524)
f2ab9cc879 Merge fix/c3-tracker-hygiene: GWC-31 perf-pass comments relabeled PERF-nn, archreview prefixes reserved in REVIEW-PROCESS.md, cycle-1/2 tracker housekeeping (GWC-16 Won't fix, IPC-08/IPC-31 Done, TST-06/17 refreshed, WRK-29..31 reserved)
cb820bb666 chore(archreview): tracker row G → Done with outcome notes
c6650c156b Merge fix/c3-session-lifecycle: GWC-32 WorkerClient dispose is terminal, GWC-34 attach-after-dispose throws SessionNotReady, GWC-37 subtag watch-list coverage graded on provider status + re-resolved at failover edge
193221773d fix(GWC-37): grade the alarm subtag watch-list instead of latching it silently
Compare 31 commits »
dohertj2 created branch fix/c3-remediation in dohertj2/mxaccessgw 2026-08-20 09:40:37 -04:00
dohertj2 pushed to fix/c3-remediation at dohertj2/mxaccessgw 2026-08-20 09:40:37 -04:00
f2ab9cc879 Merge fix/c3-tracker-hygiene: GWC-31 perf-pass comments relabeled PERF-nn, archreview prefixes reserved in REVIEW-PROCESS.md, cycle-1/2 tracker housekeeping (GWC-16 Won't fix, IPC-08/IPC-31 Done, TST-06/17 refreshed, WRK-29..31 reserved)
cb820bb666 chore(archreview): tracker row G → Done with outcome notes
c6650c156b Merge fix/c3-session-lifecycle: GWC-32 WorkerClient dispose is terminal, GWC-34 attach-after-dispose throws SessionNotReady, GWC-37 subtag watch-list coverage graded on provider status + re-resolved at failover edge
193221773d fix(GWC-37): grade the alarm subtag watch-list instead of latching it silently
06cd8b844c chore(archreview): tracker rows D/E → Done with outcome notes
Compare 10 commits »
dohertj2 pushed to main at dohertj2/ScadaBridge 2026-08-20 09:37:51 -04:00
25c15dd164 ops(docker)+test(host)+docs: close register rows 104 + 105 — offline VACUUM recipe applied to the rig; build-time pin that no replicated table is a cascading-FK parent; record row 106 (LocalDb as_of_seq=0 full-snapshot loop)
dohertj2 pushed to main at dohertj2/mxaccessgw 2026-08-20 09:11:42 -04:00
f4919ba97c docs(archreview): cycle-3 architecture review (2026-08-19 @ 8b3e3b3)
dohertj2 pushed to main at dohertj2/scadaproj 2026-08-20 09:08:49 -04:00
5e02c1c38f docs(index): LocalDb 0.3.3 published — FK-parent registration guard + atomic per-entry apply (ScadaBridge arch-review P4-7); ScadaBridge pins 0.3.3
9663279594 fix(localdb): preserve the poison cause when dead-lettering itself fails; pin self-referencing cascade (0.3.3 review follow-ups)
122940c0e4 fix(localdb): refuse cascading-FK parents at registration; make an entry's row+ledger writes atomic (0.3.3, ScadaBridge arch-review P4-7)
Compare 3 commits »
dohertj2 pushed to main at dohertj2/ScadaBridge 2026-08-20 09:08:48 -04:00
09989fdf32 deps(localdb)+docs: consume LocalDb 0.3.3 (FK-parent registration guard + atomic per-entry apply, arch-review P4-7); Low-wave integration docs — register rows 103 closed / 104 auto_vacuum legacy files / 105 FK-parent constraint; CLAUDE.md bulk-deploy up-to-date filter + --force, 0.3.3 line, infra/LDAP correction (P8-7); plan doc status
bbc1b55cc4 test(siteeventlog): make P4-5's ExecuteAsync-yield test deterministic — park the purge on the isActiveNode gate instead of racing the pool thread
57c8973b0d fix(centralui)+test(centralui): Low-wave integration — T12 Topology race fixture gains T13's IStaleInstanceProbe dependency; T11 sandbox-run continuation skips StateHasChanged after Dispose
3bf1537ea0 docs(docker)+docs(docker-env2)+infra: close P8-7 + P8-10 — LDAP doc drift + env2 gRPC port/teardown parity
428b8db024 test(dcl+communication+storeandforward+kpihistory+host): close register row-40-class sleeps + row-32 provider leak (arch-review 2026-08-19 P8-8 + P8-9)
Compare 18 commits »
dohertj2 pushed to main at dohertj2/scadaproj 2026-08-19 15:22:11 -04:00
e9dc13689a docs(index): LocalDb 0.3.2 published — cap-prune session fault, sync keepalives, newest-wins stream guard (ScadaBridge arch-review P4-1 + P4-3); ScadaBridge pins 0.3.2
f62b017cc7 fix(localdb): fault live sync session on cap-prune; keepalive + newest-wins sync guard (0.3.2, ScadaBridge arch-review P4-1 + P4-3)
Compare 2 commits »
dohertj2 pushed to main at dohertj2/ScadaBridge 2026-08-19 15:22:10 -04:00
9b67c7cb4b docs(plans)+docs(register): 2026-08-19 Medium-findings remediation plan (all 17 tasks executed); reopen+re-close register rows 95/99 with the P8-6/P6-3 defect proofs; add row 103 (deferred P6-6 lesser instances); CLAUDE.md — bulk deploy skips Disabled, LocalDb 0.3.2
8569a493f6 deps(localdb): consume 0.3.2 — cap-prune session fault + sync keepalives + newest-wins stream guard (arch-review 2026-08-19 P4-1 + P4-3)
d9d72f1bc5 test(communication)+test(sitecallaudit): cap parallelism, delta/collection-serialize gauge asserts, replace sleep-then-assert, stop leaked 100ms tickers (arch-review 2026-08-19 P8-5 + P8-6, register rows 40/82/95/96/102 patterns)
9a3f006721 fix(management)+fix(cli): neutralize CSV formula injection + align export columns; deadline + Ctrl-C on audit export streaming (arch-review 2026-08-19 P6-7 + P6-8)
50a77a8170 fix(transport): carry ExternalSystem TimeoutSeconds through bundles + diff (arch-review 2026-08-19 P7-1, row-27 shape)
Compare 19 commits »
dohertj2 pushed to main at dohertj2/ScadaBridge 2026-08-19 14:05:51 -04:00
d18f344e66 docs(plans): remediation plan for the four 2026-08-19 arch-review High findings (P2-1, P2-2, P6-1, P6-2) — all four executed in this session
042e2efd1d fix(centralui): enforce site scoping on AlarmSummary — filter site list + deny out-of-scope alarm fetches, mirroring DebugView (arch-review 2026-08-19 P6-2 High)
61a14bccab fix(management): CAS-guard secured-write reject (WHERE Status='Pending') so reject can never falsify an executed two-person write (arch-review 2026-08-19 P6-1 High)
59468399db fix(dcl): reset MxGateway alarm-stream state on reconnect so the native-alarm feed resumes (arch-review 2026-08-19 P2-2 High)
c4d3c8b875 fix(dcl): carry adapter generation on SubscribeCompleted/AlarmSubscribeCompleted; drop stale completions and release captured-adapter handles (arch-review 2026-08-19 P2-1 High)
Compare 6 commits »
dohertj2 pushed to master at dohertj2/lmxopcua 2026-08-18 10:04:05 -04:00
12b0035a6b Merge branch 'fix/acl-anchor-browse-transit' — ACL browse transit reaches the shared root folder (narrow Browse grants were unreachable by navigation; r3 T7 live-gate finding)
f679b2f10a docs(plans): annotate the r3 register — browse-transit-below-realm-root closed by 89630ee4+ff9d617a
ff9d617a1b docs(acl): correct the Browse override's 'two namespace root folders' remark — one shared anchor
22ae18365b docs(acl): record the shared-root-folder browse-transit mapping
89630ee418 fix(acl): browse transit reaches the shared root folder (narrow Browse grants were unreachable)
Compare 5 commits »
dohertj2 pushed to main at dohertj2/mxaccessgw 2026-08-18 09:39:19 -04:00
8b3e3b3b45 Merge feat/sweep-reread-tag-summary: fca978d sweep re-read (17 collateral rationale deletions restored across 10 files) + DashboardGroupTagMapping summary now states the short-name GroupToTag key constraint
a8a8147a61 chore(plans): record sweep re-read + GroupToTag summary follow-ups as closed
f82dac1906 docs(src): restore substantive rationale prose the fca978d marker sweep deleted
4b6f9077bf docs(dashboard): surface the short-name GroupToTag key constraint in the class summary
Compare 4 commits »
dohertj2 pushed to feat/sweep-reread-tag-summary at dohertj2/mxaccessgw 2026-08-18 09:36:24 -04:00
a8a8147a61 chore(plans): record sweep re-read + GroupToTag summary follow-ups as closed