diff --git a/docs/plans/2026-06-06-equipment-namespace-materialization-scope.md b/docs/plans/2026-06-06-equipment-namespace-materialization-scope.md index 1ae31d59..536faec1 100644 --- a/docs/plans/2026-06-06-equipment-namespace-materialization-scope.md +++ b/docs/plans/2026-06-06-equipment-namespace-materialization-scope.md @@ -1,6 +1,16 @@ # Scope: Equipment-Namespace Materialization in the Live Deploy Path -**Status:** Scoping (not yet a task plan) +> **STATUS UPDATE 2026-06-07 — WS-1/2/4 (structure) and WS-3a (VirtualTag live values) are DONE.** +> The structure milestone shipped on `master` (`febe462..9a67ebc`). **WS-3a — live values via VirtualTags** +> shipped on branch `feat/equipment-namespace-live-values` (plan: +> [`2026-06-07-equipment-namespace-live-values.md`](2026-06-07-equipment-namespace-live-values.md)). +> Verified live in docker-dev: galaxy mirror **396/396 Good**, and the company-shape Equipment namespace +> carries **live Good values** via VirtualTags — every company signal backed by a real galaxy source +> (396 of 1036; the other 640 cite synthetic refs the company UNS model invented beyond the 396 real +> galaxy attributes). Restart-safe (bootstrap restore re-serves Good, no re-deploy). WS-3b (OpcUaClient +> driver route) was **not** taken (the VirtualTag route was chosen). WS-5 (tests) done throughout. + +**Status:** WS-1/2/4 + WS-3a DONE (2026-06-07); WS-3b not pursued **Date:** 2026-06-06 **Author:** investigation while building the Northwind UNS overlay (see `scadaproj/otopcua-uns-loader/`) **Depends on:** the driver value-streaming fixes already on `master` (`c1ce583`, `b1b3f3f`) diff --git a/docs/plans/2026-06-07-equipment-namespace-live-values.md.tasks.json b/docs/plans/2026-06-07-equipment-namespace-live-values.md.tasks.json index 601437d3..19d37b91 100644 --- a/docs/plans/2026-06-07-equipment-namespace-live-values.md.tasks.json +++ b/docs/plans/2026-06-07-equipment-namespace-live-values.md.tasks.json @@ -1,15 +1,15 @@ { "planPath": "docs/plans/2026-06-07-equipment-namespace-live-values.md", "tasks": [ - {"id": 0, "subject": "Task 0: EquipmentVirtualTagPlan record + composition member", "status": "pending", "classification": "small"}, - {"id": 1, "subject": "Task 1: Populate EquipmentVirtualTags in Phase7Composer.Compose", "status": "pending", "classification": "standard", "blockedBy": [0], "parallelizableWith": [2, 3, 5]}, - {"id": 2, "subject": "Task 2: Parse EquipmentVirtualTags in DeploymentArtifact", "status": "pending", "classification": "standard", "blockedBy": [0], "parallelizableWith": [1, 3, 5]}, - {"id": 3, "subject": "Task 3: Phase7Plan diff dimension for Equipment VirtualTags", "status": "pending", "classification": "standard", "blockedBy": [0], "parallelizableWith": [1, 2, 5]}, - {"id": 4, "subject": "Task 4: Materialise Equipment VirtualTag variables + HandleRebuild call", "status": "pending", "classification": "standard", "blockedBy": [1, 2, 3]}, - {"id": 5, "subject": "Task 5: VirtualTagHostActor (spawn, subscribe, bridge results)", "status": "pending", "classification": "high-risk", "blockedBy": [0], "parallelizableWith": [1, 2, 3]}, - {"id": 6, "subject": "Task 6: Wire VirtualTagHostActor into DriverHostActor (apply+restore) + evaluator inject", "status": "pending", "classification": "high-risk", "blockedBy": [4, 5]}, - {"id": 7, "subject": "Task 7: Loader emits VirtualTag+Script rows; verify-equipment asserts live values", "status": "pending", "classification": "standard", "parallelizableWith": [1, 2, 3, 4, 5, 6]}, - {"id": 8, "subject": "Task 8: docker-dev end-to-end deploy + verify live Good values", "status": "pending", "classification": "standard", "blockedBy": [6, 7]}, + {"id": 0, "subject": "Task 0: EquipmentVirtualTagPlan record + composition member", "status": "completed", "classification": "small"}, + {"id": 1, "subject": "Task 1: Populate EquipmentVirtualTags in Phase7Composer.Compose", "status": "completed", "classification": "standard", "blockedBy": [0], "parallelizableWith": [2, 3, 5]}, + {"id": 2, "subject": "Task 2: Parse EquipmentVirtualTags in DeploymentArtifact", "status": "completed", "classification": "standard", "blockedBy": [0], "parallelizableWith": [1, 3, 5]}, + {"id": 3, "subject": "Task 3: Phase7Plan diff dimension for Equipment VirtualTags", "status": "completed", "classification": "standard", "blockedBy": [0], "parallelizableWith": [1, 2, 5]}, + {"id": 4, "subject": "Task 4: Materialise Equipment VirtualTag variables + HandleRebuild call", "status": "completed", "classification": "standard", "blockedBy": [1, 2, 3]}, + {"id": 5, "subject": "Task 5: VirtualTagHostActor (spawn, subscribe, bridge results)", "status": "completed", "classification": "high-risk", "blockedBy": [0], "parallelizableWith": [1, 2, 3]}, + {"id": 6, "subject": "Task 6: Wire VirtualTagHostActor into DriverHostActor (apply+restore) + evaluator inject", "status": "completed", "classification": "high-risk", "blockedBy": [4, 5]}, + {"id": 7, "subject": "Task 7: Loader emits VirtualTag+Script rows; verify-equipment asserts live values", "status": "completed", "classification": "standard", "parallelizableWith": [1, 2, 3, 4, 5, 6]}, + {"id": 8, "subject": "Task 8: docker-dev end-to-end deploy + verify live Good values", "status": "completed", "classification": "standard", "blockedBy": [6, 7]}, {"id": 9, "subject": "Task 9: Docs + memory update", "status": "pending", "classification": "trivial", "blockedBy": [8]} ], "lastUpdated": "2026-06-07"