diff --git a/docs/plans/2026-07-21-issue-485-live-gate.md b/docs/plans/2026-07-21-issue-485-live-gate.md index 34d98729..e766a389 100644 --- a/docs/plans/2026-07-21-issue-485-live-gate.md +++ b/docs/plans/2026-07-21-issue-485-live-gate.md @@ -61,3 +61,16 @@ not a data-plane one: the node keeps serving its last good configuration through ACK `Failed` and leave `_currentRevision` alone when the artifact could not be read, so the normal deploy retry heals it. Tracked separately rather than folded in here, because it changes deploy ACK semantics fleet-wide. + +## Addendum — issue #486 fix, live-gated (2026-07-21) + +The finding above is now fixed (`DriverHostActor.ApplyAndAck` fails the apply when `ReconcileDrivers` +returns null) and gated on the same rig with the same induction. + +| # | Check | Result | Evidence | +|---|---|---|---| +| 8 | Regression — a normal deploy still ACKs Applied fleet-wide | ✅ | The change alters ACK semantics, so this is the risk that matters. A genuine deploy recorded `Status = Applied` on **all six** nodes. | +| 9 | An unreadable artifact now ACKs Failed, with a reason | ✅ | central-2 recorded `Status = Failed` + `the deployment artifact could not be read (ConfigDb unreachable, or the row is missing/empty); nothing was applied`. The five nodes that read the real artifact recorded Applied — so the fleet view now distinguishes them. Pre-fix, all six claimed Applied. | +| 10 | The revision is NOT advanced | ✅ | `apply of a855dd9e… FAILED — … Staying on revision 5bc0d9f3…` — the **previous** revision, not the dispatched `583122b7…`. This is what stops `HandleDispatchFromSteady` from short-circuiting a retry of that revision. | +| 11 | The node keeps serving throughout (#485 still holds) | ✅ | The #485 guard fired first (`keeping the 5 running driver(s)`), and `ns=2;s=pymodbus/plc/HR200X` read **59603 @ 07:27:28**, live and current, after the Failed apply. Failing the apply reports the truth; it does not tear anything down. | +| 12 | The node recovers on the next real deploy | ✅ | The following deployment applied on central-2 (`children=5`) and recorded Applied on all six nodes. |