Commit Graph

32 Commits

Author SHA1 Message Date
Joseph Doherty 5a878b78d4 docs(xml): fill missing XML doc comments + strip task-tracking refs across src (fixdocs)
Add missing <summary>/<param>/<returns>/<typeparam> tags and switch
interface implementations to <inheritdoc/> across 106 files; strip
project bookkeeping identifiers (Task NN, #05-TNN, PLAN-04, StoreAndForward-0NN)
from shipped code comments while preserving the descriptive rationale.
Comment-only: zero code-logic lines changed; solution builds 0/0.

Claude-Session: https://claude.ai/code/session_01MtdgwpEeCUn6cUA5f1LMPj
2026-07-10 08:23:56 -04:00
Joseph Doherty 9cff87fe85 docs(comments): strip internal task/milestone/bundle bookkeeping from code comments
Remove project bookkeeping citations from shipped code comments across the
solution: hyphenated task IDs (WP-14, StoreAndForward-025), milestone/task/
issue refs (M3, Task 4, Audit Log #23, #21), Bundle X task-bundle labels,
and C/D/K/S/T phase labels.

Comment text only — no code logic, string/log literals, or XML-doc structure
changed. Genuine descriptions are preserved (only the citation is stripped),
and technical lookalikes are retained (UTF-8, SHA-256, T00:00:00, M365,
UTC-5, pre-C4/pre-C5 schema versions). Flagged by the new CommentChecker
TaskReferenceInComment / TrackingReferenceInComment checks plus targeted
grep passes; full solution builds clean, append-only guard tests pass.
2026-07-07 11:03:26 -04:00
Joseph Doherty 1f261263b2 fix(centralui): surface inherited compositions in the templates tree (followup #9)
The templates tree rendered a derived/composed member (e.g. LeftReactorSide,
derived from ReactorSide) as a flat leaf, omitting compositions it inherits
from its base (e.g. LeakTest composed onto ReactorSide). BuildCompositionLeavesFor
recursed only over a template's OWN composition rows; an inherited composition
row lives on the ancestor, and TemplateComposition has no IsInherited placeholder
(unlike attributes/alarms/scripts/native-sources), so the child's own Compositions
was empty. Same 'derived templates don't surface inherited members' family as
followups #1/#2, but for compositions. Deploy/flatten was always correct
(TemplateResolver.ResolveAllMembers walks the chain) — display-only.

Fix:
- BuildCompositionLeavesFor now renders the EFFECTIVE composition set (own +
  inherited) via EffectiveCompositionsFor, which walks the inheritance chain
  (leaf->root, child wins on InstanceName), mirroring the resolver.
- Inherited slots are flagged (TemplateTreeNode.IsInherited), badged 'inherited'
  in the label, and their context menu offers only 'Open composed template'
  (Rename/Delete edit the ancestor's slot, so suppressed on inherited nodes).
- The same inherited row can appear under several derived members (LeakTest under
  both LeftReactorSide and RightReactorSide), so composition nodes use a
  path-qualified KeyOverride to keep TreeView selection/expansion keys unique;
  recursion is cycle-guarded.

Tests: +1 bUnit (TemplatesPageTests.Renders_InheritedComposition_UnderDerivedComposedMember);
CentralUI suite 867 green; full solution builds 0/0.

Docs: Component-CentralUI.md (effective composition set in tree); known-issues
tracker #9 recorded + resolved.

Note: CentralUI change — shows on wonder-app-vd03 only after that host is redeployed.
2026-06-24 19:29:48 -04:00
Joseph Doherty e814bf5efb fix(ui): per-field sub-schema for escape-hatch Monaco editors + dispose guard (#261) 2026-06-19 03:28:58 -04:00
Joseph Doherty 282bc8b53c fix(ui): templates root-menu Escape + double-menu guard + reorder disabled tests (#258)
- Root context menu now has tabindex/focus + Escape-key close (OnRootMenuKeyDown) mirroring the node menu
- Opening root menu calls _tree.DismissNodeContextMenu(); opening node menu fires OnNodeContextMenuOpened → DismissRootContextMenu so only one menu is ever visible
- Add FolderContextMenu_MoveUp_IsDisabled_OnFirstSibling and FolderContextMenu_MoveDown_IsDisabled_OnLastSibling bUnit tests
2026-06-19 03:28:18 -04:00
Joseph Doherty 4369da61c1 fix(centralui): move TreeView toggle comment outside start tag — mid-attribute Razor comment crashed render (InvalidCharacterError → circuit teardown on branch-node trees) (INT) 2026-06-18 20:44:04 -04:00
Joseph Doherty 828acd3266 test(centralui): TreeView keyboard-activation test + document preventDefault scope (T36a review) 2026-06-18 20:14:18 -04:00
Joseph Doherty fef4d4cf83 feat(centralui): dark-mode toggle + localStorage persistence + SSR pre-hydration (T34b) 2026-06-18 20:09:00 -04:00
Joseph Doherty 0449c473c1 feat(centralui): TreeView chevron accessible name + keyboard activation + a11y regression test (T36a) 2026-06-18 20:08:47 -04:00
Joseph Doherty 4d3cef18cb fix(centralui): MoveDataConnectionDialog surfaces MoveAsync exceptions inline instead of failing silently (T33b review) 2026-06-18 20:06:06 -04:00
Joseph Doherty e0d085481f refactor(centralui): migrate Move/Rename/Compose dialogs to DialogService.ShowAsync host (T33b) 2026-06-18 19:53:19 -04:00
Joseph Doherty c8915e8638 refactor(centralui): add @namespace to KeysetPager/DateTimeRangeFilter + InvariantCulture parse (T35b/c review) 2026-06-18 19:46:27 -04:00
Joseph Doherty acbb52b459 fix(centralui): DialogHost cleanup only on open->closed transition + drop trailing class space (T33a review) 2026-06-18 19:42:10 -04:00
Joseph Doherty 9ee21205d6 feat(centralui): DateTimeRangeFilter reusable from/to input component (T35c) 2026-06-18 19:39:05 -04:00
Joseph Doherty b7f7fe935c test(playwright): alarm-override trigger-config scenarios — HiLo merge, non-HiLo replace, validation, cancel, clear (T41) 2026-06-18 19:35:14 -04:00
Joseph Doherty 2e4ca5a35f feat(centralui): OffsetPager reusable pagination component (T35a) 2026-06-18 19:28:17 -04:00
Joseph Doherty 6a34ed9ed6 feat(centralui): KeysetPager reusable cursor-pagination component (T35b) 2026-06-18 19:28:15 -04:00
Joseph Doherty 4755ceee81 feat(centralui): DialogHost ShowAsync<T> custom-content + focus trap/restore + backdrop hook (T33a) 2026-06-18 19:24:15 -04:00
Joseph Doherty 68c0f7ac59 feat(m9/T31): Monaco JSON-schema hover/completion on value-entry surface 2026-06-18 13:15:54 -04:00
Joseph Doherty 95b8caf284 fix(m9/T30): empty-state guard keys off resolved fields (top-level \$ref); shift list raw-text on item removal 2026-06-18 13:06:59 -04:00
Joseph Doherty 10c08dd309 feat(m9/T30): schema-driven nested object/list value-entry forms (+ $ref resolution) 2026-06-18 12:40:22 -04:00
Joseph Doherty 1ca2e0b130 fix(m9/T24b): try/finally around _busy in move dialog (circuit-teardown lock) 2026-06-18 11:59:44 -04:00
Joseph Doherty 16cb078cd2 feat(m9/T24b): move-data-connection UI dialog + action 2026-06-18 11:45:53 -04:00
Joseph Doherty 314c7dea23 feat(m9/T23b): folder reorder menu items + root context menu 2026-06-18 11:12:34 -04:00
Joseph Doherty dcc6f623e2 feat(m9/T28b): trigger analysis-kind selector (UI) + --trigger-kind (CLI)
Surfaces the T28a backend "analysisKind" discriminator in both authoring
surfaces: an Advisory|Strict <select> (id="alarm-trigger-kind" /
"script-trigger-kind") added to the Expression fragment of
AlarmTriggerEditor and ScriptTriggerEditor, and a --trigger-kind option
on template alarm/script add+update in the CLI.

Key/value contract: "analysisKind":"Strict" when strict; key omitted for
Advisory — exactly as ValidationService.IsStrictAnalysis reads it.
Selector only shown for Expression triggers; non-Expression triggers do
not emit the key even if IsStrictAnalysisKind is set on the model.

Both projects build 0 warnings; 101 CentralUI Trigger tests + 33 CLI
Template tests pass.
2026-06-18 10:44:57 -04:00
Joseph Doherty c8211f6363 feat(transport-ui): import Map step + per-line diff view (M8 E2) 2026-06-18 07:21:23 -04:00
Joseph Doherty bf1f2f6892 feat(centralui): extract AlarmStateBadges shared component from DebugView (T13) 2026-06-18 02:02:09 -04:00
Joseph Doherty cb2a516187 refactor(kpi): K4/K10/K12 review fixups — test data-race + faulted-tick liveness, dead-branch/unused removal, NaN-guard assertions, value clamp + doc 2026-06-17 20:15:47 -04:00
Joseph Doherty 5613a5efb7 feat(kpi): K12 — reusable KpiTrendChart SVG component 2026-06-17 20:06:31 -04:00
Joseph Doherty ba7331e67c feat(ui): List attribute editor in TemplateEdit 2026-06-16 16:20:08 -04:00
Joseph Doherty eabf270d71 docs: complete XML doc coverage (returns, summaries, inheritdoc)
Resolve all 622 issues flagged by the enhanced CommentChecker: add missing
<returns> tags (incl. the standard phrasing on non-generic Task methods),
add missing <summary> tags, and replace misused/redundant <inheritdoc/> on
members that override or implement nothing with real documentation.
Documentation-only — no behavior change; solution builds clean.
2026-06-03 11:39:32 -04:00
Joseph Doherty 7b0b9c7365 refactor: rename ScadaLink → ZB.MOM.WW.ScadaBridge (code + projects + namespaces)
Solution + 23 src projects + 26 test projects renamed; folders, csproj,
namespaces, and ScadaLinkDbContext/ScadaBridgeDbContext class updated.
ActorSystem "scadalink" → "scadabridge", Akka seed-node URLs migrated.
SQL roles/logins, LDAP domains, CLI command name, and CLI config dir
(~/.scadalink → ~/.scadabridge) also renamed.

Build green; 5 Host.Tests fail awaiting SQL login rename in next commit.
Pre-existing StaleTagMonitor timing flakes unchanged.

Rename script committed at tools/rename-to-scadabridge.sh.
2026-05-28 09:37:45 -04:00