Files
lmxopcua/docs/plans/2026-06-11-alias-tag.md.tasks.json
T
2026-06-12 07:55:54 -04:00

137 lines
3.5 KiB
JSON

{
"planPath": "docs/plans/2026-06-11-alias-tag.md",
"designPath": "docs/plans/2026-06-11-alias-tag-design.md",
"branch": "feat/uns-alias-tag",
"baseBranch": "master",
"baseSha": "305023aa",
"status": "in_progress",
"note": "Galaxy alias tag: an equipment-scoped Tag bound to GalaxyMxGateway surfacing a Galaxy attribute under a UNS name via direct subscription, replacing relay VirtualTags. Approach A reuses the Tag entity; NO entity/EF migration. Same-file contention: Phase7Composer.cs+DeploymentArtifact.cs in T2 only; EquipmentScriptPaths.cs in T1 only; DraftValidator.cs+Tag.cs in T3 only; IUnsTreeService.cs+UnsTreeService.cs serialize T4->T5->T7; EquipmentPage.razor serializes T6->T8. T1/T2/T3 parallel after T0. BuildAliasTag (T5) reused by the converter (T7). EquipmentTagRow gains DEFAULTED IsAlias/Source so existing constructions compile.",
"tasks": [
{
"id": 285,
"planTask": 0,
"subject": "T0: Create feature branch",
"classification": "trivial",
"status": "completed",
"blockedBy": []
},
{
"id": 286,
"planTask": 1,
"subject": "T1: Commons TryParseRelayBody + tests",
"classification": "small",
"status": "completed",
"blockedBy": [
285
],
"parallelizableWith": [
287,
288
]
},
{
"id": 287,
"planTask": 2,
"subject": "T2: Broaden equipment-tag filter (composer + artifact)",
"classification": "high-risk",
"status": "completed",
"blockedBy": [
285
],
"parallelizableWith": [
286,
288
]
},
{
"id": 288,
"planTask": 3,
"subject": "T3: DraftValidator alias-reference check + Tag doc",
"classification": "standard",
"status": "completed",
"blockedBy": [
285
],
"parallelizableWith": [
286,
287
]
},
{
"id": 289,
"planTask": 4,
"subject": "T4: Service read-side (DTO, gateway lookup, Source)",
"classification": "standard",
"status": "completed",
"blockedBy": [
285
]
},
{
"id": 290,
"planTask": 5,
"subject": "T5: Service write-side (Create/Update alias + guard)",
"classification": "standard",
"status": "completed",
"blockedBy": [
289
]
},
{
"id": 291,
"planTask": 6,
"subject": "T6: AliasTagModal + Tags-tab Add-alias wiring",
"classification": "standard",
"status": "completed",
"blockedBy": [
290
]
},
{
"id": 292,
"planTask": 7,
"subject": "T7: Converter service method + DTOs + tests",
"classification": "high-risk",
"status": "completed",
"blockedBy": [
286,
290
]
},
{
"id": 293,
"planTask": 8,
"subject": "T8: Converter UI (per-equipment + fleet-wide)",
"classification": "standard",
"status": "completed",
"blockedBy": [
291,
292
]
},
{
"id": 294,
"planTask": 9,
"subject": "T9: Docs (Uns.md, CLAUDE.md)",
"classification": "small",
"status": "completed",
"blockedBy": []
},
{
"id": 295,
"planTask": 10,
"subject": "T10: Full-suite gate + live /run + finish",
"classification": "verification",
"status": "in_progress",
"blockedBy": [
287,
288,
291,
292,
293,
294
]
}
],
"lastUpdated": "2026-06-11"
}