Joseph Doherty
f1957606ff
perf(site-call-audit): filtered IX_SiteCalls_NonTerminal index — KPI predicates seek the live queue instead of scanning 365 days
2026-07-09 07:06:50 -04:00
Joseph Doherty
7555e65746
fix(config-db): grant CREATE TABLE + scoped DELETE to scadabridge_audit_purger so a segregated maintenance principal can actually run the purge
2026-07-09 06:52:44 -04:00
Joseph Doherty
73ce2e4d0f
docs(secured-writes): mark plan tasks complete (build+tests+smoke)
2026-06-27 14:07:25 -04:00
Joseph Doherty
5076f0a277
docs(secured-writes): implementation plan + task persistence
2026-06-27 12:09:49 -04:00
Joseph Doherty
0bbe637370
docs(secured-writes): design — tag selector + data-type auto-fill from MxGateway browse
2026-06-27 12:04:12 -04:00
Joseph Doherty
f48a748f37
docs(deploy): record T18/T19 plan refinement + live-smoke fixes + task state
2026-06-26 17:35:07 -04:00
Joseph Doherty
e5503857df
docs(deploy): notify-and-fetch design + implementation plan + task state
2026-06-26 15:09:12 -04:00
Joseph Doherty
99ceb6677f
docs(delmia-notifier): README + publish/AOT instructions
2026-06-26 05:19:24 -04:00
Joseph Doherty
9ce6783139
docs(delmia-notifier): implementation plan + task persistence (8 TDD tasks)
2026-06-26 05:01:16 -04:00
Joseph Doherty
0008ca891c
docs(delmia-notifier): design for DelmiaNotifier console app (WWNotifier modern replacement)
...
Compact Native-AOT win-x64 console app DELMIA invokes to notify ScadaBridge of a
recipe download via POST /api/DelmiaRecipeDownload (X-API-Key). Drop-in CLI/output
parity with legacy WWNotifier; appsettings.json + SCADABRIDGE_API_KEY env var;
comma-list base URLs with connect-failure-only failover.
2026-06-26 04:55:40 -04:00
Joseph Doherty
33da8c797c
docs(ipsen-movein): rewrite task plan to async QuerySingleAsync helper
...
Match the shipped InboundDatabaseHelper throughout the implementation plan:
QuerySingle->QuerySingleAsync (and Query->QueryAsync) — async signatures
(async Task<T?>), awaited async ADO.NET (ExecuteScalarAsync/ExecuteReaderAsync/
ReadAsync with the deadline token), async Task test methods with await, and the
architecture/step/acceptance prose + pseudocode now call
await Database.QuerySingleAsync<T>(...). Sibling fix to the design-doc correction.
2026-06-25 14:15:39 -04:00
Joseph Doherty
66bbbb7a31
docs(ipsen-movein): correct inbound DB helper to async QuerySingleAsync in design doc
...
The IpsenMES MoveIn design-doc pseudocode and helper-surface sketch used the
synchronous, read-only `Database.QuerySingle<T>`/`Query`. The shipped
InboundDatabaseHelper is async and write-capable: `await QuerySingleAsync<T>`,
`QueryAsync`, `ExecuteAsync` (InboundAPI-026/027).
Three inbound methods authored from this draft (IpsenMESMoveIn, MesMoveIn,
MesMoveOut) failed Roslyn compilation in production until corrected to
`await Database.QuerySingleAsync<...>(...)` (2026-06-25). Fix the pseudocode,
the helper-surface bullet, and the inline reference, and add a dated correction
note pointing at the authoritative Component-InboundAPI.md surface.
2026-06-25 14:11:25 -04:00
Joseph Doherty
07dae35533
docs(sms): implementation plan + task persistence for SMS notifications (S1-S11)
2026-06-19 09:38:32 -04:00
Joseph Doherty
28cab6e881
docs(sms): design for SMS (Twilio) notification adapter + T10 plumbing (T9 Teams→SMS pivot)
2026-06-19 09:34:45 -04:00
Joseph Doherty
023c4f7cde
docs(m10): mark M10 UI/UX platform delivered + sync README/CLAUDE + log follow-ups
2026-06-18 20:20:39 -04:00
Joseph Doherty
c0aaba17ea
docs(m10): T34 theme dark-mode feasibility spike findings
2026-06-18 19:18:49 -04:00
Joseph Doherty
d8ba99d19d
docs(m10): UI/UX platform implementation plan — 17 tasks, 5 waves (T33-T36, T41)
2026-06-18 19:15:54 -04:00
Joseph Doherty
1a23b902b2
docs(m10): UI/UX platform design — modal host, tokens+dark mode, pager/filter extractions, a11y pass, alarm-override Playwright
2026-06-18 19:01:54 -04:00
Joseph Doherty
ba335519f4
docs(m9): mark M9 delivered + sync TemplateEngine/TreeView/DataConnection/schema-library/CLI docs
...
- 2026-06-15-stillpending-completion-design.md: M9 section marked DELIVERED with per-feature
summary and deferrals (folder drag-drop, unified outbox page).
- stillpending.md: T22–T26/T28/T30–T32 + CLI cached-call marked [DELIVERED M9]; permanent
deferrals (folder drag-drop, unified outbox page) retained as [PERM].
- Component-TemplateEngine.md: TemplateFolder SortOrder + ReorderTemplateFolderCommand;
Expression-trigger analysisKind (Advisory/Strict) on Alarm + Script; Script parameter
JSON Schema / lib: ref note; Inheritance Resolve authoring section (GetResolvedTemplateMembersCommand /
TemplateInheritanceResolver / staleness banner); updated Responsibilities.
- Component-TreeView.md: T22 search box wired note; T23 folder sibling reorder + root context
menu note; drag-drop permanently deferred clarified in V7 worked example.
- Component-CentralUI.md: template tree search + inherited-members panel (T26 staleness banner)
added to Template Authoring; drag-drop permanently deferred note; Schema Library page (T32)
added as new subsection; ParameterValueForm + Monaco hover (T30/T31) noted; connection
live-status (T25) + move-connection (T24) added to Site & Data Connection Management.
- Component-ConfigurationDatabase.md: SharedSchema entity + ISharedSchemaRepository row added.
- Component-CLI.md: --trigger-kind option added to template alarm add/update and script add/update.
- src/ZB.MOM.WW.ScadaBridge.CLI/README.md: --trigger-kind option added to template alarm
add/update and template script add/update command tables (already had cached-call group).
2026-06-18 13:39:33 -04:00
Joseph Doherty
939aea159b
docs(m9): implementation plan + task persistence (17 tasks, 5 waves)
...
Bite-sized per-task plan for T22-T26, T28, T30-T32 + CLI cached-call retry/discard.
ManagementActor.cs/ValidationService.cs/shared-razor serialization points enumerated;
blockedBy deps + Parallelizable-with sets; integration trace + EF model-drift + shared
fixture re-run checklist per integration-catches-cross-cutting-gaps.
2026-06-18 10:08:57 -04:00
Joseph Doherty
4b152958df
docs(m9): approved design — Templates & authoring (T22-T26, T28, T30-T32 + CLI cached-call retry/discard)
...
Locked decisions: T26 authoring-only (resolve + staleness banner, no stored-row
mutation); T32 full ($ref resolver + template-level schema library, no new package);
unified-outbox page deferred (CLI retry/discard ships instead); T23 menu-based
reorder + root context menu (no drag-drop); guarded move-connection; reuse existing
health transport for live status; T28 opt-in strict escalation layer.
2026-06-18 10:01:38 -04:00
Joseph Doherty
4d888c63a3
docs(m8): Transport site/instance transport, name-mapping, Myers diff, stale enumeration (M8 INT)
2026-06-18 07:53:25 -04:00
Joseph Doherty
2f3c1a4e64
chore(m8): task persistence for Transport plan (15 tasks, dependency DAG)
2026-06-18 05:31:01 -04:00
Joseph Doherty
1ee75ac620
docs(m8): Transport T18/T20/#16 implementation plan (15 tasks, waves A-E + INT)
2026-06-18 05:29:39 -04:00
Joseph Doherty
e4964f7b30
docs(m8): approved Transport T18/T20 + #16 design (site/instance transport, name-mapping, Myers diff)
2026-06-18 05:25:04 -04:00
Joseph Doherty
40928535fd
docs(m7): reflect OPC UA / MxGateway UX (T13-T17) across component docs + CLAUDE/stillpending/completion-design
2026-06-18 04:13:21 -04:00
Joseph Doherty
a87bf8a459
docs(m7): implementation plan + task graph — 22 tasks across waves A-E (T13-T17)
2026-06-18 01:57:18 -04:00
Joseph Doherty
254e0e729f
docs(m7): approved design — OPC UA / MxGateway UX (T13-T17)
...
Full-M7 scope: operator Alarm Summary (per-instance live snapshots),
MxGateway secured writes (Operator+Verifier roles + PendingSecuredWrite +
central relay), OPC UA BrowseNext paging + bounded recursive search,
type-info surfacing + attribute-override CSV import, Verify-endpoint button +
site-local cert trust (broadcast to both nodes). Builds on the merged
opcua-tag-browser + mxgw-supervisory-write foundations already in main.
2026-06-18 01:44:40 -04:00
Joseph Doherty
241a792e7b
docs(kpi): K17 — #26 KpiHistory component doc + README/CLAUDE + cross-component interactions + completion-design update
2026-06-17 20:52:12 -04:00
Joseph Doherty
4c6ae9da0e
docs(m6): KPI History tasks.json (K1-K17 with blockedBy graph)
2026-06-17 19:32:58 -04:00
Joseph Doherty
1809664bcb
docs(m6): KPI History & Trends implementation plan (K1-K17, bite-sized tasks + execution waves)
2026-06-17 19:32:58 -04:00
Joseph Doherty
6084e56c9f
docs(m6): KPI History & Trends design — reusable tall/EAV KPI-history backbone + trend charts for all sources; T9/T10 (Teams) deferred to next major version
2026-06-17 19:32:58 -04:00
Joseph Doherty
1045e7966d
docs(plans): implementation plan for Debug View tabs + hierarchy trees
...
7 tasks (DV-1..DV-7): additive AlarmStateChanged native-binding contract
chain, site snapshot native placeholders, DebugTreeNode + pure builder
(attribute + alarm trees with roll-up/filter), DebugView tabs reusing
TreeView<TItem>, docs, and integration (build + docker + Playwright).
2026-06-17 14:14:58 -04:00
Joseph Doherty
811d72255c
docs(plans): design for Debug View tabs + hierarchy trees
...
Tabbed Attributes/Alarms view with collapsible composition trees derived
from path-qualified canonical names; all configured alarms (computed +
native) shown with current status; branch-level status roll-up; native
source bindings as nodes with conditions nested. Site snapshot enriched
with placeholder rows for idle native sources via an additive
IsConfiguredPlaceholder field on AlarmStateChanged.
2026-06-17 14:06:08 -04:00
Joseph Doherty
e8db6c71a8
docs(plans): mark WaitAsync compile-surface tasks complete in tasks.json
2026-06-17 11:24:03 -04:00
Joseph Doherty
dc43a3f0f6
docs(plans): add WaitAsync compile-surface mirror-gaps plan + tasks
2026-06-17 11:00:41 -04:00
Joseph Doherty
af54c8ad11
merge: integrate WaitAsync/M5-audit (parallel session) with galaxy array-write + inbound-timeout fixes
2026-06-17 09:28:15 -04:00
Joseph Doherty
11534089b9
docs(siteruntime): mark WaitAsync deferred items implemented (§3/§4.2/§6) + fast-path throwing-predicate test
2026-06-17 09:15:42 -04:00
Joseph Doherty
cd15426b21
docs(siteruntime): plan for WaitAsync deferred items (WaitForAsync, quality-gated, routed §6)
2026-06-17 08:58:05 -04:00
Joseph Doherty
b89d69a008
docs(siteruntime): add WaitAsync attribute-change helper spec
2026-06-17 08:14:09 -04:00
Joseph Doherty
f63055c296
chore(inbound): task-persistence for Ipsen MES MoveIn plan
2026-06-16 22:00:10 -04:00
Joseph Doherty
6fbf3e71fd
docs(inbound): implementation plan for Ipsen MES MoveIn
2026-06-16 22:00:10 -04:00
Joseph Doherty
d8ccad6f54
docs(inbound): design for Ipsen MES MoveIn -> reactor MES receiver
...
SAPID(+side) -> BTDB Machine.SAPID -> Code -> instance; inbound script does
the lookup via a new scoped read-only DB helper, then routes to a new T1
template script that gates on MoveInReadyFlag and writes the MoveIn to the
correct Left/Right MES receiver. -LT deferred.
2026-06-16 22:00:10 -04:00
Joseph Doherty
0e9bcbb676
docs(m5): implementation plan + tasks for audit hardening T3-T8
2026-06-16 21:12:52 -04:00
Joseph Doherty
1b7600fcb3
docs(m5): design — audit hardening T3-T8 (T1 hash-chain + T2 Parquet stay deferred)
2026-06-16 21:10:21 -04:00
Joseph Doherty
e77e209b8a
docs(m4): fix bundle CLI example option names in transport design §13 (--output/--input, not --out/positional)
2026-06-16 20:37:51 -04:00
Joseph Doherty
0780c2e49e
docs(m4.4): clear stale deferred/no-op markers for shipped features (relay, bundle-import audit, M5 redaction, audit drill-in, Transport CLI, traceability)
...
- SiteCallAudit/ServiceCollectionExtensions.cs: drop "still deferred" note on relay; point to SiteCallAuditActor where it lives
- Transport/Import/BundleImporter.cs: update "Only LoadAsync implemented" to reflect all three phases shipped
- SiteRuntime/Scripts/AuditingDbCommand.cs: replace two M5-deferred redaction comments with accurate references to AuditLogOptions.PerTargetOverrides
- SiteRuntime/Scripts/ScriptRuntimeContext.cs: replace "M5 will layer redaction" note with accurate description of shipped redactor
- CentralUI/AuditLogPage.razor.cs: replace "Bundle C wires… no-op seam" with accurate description of HandleRowSelected implementation
- docs/plans/2026-05-24-transport-design.md §13: update from "CLI Deferred / not built in v1" to reflect shipped BundleCommands.cs; update Open Questions entry
- docs/plans/2026-05-24-transport.md: convert Out-of-Scope "Do NOT build CLI" reminder to a factual note that it shipped
- docs/plans/2026-05-24-transport.md.tasks.json: flip all 30 tasks from pending → done (entire Transport feature shipped)
2026-06-16 20:30:29 -04:00
Joseph Doherty
0cc8642cfa
docs(m3): implementation plan + tasks for shared ScriptAnalysis consolidation
2026-06-16 19:09:12 -04:00
Joseph Doherty
8e99f22b24
docs(m3): design — shared ScriptAnalysis project consolidating the 4 trust-model analyzers
2026-06-16 19:07:32 -04:00
Joseph Doherty
dc9f31537a
docs: record final-review follow-ups (deployed-snapshot normalization gap I-1; CLI native-form help example)
2026-06-16 18:34:34 -04:00