docs(plans): close F10b + SetSeverity reconsider gates as decided-against (user-confirmed 2026-08-10); open plan tasks 3 -> 1
This commit is contained in:
@@ -76,11 +76,11 @@ build/test/rig. Finish a batch = ff-merge to master + push.
|
||||
3. If any sub-part balloons >~300 LOC, split it out. Build; OpcUaServer + Runtime tests green.
|
||||
4. Commit `feat(opcua): emit Bad blip + AuditWriteUpdateEvent + sync fail-fast on failed device write`.
|
||||
|
||||
### Task 7 (B4): F10b surgical DataType/IsArray in-place writes — **RECONSIDER GATE**
|
||||
**Classification:** standard · **Do NOT build without an explicit fresh go-ahead** (previously decided against as dirty — brief value-type mismatch, no ModelChangeEvents, rare edits). If approved: extend `ISurgicalAddressSpaceSink.UpdateTagAttributes` to swap DataType/ValueRank in place + emit ModelChangeEvents; widen `Phase7Applier.TagDeltaIsSurgicalEligible`; **live-`/run` the rebuild=False path** (the prod-inertness trap, see the F10b deferred-wrapper lesson). Until approved this stays a deferred record.
|
||||
### Task 7 (B4): F10b surgical DataType/IsArray in-place writes — **CLOSED: DECIDED AGAINST (2026-08-10)**
|
||||
**Classification:** standard · Previously decided against as dirty (brief value-type mismatch, no ModelChangeEvents, rare edits); the reconsider gate was put to the user 2026-08-10 and the decision confirmed: **do not build.** The rebuild path handles DataType/IsArray edits *correctly*, just heavily; the surgical path would buy a rare authoring correction at the cost of a client-visible atomicity window (cached DataType vs. last published value), new ModelChangeEvent spec surface, and a mandatory live-`/run` of the rebuild=False path (the prod-inertness trap). **Re-open trigger:** operators complaining about rebuild/subscription churn on data-type edits — that evidence, and nothing weaker, reopens this.
|
||||
|
||||
### Task 8 (B5): Alarm-severity `SetSeverity` surgical update — **RECONSIDER GATE**
|
||||
**Classification:** small · **Do NOT build without an explicit fresh go-ahead** (operationally invisible — the alarm engine overwrites authored severity on first eval). Recorded so the decision isn't a silent gap.
|
||||
### Task 8 (B5): Alarm-severity `SetSeverity` surgical update — **CLOSED: DECIDED AGAINST (2026-08-10)**
|
||||
**Classification:** small · Reconsider gate put to the user 2026-08-10; decision confirmed: **do not build.** Operationally invisible — the alarm engine overwrites authored severity with its computed value on the condition's first evaluation (re-verified on the current tree: `OtOpcUaNodeManager` still projects engine-computed severity), so the surgical write would be observable only between deploy and the next transition.
|
||||
|
||||
### Task 9 (C1): Modbus-Int64 full live authoring — **VERIFY-ONLY (operator/rig)**
|
||||
**Classification:** verify · Seed a Modbus driver on docker-dev → sim `10.100.0.35:5020`, author an Int64 equipment tag, deploy, confirm the OPC UA node advertises `DataTypeIds.Int64` + reads changing. No code unless a gap surfaces.
|
||||
|
||||
@@ -133,18 +133,20 @@
|
||||
"ref": "B4",
|
||||
"subject": "F10b surgical DataType/IsArray in-place writes",
|
||||
"classification": "standard",
|
||||
"status": "pending",
|
||||
"status": "closed",
|
||||
"gate": "RECONSIDER \u2014 previously decided against (dirty); do NOT build without explicit go-ahead",
|
||||
"group": "B-reconsider"
|
||||
"group": "B-reconsider",
|
||||
"notes": "CLOSED 2026-08-10: decided against, user-confirmed. Rebuild path is correct (just heavy); surgical swap adds a client-visible atomicity window + ModelChangeEvent surface + mandatory live-gate for a rare edit. Re-open trigger: operator complaints about rebuild churn on data-type edits."
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"ref": "B5",
|
||||
"subject": "Alarm-severity SetSeverity surgical update",
|
||||
"classification": "small",
|
||||
"status": "pending",
|
||||
"status": "closed",
|
||||
"gate": "RECONSIDER \u2014 operationally invisible (alarm engine overwrites); do NOT build without explicit go-ahead",
|
||||
"group": "B-reconsider"
|
||||
"group": "B-reconsider",
|
||||
"notes": "CLOSED 2026-08-10: decided against, user-confirmed. Operationally invisible - the alarm engine overwrites authored severity on first eval (re-verified: OtOpcUaNodeManager still projects engine-computed severity)."
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
@@ -176,4 +178,4 @@
|
||||
}
|
||||
],
|
||||
"lastUpdated": "2026-06-19"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user