docs(plans): open-plan-task sweep — followups-batch T9 (Modbus-Int64) + T10 (S7/AbCip probe E2E) verified live PASS; fixedtree T11 + adminui 10.4 closed obsolete (v3 deleted their subjects); open plan tasks 7 -> 3
This commit is contained in:
@@ -12,17 +12,167 @@
|
||||
"reconsiderGates": "T7 BUILT+SHIPPED (FB-7, master 30c9821f). T8 NOT built (awaiting explicit go-ahead). T9/T10 DONE (FB-9/FB-10, live-verified). T11 PARTIAL: Phase B native-alarm pipeline PROVEN live 2026-06-19 (Galaxy! ConditionId-prefix finding); Phase C HistoryRead + H6 ack->AVEVA + AbLegacy/FOCAS/TwinCAT probes remain AVEVA/hardware/no-local-target deferred."
|
||||
},
|
||||
"tasks": [
|
||||
{"id": 1, "ref": "A1", "subject": "OpcUaClient history session-capture-before-gate race fix", "classification": "standard", "status": "completed", "commits": ["eb328e57","eede0c92"], "parallelizableWith": [2,3,4,5,6], "group": "A-actionable"},
|
||||
{"id": 2, "ref": "A2", "subject": "Client.CLI enable/disable command (H4 client path)", "classification": "standard", "status": "completed", "commits": ["88d5ba45","f81fa768"], "parallelizableWith": [1,3,4,5,6], "group": "A-actionable"},
|
||||
{"id": 3, "ref": "A3", "subject": "Cert-audit minor review nits (unreachable fallthrough comment + single PkiStoreRoot read)", "classification": "trivial", "status": "completed", "commits": ["6223bc97"], "parallelizableWith": [1,2,4,5,6], "group": "A-actionable"},
|
||||
{"id": 4, "ref": "B2", "subject": "AdminUI: preserve edited alarm fields on Galaxy address re-pick", "classification": "small", "status": "completed", "commits": ["2dd723e1","e047af05"], "liveVerify": "substantial (picker+gateway-browse+config-commit confirmed; final pick-and-assert blocked by object-browser href quirk; preservation unit-tested)", "parallelizableWith": [1,2,3,5,6], "group": "B-deferred"},
|
||||
{"id": 5, "ref": "B3", "subject": "AdminUI: refresh script dropdown label after inline create", "classification": "small", "status": "completed", "commits": ["da57c307","d8254630"], "liveVerify": "PASS (inline New script -> dropdown label = new script)", "parallelizableWith": [1,2,3,4,6], "group": "B-deferred"},
|
||||
{"id": 6, "ref": "B1", "subject": "Write-outcome residuals: Bad-quality blip + AuditWriteUpdateEvent + sync fail-fast", "classification": "standard", "status": "completed", "commits": ["36eb14e8","85afb678"], "note": "production already shipped bb59fd4e 2026-06-15; delivered missing behavioural test coverage + private->internal seam", "parallelizableWith": [1,2,3,4,5], "group": "B-deferred"},
|
||||
{"id": 7, "ref": "B4", "subject": "F10b surgical DataType/IsArray in-place writes", "classification": "standard", "status": "pending", "gate": "RECONSIDER — previously decided against (dirty); do NOT build without explicit go-ahead", "group": "B-reconsider"},
|
||||
{"id": 8, "ref": "B5", "subject": "Alarm-severity SetSeverity surgical update", "classification": "small", "status": "pending", "gate": "RECONSIDER — operationally invisible (alarm engine overwrites); do NOT build without explicit go-ahead", "group": "B-reconsider"},
|
||||
{"id": 9, "ref": "C1", "subject": "Modbus-Int64 full live authoring on docker-dev", "classification": "verify", "status": "pending", "note": "operator/rig verify-only; seed a Modbus driver", "group": "C-verify"},
|
||||
{"id": 10, "ref": "C2", "subject": "S7 + AbCip Test-Connect probe happy-path live-verify", "classification": "verify", "status": "pending", "note": "needs lmxopcua-fix fixtures from the Windows VM", "group": "C-verify"},
|
||||
{"id": 11, "ref": "C3", "subject": "Device-gated proofs (H6 ack→AVEVA, Phase C T7, Phase B T9, AbLegacy/TwinCAT/FOCAS probe)", "classification": "blocked", "status": "partial", "note": "Live-assessed 2026-06-19 (gateway 10.100.0.48:5120 reachable from this Mac, so the 'all blocked' label was partly stale). OUTCOMES: (Phase B T9) DONE — native-alarm PIPELINE proven end-to-end live on docker-dev: authored a Galaxy alarm tag (FullName=Galaxy!TestArea.TestMachine_001.TestAlarm001, alarm{alarmType:OffNormalAlarm,severity:750}) -> Galaxy driver opened the native-alarm subscription (previously-gated path) -> gateway transition materialised Part 9 condition GalaxyNativeAlarm (ns=2;s=EQ-55297329838d/GalaxyNativeAlarm) carrying the EXACT gateway raise time 2026-05-24T16:04:10.856Z, surfaced via ConditionRefresh. KEY FINDING: ConditionId match REQUIRES the 'Galaxy!' source prefix on the authored FullName (without it every transition is silently dropped). Severity 700 = MapSeverity(750) (MediumHigh bucket), not a bug. Net state Inactive/Unacked because the gateway replays weeks-old historical raises -> a fresh Active-state + live /alerts row needs an alarm triggered on the AVEVA side. (Phase C T7) DEFERRED config+data-gated — confirmed the historized Galaxy node materialises + server HistoryRead path returns GoodNoData/0-values with ServerHistorian.Enabled=false (correct NullHistorianDataSource degrade); live data needs enabling ServerHistorian + Wonderware sidecar on 10.100.0.48 + actual stored history (synthetic ref has none). (H6 ack->AVEVA) DEFERRED — ack SEND reachable but Galaxy AckMsg is write-only/fire-and-forget; confirming it LANDED needs AVEVA-side observation on 10.100.0.48. (AbLegacy/FOCAS/TwinCAT probe) DEFERRED — no local sims running + no live-target probe harness; TwinCAT(ADS) genuinely has no rig target. Rig restored (alarm tag removed, Galaxy back to value-only).", "group": "C-blocked"}
|
||||
{
|
||||
"id": 1,
|
||||
"ref": "A1",
|
||||
"subject": "OpcUaClient history session-capture-before-gate race fix",
|
||||
"classification": "standard",
|
||||
"status": "completed",
|
||||
"commits": [
|
||||
"eb328e57",
|
||||
"eede0c92"
|
||||
],
|
||||
"parallelizableWith": [
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6
|
||||
],
|
||||
"group": "A-actionable"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"ref": "A2",
|
||||
"subject": "Client.CLI enable/disable command (H4 client path)",
|
||||
"classification": "standard",
|
||||
"status": "completed",
|
||||
"commits": [
|
||||
"88d5ba45",
|
||||
"f81fa768"
|
||||
],
|
||||
"parallelizableWith": [
|
||||
1,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6
|
||||
],
|
||||
"group": "A-actionable"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"ref": "A3",
|
||||
"subject": "Cert-audit minor review nits (unreachable fallthrough comment + single PkiStoreRoot read)",
|
||||
"classification": "trivial",
|
||||
"status": "completed",
|
||||
"commits": [
|
||||
"6223bc97"
|
||||
],
|
||||
"parallelizableWith": [
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
5,
|
||||
6
|
||||
],
|
||||
"group": "A-actionable"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"ref": "B2",
|
||||
"subject": "AdminUI: preserve edited alarm fields on Galaxy address re-pick",
|
||||
"classification": "small",
|
||||
"status": "completed",
|
||||
"commits": [
|
||||
"2dd723e1",
|
||||
"e047af05"
|
||||
],
|
||||
"liveVerify": "substantial (picker+gateway-browse+config-commit confirmed; final pick-and-assert blocked by object-browser href quirk; preservation unit-tested)",
|
||||
"parallelizableWith": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
5,
|
||||
6
|
||||
],
|
||||
"group": "B-deferred"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"ref": "B3",
|
||||
"subject": "AdminUI: refresh script dropdown label after inline create",
|
||||
"classification": "small",
|
||||
"status": "completed",
|
||||
"commits": [
|
||||
"da57c307",
|
||||
"d8254630"
|
||||
],
|
||||
"liveVerify": "PASS (inline New script -> dropdown label = new script)",
|
||||
"parallelizableWith": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
6
|
||||
],
|
||||
"group": "B-deferred"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"ref": "B1",
|
||||
"subject": "Write-outcome residuals: Bad-quality blip + AuditWriteUpdateEvent + sync fail-fast",
|
||||
"classification": "standard",
|
||||
"status": "completed",
|
||||
"commits": [
|
||||
"36eb14e8",
|
||||
"85afb678"
|
||||
],
|
||||
"note": "production already shipped bb59fd4e 2026-06-15; delivered missing behavioural test coverage + private->internal seam",
|
||||
"parallelizableWith": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5
|
||||
],
|
||||
"group": "B-deferred"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"ref": "B4",
|
||||
"subject": "F10b surgical DataType/IsArray in-place writes",
|
||||
"classification": "standard",
|
||||
"status": "pending",
|
||||
"gate": "RECONSIDER \u2014 previously decided against (dirty); do NOT build without explicit go-ahead",
|
||||
"group": "B-reconsider"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"ref": "B5",
|
||||
"subject": "Alarm-severity SetSeverity surgical update",
|
||||
"classification": "small",
|
||||
"status": "pending",
|
||||
"gate": "RECONSIDER \u2014 operationally invisible (alarm engine overwrites); do NOT build without explicit go-ahead",
|
||||
"group": "B-reconsider"
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"ref": "C1",
|
||||
"subject": "Modbus-Int64 full live authoring on docker-dev",
|
||||
"classification": "verify",
|
||||
"status": "completed",
|
||||
"note": "VERIFIED PASS 2026-08-10 on docker-dev (rig rebuilt to master 481f4343, image parity asserted across all 6 nodes). Authored Int64 raw tag TASK9-INT64 (RawPath pymodbus/plc/Task9Int64, TagConfig region=HoldingRegisters address=200 dataType=Int64 BigEndian) via ConfigDb + headless deploy API; deployment b4d7c8be sealed (Status=2). Node advertises DataType i=8 (Int64), ValueRank -1, Good, on BOTH :4840 and :4841; value 347340207162261544 is the exact BigEndian decode of HR200-203=(1234,20,30,40). Value-change propagation proven by driving HR203 via FC06 (observed via subscribe on both centrals; registers restored after). Fixture caveat: the standard profile has NO naturally-churning 4-register span (HR100 is isolated; spans over it return ILLEGAL DATA ADDRESS), so churn was externally driven. No product gap. Tag row left in place, deployed and serving, consistent with prior gate rows.",
|
||||
"group": "C-verify"
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"ref": "C2",
|
||||
"subject": "S7 + AbCip Test-Connect probe happy-path live-verify",
|
||||
"classification": "verify",
|
||||
"status": "completed",
|
||||
"note": "VERIFIED PASS 2026-08-10: DriverProbeHandshakeE2eTests 12/12 passed, 0 skipped (S7_Green_AgainstSim, AbCip_Green_AgainstSim with 'CIP session OK' proving a real authored-tag read, AbCip_WithNoAuthoredTags_ReportsTheControllerReachable, plus Modbus/OpcUaClient/local-rig/Galaxy legs \u2014 mxaccessgw on 10.100.0.48 happened to be reachable). Correction to the task's premise: skip-gating is pure TCP reachability (DockerFixtureAvailability.IsReachable), NOT env vars, and the checked-in defaults already point at 10.100.0.35 \u2014 runnable from macOS directly; the 'needs Windows-VM fixtures' note was stale. S7 fixture started then removed (net zero); AbCip was already up (5 days) and left as found.",
|
||||
"group": "C-verify"
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"ref": "C3",
|
||||
"subject": "Device-gated proofs (H6 ack\u2192AVEVA, Phase C T7, Phase B T9, AbLegacy/TwinCAT/FOCAS probe)",
|
||||
"classification": "blocked",
|
||||
"status": "partial",
|
||||
"note": "Live-assessed 2026-06-19 (gateway 10.100.0.48:5120 reachable from this Mac, so the 'all blocked' label was partly stale). OUTCOMES: (Phase B T9) DONE \u2014 native-alarm PIPELINE proven end-to-end live on docker-dev: authored a Galaxy alarm tag (FullName=Galaxy!TestArea.TestMachine_001.TestAlarm001, alarm{alarmType:OffNormalAlarm,severity:750}) -> Galaxy driver opened the native-alarm subscription (previously-gated path) -> gateway transition materialised Part 9 condition GalaxyNativeAlarm (ns=2;s=EQ-55297329838d/GalaxyNativeAlarm) carrying the EXACT gateway raise time 2026-05-24T16:04:10.856Z, surfaced via ConditionRefresh. KEY FINDING: ConditionId match REQUIRES the 'Galaxy!' source prefix on the authored FullName (without it every transition is silently dropped). Severity 700 = MapSeverity(750) (MediumHigh bucket), not a bug. Net state Inactive/Unacked because the gateway replays weeks-old historical raises -> a fresh Active-state + live /alerts row needs an alarm triggered on the AVEVA side. (Phase C T7) DEFERRED config+data-gated \u2014 confirmed the historized Galaxy node materialises + server HistoryRead path returns GoodNoData/0-values with ServerHistorian.Enabled=false (correct NullHistorianDataSource degrade); live data needs enabling ServerHistorian + Wonderware sidecar on 10.100.0.48 + actual stored history (synthetic ref has none). (H6 ack->AVEVA) DEFERRED \u2014 ack SEND reachable but Galaxy AckMsg is write-only/fire-and-forget; confirming it LANDED needs AVEVA-side observation on 10.100.0.48. (AbLegacy/FOCAS/TwinCAT probe) DEFERRED \u2014 no local sims running + no live-target probe harness; TwinCAT(ADS) genuinely has no rig target. Rig restored (alarm tag removed, Galaxy back to value-only).",
|
||||
"group": "C-blocked"
|
||||
}
|
||||
],
|
||||
"lastUpdated": "2026-06-19"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user