Files
lmxopcua/docs/plans/2026-06-17-historian-paging-udt-member-paths.md.tasks.json
T

20 lines
2.5 KiB
JSON

{
"planPath": "docs/plans/2026-06-17-historian-paging-udt-member-paths.md",
"designPath": "docs/plans/2026-06-17-historian-paging-udt-member-paths-design.md",
"designCommit": "ad66ecc9",
"baseMaster": "c402872c",
"branch": "feat/stillpending-historian-paging-udt-members",
"scope": "Bundle two stillpending.md §2 items. WS-A (#400): page Raw history WITHIN an oversized tie-cluster timestamp via a bounded within-timestamp over-fetch (HistoryPaging.SliceTieCluster pure helper + MaxTieClusterOverfetch knob + ServeRawPaged stuck-branch rewrite) instead of the loud BadHistoryOperationUnsupported. WS-B AbCip: fan out controller-discovered UDTs into atomic-member Variables via the cached UDT shape (mirror the pre-declared fan-out). WS-B TwinCAT: pure TwinCATSymbolExpander recursion (over a minimal ITwinCATSymbolNode abstraction) fed by the real ADS ISymbol tree in BrowseSymbolsAsync. NO Commons/wire/proto/EF change; NO bUnit. Live: WS-A unit+integration-proven (historian infra-gated); AbCip best-effort (ab_server partial UDT); TwinCAT operator-gated.",
"dependencyGraph": "{T1 ∥ T2 ∥ T3} → T4 → T5 → T6 (T1 OpcUaServer/Runtime/Host ∥ T2 AbCip ∥ T3 TwinCAT touch disjoint projects)",
"tasks": [
{"id": 1, "subject": "WS-A #400: HistoryPaging.SliceTieCluster + MaxTieClusterOverfetch option + ServeRawPaged within-timestamp over-fetch + tests", "classification": "standard", "parallelizableWith": [2, 3], "status": "pending"},
{"id": 2, "subject": "WS-B AbCip: controller-discovered UDT member expansion (fetch shape + fan out atomic members, bounded depth) + tests", "classification": "standard", "parallelizableWith": [1, 3], "status": "pending"},
{"id": 3, "subject": "WS-B TwinCAT: pure TwinCATSymbolExpander recursion + real BrowseSymbolsAsync ISymbol adapter + tests", "classification": "standard", "parallelizableWith": [1, 2], "status": "pending"},
{"id": 4, "subject": "Docs (Historian.md paging-limitation→resolved + AbCip.md/TwinCAT.md UDT member sections) + §2 clear via plan record only", "classification": "small", "status": "pending", "blockedBy": [1, 2, 3]},
{"id": 5, "subject": "Full build + OpcUaServer/AbCip/TwinCAT tests + final integration review", "classification": "standard", "status": "pending", "blockedBy": [4]},
{"id": 6, "subject": "Live /run best-effort + finish branch (merge to master + push) + memory", "classification": "standard", "status": "pending", "blockedBy": [5]}
],
"executionState": "PLANNED — ready for subagent-driven execution.",
"lastUpdated": "2026-06-17"
}