Files
lmxopcua/docs/plans/2026-06-17-stillpending-bit-rmw-writes.md.tasks.json
T

18 lines
1.8 KiB
JSON

{
"planPath": "docs/plans/2026-06-17-stillpending-bit-rmw-writes.md",
"designPath": "docs/plans/2026-06-17-stillpending-bit-rmw-writes-design.md",
"designCommit": "cf231a78",
"baseMaster": "67da6d4f",
"branch": "feat/stillpending-bit-rmw-writes",
"scope": "Inbound bit-index RMW writes. AbLegacy: drop the B/I/O exclusion so B/I/O-file bit writes route through the existing WriteBitInWordAsync RMW (input-image write is device-gated, faithful status). TwinCAT: driver-level BOOL-within-word RMW in TwinCATDriver.WriteAsync (read parent as UDInt->uint, flip bit, write back, per-parent SemaphoreSlim) + remove the AdsTwinCATClient throw. Closes 2 stillpending.md §2 lines. NO Commons/wire/proto/EF change; NO bUnit. Live = fixture-gated/unit-proven.",
"dependencyGraph": "{T1 ∥ T2} → T3 → T4 → T5 (T1 AbLegacy ∥ T2 TwinCAT touch disjoint projects)",
"tasks": [
{"id": 1, "subject": "AbLegacy B/I/O-file bit writes (drop the WriteBitInWordAsync exclusion) + tests", "classification": "standard", "status": "pending", "parallelizableWith": [2]},
{"id": 2, "subject": "TwinCAT BOOL-within-word driver-level RMW (read/flip/write parent as UDInt, per-parent lock) + remove client throw + tests", "classification": "standard", "status": "pending", "parallelizableWith": [1]},
{"id": 3, "subject": "Docs (AbLegacy.md + TwinCAT.md) + plan-record §2 clear (do NOT stage stillpending.md)", "classification": "small", "status": "pending", "blockedBy": [1, 2]},
{"id": 4, "subject": "Full build + AbLegacy + TwinCAT tests + final integration review", "classification": "standard", "status": "pending", "blockedBy": [3]},
{"id": 5, "subject": "Live /run best-effort (fixture-gated) + finish branch (merge to master + push) + memory", "classification": "standard", "status": "pending", "blockedBy": [4]}
],
"lastUpdated": "2026-06-17"
}