docs: mark WS-3a (Equipment live values) done; finalize task tracker

This commit is contained in:
Joseph Doherty
2026-06-07 06:08:36 -04:00
parent 2bfe18abcf
commit 2e4e100733
2 changed files with 20 additions and 10 deletions
@@ -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`)
@@ -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"