This website requires JavaScript.
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