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).
This commit is contained in:
Joseph Doherty
2026-06-18 13:39:33 -04:00
parent af2d4037ce
commit ba335519f4
8 changed files with 78 additions and 20 deletions
@@ -102,8 +102,22 @@ Delivered both features, with the silent gap #16 folded in:
Small follow-ups logged (not blocking): DeploymentManagerRepository hydration for the stale probe; large-bundle/perf hardening. **T19** (direct cluster-to-cluster pull / asymmetric bundle signing / differential bundles) remains **deferred** to its own brainstorm.
#### M9 — Templates & authoring (T22T26, T28, T30T32)
Template tree search/filter; folder drag-drop + sibling reorder + root context menu; move data connection between sites; connection live-status indicators; base-template versioning "update-derived" flow + multi-level inheritance; strict expression-trigger analysis kind; schema-driven value-entry forms + hover/completion + JSON Schema `$ref`/library; CLI Retry/Discard for cached calls; unified notifications+site-calls outbox page.
#### M9 — Templates & authoring (T22T26, T28, T30T32) — **DELIVERED**
Delivered per `docs/plans/2026-06-18-m9-templates-authoring-design.md`:
- **T22** — Template tree search/filter: search box wired to `TemplateFolderTree.Filter` on the Templates page.
- **T23** — Folder sibling reorder: `ReorderTemplateFolderCommand` + `ReorderFolderAsync`; distinct `SortOrder` assigned on folder create so moves are immediately visible; Move-up/Move-down menu items added to folder context menu; root-level folder context menu added. **No drag-drop** — deliberately deferred (see below).
- **T24** — Move data connection between sites: guarded `MoveDataConnectionCommand` (target site exists, no name collision, blocked when any `InstanceConnectionBinding` or native-alarm-source name ref references the connection) + `MoveDataConnectionDialog` UI on the design DataConnections page.
- **T25** — Connection live-status indicators on the design DataConnections page: reuses existing `SiteHealthReport.DataConnectionStatuses` via a new `ConnectionHealthQueryService`; ~10s poll; no new site-side code.
- **T26** — Base-template versioning authoring surface (read-only): `TemplateInheritanceResolver` + `GetResolvedTemplateMembersCommand` returning the full multi-level effective inherited member set (with origin/locked annotation and merged HiLo trigger config) + a staleness summary; `TemplateEdit` renders the full inherited set and a read-only "base changed" staleness banner. No mutation, deploys unchanged.
- **T28** — Strict expression-trigger analysis kind: per-trigger `analysisKind` (`Advisory` default = current advisory behavior; `Strict` escalates the blank-expression advisory finding to a deploy-blocking error); carried in the trigger-config JSON; UI selector on the template alarm/script edit form; CLI `--trigger-kind` option on `template alarm add/update` and `template script add/update`.
- **T30** — Schema-driven nested value-entry forms: `ParameterValueForm` renders `object`/`list` parameters as typed nested inputs, `$ref`-resolved, with per-field validation.
- **T31** — Monaco JSON-schema hover/completion on the JSON value-entry surface; dispose-before-model fixed.
- **T32** — JSON Schema `$ref` reuse + template-level schema library: new `SharedSchema` entity + `ISharedSchemaRepository` + EF migration; a `{"$ref":"lib:Name"}` resolver (cycle/depth-guarded) applied at deploy-time, design-time validation, and inbound-API runtime; CRUD commands + a Central UI **Schema Library** page (under Design); the resolver is consumed by Template Engine, Inbound API, and Central UI.
- **CLI** — `cached-call retry` / `cached-call discard` command group for parked `ExternalSystem.CachedCall` / `Database.CachedWrite` operations; exit-code propagation corrected.
Deferrals (NOT shipped in M9):
- Folder drag-drop — permanently deferred (`[PERM]`). Menu-based reorder (T23) ships instead.
- Unified notifications+site-calls outbox page — deferred; Notification Outbox and Site Calls pages remain separate.
#### M10 — UI/UX platform (T33T36, T41)
`IDialogService` modal abstraction; design-tokens/CSS-vars + dark-mode/theming; shared pagination+filter component; accessibility pass; Playwright alarm-override UI coverage.