Commit Graph

  • 688a003d1d fix(adminui): tag-path completion replaces the whole dotted path, not just the last segment master Joseph Doherty 2026-06-09 17:06:55 -04:00
  • da80195599 fix(adminui): render Monaco overflow widgets in a body-level node Joseph Doherty 2026-06-09 17:01:18 -04:00
  • 5c3aa4d211 Merge feat/monaco-script-editor: Roslyn-backed Monaco script editor Joseph Doherty 2026-06-09 15:55:48 -04:00
  • 8aec438cc5 chore(plan): mark Monaco script-editor plan complete (all 14 tasks) Joseph Doherty 2026-06-09 15:52:57 -04:00
  • 4d12088fa2 docs(scripting): Monaco script-editor guide + refresh Scripts page banner Joseph Doherty 2026-06-09 15:50:49 -04:00
  • 72fcde5b44 fix(adminui): auto-suggest tag paths inside string literals (quickSuggestions.strings) Joseph Doherty 2026-06-09 15:46:30 -04:00
  • 9444348c0d fix(adminui): forward insertTextRules + correct Monaco completion-kind icons Joseph Doherty 2026-06-09 15:31:16 -04:00
  • fc7dc3b57d feat(adminui): inline script-source editor in the virtual-tag modal Joseph Doherty 2026-06-09 15:17:25 -04:00
  • 088fc50ef2 feat(adminui): ScriptEdit uses MonacoEditor; drop CDN loader Joseph Doherty 2026-06-09 15:11:13 -04:00
  • 071bed5f94 feat(adminui): wire Monaco language providers to /api/script-analysis Joseph Doherty 2026-06-09 15:09:06 -04:00
  • 4a2f7e37e5 feat(adminui): script document formatting (NormalizeWhitespace) Joseph Doherty 2026-06-09 15:06:40 -04:00
  • 9104b6c614 feat(adminui): script hover + signature help Joseph Doherty 2026-06-09 14:59:12 -04:00
  • 521fb61e44 feat(adminui): tag-path completion inside ctx.GetTag/SetVirtualTag literals Joseph Doherty 2026-06-09 14:53:15 -04:00
  • d1434933b4 feat(adminui): IScriptTagCatalog for tag-path completion Joseph Doherty 2026-06-09 14:41:40 -04:00
  • 93f5a745a3 feat(adminui): scope + dot-member script completions Joseph Doherty 2026-06-09 14:33:20 -04:00
  • 6a9b052fc7 feat(adminui): script diagnostics (Roslyn + forbidden-type + dynamic-path) Joseph Doherty 2026-06-09 14:22:49 -04:00
  • b54a6ad29f feat(adminui): script-analysis contracts, wrapper seam, endpoints + DI Joseph Doherty 2026-06-09 14:11:43 -04:00
  • 9afb2d230e feat(adminui): vendor Monaco + reusable MonacoEditor component (no providers yet) Joseph Doherty 2026-06-09 14:03:24 -04:00
  • a2dbc5e2da build(adminui): reference Core.Scripting for the script-analysis backend Joseph Doherty 2026-06-09 13:59:51 -04:00
  • 93aa6c2f81 docs(scripting): implementation plan for Roslyn-backed Monaco script editor Joseph Doherty 2026-06-09 13:56:59 -04:00
  • 7a03d01613 docs(scripting): design for Roslyn-backed Monaco script editor Joseph Doherty 2026-06-09 13:44:20 -04:00
  • e2da662286 docs(claude): note driver-typed tag editors in the /uns TagModal (F-uns-1/2) Joseph Doherty 2026-06-09 12:06:45 -04:00
  • fa96989e2a feat(uns): validate typed TagConfig before save (F-uns-2 / #156) Joseph Doherty 2026-06-09 11:45:35 -04:00
  • d29e2190a9 fix(uns): reset TagConfig when the operator switches drivers (F-uns-1 integration review) Joseph Doherty 2026-06-09 10:00:28 -04:00
  • 8973ecdf7c feat(uns): register S7/AbCip/AbLegacy/TwinCAT/Focas tag editors in the map (F-uns-1 T9) Joseph Doherty 2026-06-09 09:51:26 -04:00
  • c0afecda50 fix(uns): omit blank optional keys from TagConfig + add omission tests; drop unused ParseInt (T4-T8 review) Joseph Doherty 2026-06-09 09:49:33 -04:00
  • 75021fa2c9 feat(uns): S7/AbCip/AbLegacy/TwinCAT/Focas typed tag-config editors (F-uns-1 T4-T8) Joseph Doherty 2026-06-09 09:42:40 -04:00
  • 5990b673cc feat(uns): Modbus typed tag-config editor (F-uns-1 T3) Joseph Doherty 2026-06-09 09:31:01 -04:00
  • fd9fa75d0e feat(uns): TagConfig JSON helper + editor map + TagModal dispatch scaffold (F-uns-1 T2) Joseph Doherty 2026-06-09 09:22:12 -04:00
  • d9dbd7917a feat(uns): surface DriverType to the TagModal driver dropdown (F-uns-1 T1) Joseph Doherty 2026-06-09 09:16:07 -04:00
  • cc53fc8feb docs(plan): implementation plan for driver-typed tag editors (F-uns-1 / #135) Joseph Doherty 2026-06-09 09:11:02 -04:00
  • 913fea7a3c docs(plan): design for driver-typed tag editors in the UNS TagModal (F-uns-1 / #135) Joseph Doherty 2026-06-09 09:03:22 -04:00
  • 157a6571c7 feat(uns): ancestor-aware tree filter on the global UNS page (task #136) Joseph Doherty 2026-06-09 08:39:43 -04:00
  • 261419870a fix(docker-dev): make cluster-seed Galaxy Tag insert idempotent on UX_Tag_FolderPath Joseph Doherty 2026-06-09 08:29:47 -04:00
  • 9169386eca docs(uns): add operator guide for the global /uns page (task #139) Joseph Doherty 2026-06-09 08:20:23 -04:00
  • b87d877270 refactor(uns): modal-polish nits on the global UNS page (task #137) Joseph Doherty 2026-06-09 08:18:15 -04:00
  • f19f2ee73b fix(adminui): bind driver-page Error + picker SelectedNodeId as Razor expressions Joseph Doherty 2026-06-09 07:39:08 -04:00
  • 14b469291a fix(uns): bind _filter + modal parent-ids as Razor expressions, not literals Joseph Doherty 2026-06-08 15:15:46 -04:00
  • 8ba64b1d99 fix(uns): enforce #122 on line reparent across clusters (final review) Joseph Doherty 2026-06-08 14:12:46 -04:00
  • 1bb7482c3a feat(uns): remove per-cluster UNS/Equipment/Tags + standalone virtual-tag pages Joseph Doherty 2026-06-08 14:02:32 -04:00
  • 983d30cb15 fix(uns): guard import save + comma-limitation hint + reset-on-open (review) Joseph Doherty 2026-06-08 14:00:26 -04:00
  • 7db9a24403 feat(uns): equipment CSV import folded into the tree toolbar Joseph Doherty 2026-06-08 13:56:01 -04:00
  • c0346f14ce feat(uns): tag + virtual-tag modals wired into the tree Joseph Doherty 2026-06-08 13:47:34 -04:00
  • d637b834b9 fix(uns): reject equipment bind to non-existent driver + modal-xl (review) Joseph Doherty 2026-06-08 13:38:33 -04:00
  • 2beaa43d60 feat(uns): equipment modal wired into the tree Joseph Doherty 2026-06-08 13:31:14 -04:00
  • 0abd1d8fc2 fix(uns): delete-confirm reports not-available instead of false success for unwired kinds (review) Joseph Doherty 2026-06-08 13:25:15 -04:00
  • a4a9dc912a feat(uns): area + line modals wired into the tree Joseph Doherty 2026-06-08 13:20:25 -04:00
  • 307cec5a3d test(uns): cover no-script + update-duplicate-name virtual-tag guards (review) Joseph Doherty 2026-06-08 13:15:10 -04:00
  • d8fba02a5e feat(uns): equipment-bound virtual-tag CRUD Joseph Doherty 2026-06-08 13:11:12 -04:00
  • 77024f87da fix(uns): reject tag create on non-existent equipment + narrow JSON catch (review) Joseph Doherty 2026-06-08 13:06:45 -04:00
  • 5a392c5db0 feat(uns): equipment-bound tag CRUD with namespace + cluster guards Joseph Doherty 2026-06-08 13:00:26 -04:00
  • ab0ff8aedf fix(uns): reject driver-bind on unresolvable line + enforce MachineCode uniqueness on update (review) Joseph Doherty 2026-06-08 12:55:36 -04:00
  • 2836a0704b feat(uns): equipment CRUD with #122 driver-cluster guard Joseph Doherty 2026-06-08 12:47:19 -04:00
  • 8b1d3de806 feat(uns): add global UNS nav item, drop per-cluster UNS/Equipment/Tags tabs Joseph Doherty 2026-06-08 12:45:18 -04:00
  • ace366ebcf test(uns): cover #122 allow-when-driver-already-in-target-cluster (review) Joseph Doherty 2026-06-08 12:42:13 -04:00
  • 4a32edef1a fix(uns): re-entrancy guard + clear stale error + PageTitle on GlobalUns (review) Joseph Doherty 2026-06-08 12:39:23 -04:00
  • 47b1d2259f feat(uns): area + line CRUD with #122 reassignment guard Joseph Doherty 2026-06-08 12:35:58 -04:00
  • c9f59e4bd2 feat(uns): GlobalUns page with browsable tree Joseph Doherty 2026-06-08 12:34:37 -04:00
  • b33cf1c80d feat(uns): lazy per-equipment tag + virtual-tag load Joseph Doherty 2026-06-08 12:29:52 -04:00
  • c264441b74 refactor(uns): clarify service lifetime doc + defensive vtag-count null filter (review) Joseph Doherty 2026-06-08 12:27:29 -04:00
  • 2c0297c1af fix(uns): @key node rows for stable Blazor diffing (review) Joseph Doherty 2026-06-08 12:27:19 -04:00
  • cec670f0c8 feat(uns): IUnsTreeService structural load + DI registration Joseph Doherty 2026-06-08 12:23:00 -04:00
  • 0f286a70b8 feat(uns): recursive UnsTree renderer Joseph Doherty 2026-06-08 12:21:38 -04:00
  • 3e8941bce4 docs(uns): clarify HasLazyChildren + cluster EntityId, add tie-break test (review I1/I2/M2) Joseph Doherty 2026-06-08 12:18:37 -04:00
  • d9082e22e3 feat(uns): UnsNode VM + pure tree-assembly helper Joseph Doherty 2026-06-08 12:14:49 -04:00
  • 944732e500 docs(uns): implementation plan + task graph for global UNS management Joseph Doherty 2026-06-08 12:11:40 -04:00
  • 3361eac6d8 docs(uns): design for global UNS management tree-table Joseph Doherty 2026-06-08 12:02:18 -04:00
  • f5ef0991af docs(adminui): correct equipment help text for driver-less equipment (review I1/M1) Joseph Doherty 2026-06-08 07:13:45 -04:00
  • b962b041f3 docs(plan): driver-less equipment — all tasks complete + live-verified Joseph Doherty 2026-06-08 07:10:14 -04:00
  • d909a8e4f6 docs+test(deploy): clarify driver-less attribution docs + no-line exclusion test (Task 2 review) Joseph Doherty 2026-06-08 07:02:25 -04:00
  • 0b5fc44866 fix(adminui): show + clarify driver-less equipment across list/import (Task 1 review) Joseph Doherty 2026-06-08 07:00:03 -04:00
  • 53eb3fcda5 test(config): DraftValidator accepts driver-less equipment + driverless equipment namespace Joseph Doherty 2026-06-08 06:56:22 -04:00
  • c688899134 fix(deploy): cluster-attribute driver-less equipment via its UNS line area (BuildClusterSets) Joseph Doherty 2026-06-08 06:53:41 -04:00
  • d2dbf7b0d7 feat(config): make Equipment.DriverInstanceId nullable + driver-less AdminUI support + migration Joseph Doherty 2026-06-08 06:49:28 -04:00
  • a94d03a194 docs(plan): driver-less equipment namespace implementation plan (#143-147) Joseph Doherty 2026-06-08 06:40:14 -04:00
  • 064adb0bd0 docs(design): driver-less equipment namespace (nullable Equipment.DriverInstanceId, drop Modbus placeholder) Joseph Doherty 2026-06-08 06:36:40 -04:00
  • 446a45686f docs(plan): mark all VirtualTag/script-memory Phase-1 tasks complete Joseph Doherty 2026-06-07 15:57:43 -04:00
  • 92d1df88f4 fix(deploy): guardrail estimate is best-effort, never blocks a valid deploy Joseph Doherty 2026-06-07 15:40:06 -04:00
  • cfbf0b2a17 feat(deploy): warn-only script-compile-cost advisory on deploy Joseph Doherty 2026-06-07 15:35:53 -04:00
  • b73ce75402 harden(vtag): exclude backslash from passthrough capture + parity tests (A review) Joseph Doherty 2026-06-07 15:31:54 -04:00
  • 08d7477860 feat(vtag): passthrough fast-path skips Roslyn for mirror scripts (A) Joseph Doherty 2026-06-07 15:26:20 -04:00
  • 3834400f05 test(mem-probe): confirm A0 drops production per-script RSS ~11x (18->~1.66 MiB) Joseph Doherty 2026-06-07 15:19:02 -04:00
  • 1827c51c42 refactor(scripting): clarify sandbox-pin invariant + add RootNamespace (A0 review) Joseph Doherty 2026-06-07 15:16:14 -04:00
  • 56cac39216 refactor(scripting): extract script-callable types into Roslyn-free Core.Scripting.Abstractions (A0) Joseph Doherty 2026-06-07 15:10:00 -04:00
  • df772dd09a docs(plan): VirtualTag/script memory Phase-1 implementation plan (A0+A+guardrail) Joseph Doherty 2026-06-07 15:00:11 -04:00
  • 321d57938f docs(design): VirtualTag/script memory scalability (A0+A+guardrail; C2 deferred) + measurement harness Joseph Doherty 2026-06-07 14:55:28 -04:00
  • 89c07fc382 fix(docker-dev): mem_limit 1g->2g (1g OOM-killed central nodes under materialise load) Joseph Doherty 2026-06-07 14:40:43 -04:00
  • f078d41a8b test(deploy): cover cross-cluster rejection through the actor; note reservation false-positive at gate Joseph Doherty 2026-06-07 11:28:17 -04:00
  • 2676fc17b5 fix(host): pin EF/AspNetCore logs to Warning in appsettings.Development Joseph Doherty 2026-06-07 11:19:26 -04:00
  • 5aba418074 feat(deploy): activate full DraftValidator gate (reject on any validation error) Joseph Doherty 2026-06-07 11:19:23 -04:00
  • fc52fbce49 docs: follow-ons tasks all complete Joseph Doherty 2026-06-07 10:56:27 -04:00
  • f817fc8a8f fix(docker-dev): pin EF/AspNetCore logs to Warning + per-service mem limits to stop OOM/starvation Joseph Doherty 2026-06-07 10:53:08 -04:00
  • 46aba992c5 fix(config): DraftSnapshotFactory loads only active (unreleased) reservations Joseph Doherty 2026-06-07 10:47:33 -04:00
  • 1023209d52 feat(deploy): reject Tag/VirtualTag NodeId collisions at deploy (surgical DraftValidator gate) Joseph Doherty 2026-06-07 10:42:13 -04:00
  • fce66d104a refactor(config): materialise collision groups once; note VirtualTag folder coupling Joseph Doherty 2026-06-07 10:37:22 -04:00
  • 83c7149be0 feat(config): DraftValidator rule + DraftSnapshot.VirtualTags for Tag/VirtualTag NodeId collisions Joseph Doherty 2026-06-07 10:33:45 -04:00
  • 6b36eff2d3 refactor(runtime): capture-first in HandleWriteAsync; assert no handler leak on resubscribe; fix stale comment Joseph Doherty 2026-06-07 10:31:20 -04:00
  • 98259ab026 fix(runtime): capture Sender before await in DriverInstanceActor subscribe (no-ActorContext race) Joseph Doherty 2026-06-07 10:26:17 -04:00
  • ce8c0811eb docs(plan): OtOpcUa follow-ons implementation plan (subscribe race, collision gate, docker-dev) Joseph Doherty 2026-06-07 10:20:52 -04:00
  • 4cb488c53e docs(design): OtOpcUa follow-ons — subscribe race, signal-name collision validation, docker-dev resources Joseph Doherty 2026-06-07 10:06:08 -04:00