diff --git a/deferment.md b/deferment.md index 1cea845d..bc88e977 100644 --- a/deferment.md +++ b/deferment.md @@ -31,7 +31,7 @@ how much they should worry you: |---|---|---|---| | **1** | **Three subsystems are fully authored, persisted, and shipped — and never executed.** Node ACLs, `IRediscoverable`/`IHostConnectivityProbe`, and `DriverTypeRegistry`. | An operator can author a rule, save it, deploy it green, and have it do **nothing**. §3 | ◐ `IRediscoverable` now consumed; the other two are **documented as inert** and tracked (#520, #521, #522) rather than fixed | | **2** | **AdminUI authoring-dispatch gaps.** Calculation is offered in the driver picker but has no config form; three drivers have no device form; CSV + browse-commit dispatch maps miss the new drivers. | The "registered but unauthorable" class that has now bitten twice. §1.2 | ✅ **Closed** — G-1…G-6 fixed and guarded; G-7 remains | -| **3** | **17 open issues, all confirmed still open**, several broader than filed. | §2 | ◐ 3 resolved by the merge; 4 new filed → **21 open on the tracker**, of which 3 are stale-open | +| **3** | **17 open issues, all confirmed still open**, several broader than filed. | §2 | ◐ 4 resolved + closed, 4 new filed (one since closed) → **18 open**, none stale | | **4** | **Bookkeeping drift.** 8 `.tasks.json` files show ~140 "pending" tasks for work that shipped; 5 CLAUDE.md status claims are stale. | Someone follows the tracker and rebuilds a shipped driver. §6, §7 | ✅ **Closed** — 13 plan files + 11 archreview gates written back | Nothing here is a data-loss or outage defect. The sharpest edge is §3 — silent non-enforcement. @@ -46,15 +46,26 @@ themes into tracked decisions. What remains: | **#520** node ACLs authored + deployed but **never enforced** | Decision: wire it or retire the surface. Non-enforcement is now stated in docs and warned in the UI, so nobody can author a deny rule believing it works — but reads are still ungated. | §3.1 | | **#521** `IHostConnectivityProbe` / `DriverHostStatus` dead surface | Decision: build the publisher or delete it. The table was deliberately re-created in the v3 initial migration, so deleting on inference would be wrong. | §3.2 | | **#522** driver stability tiers inert | Decision: pass real tiers or delete the machinery. Docs now say every driver runs Tier A. | §3.3 | -| ~~**#523** remove the periodic 5-min device re-browse~~ | ✅ **Done** — removed. **AbCip and FOCAS now have no tag-change signal at all**; that is the accepted consequence, not an oversight. | §9 (2026-07-28, #523) | +| ~~**#523** remove the periodic 5-min device re-browse~~ | ✅ **Done + closed on the tracker.** **AbCip and FOCAS now have no tag-change signal at all**; that is the accepted consequence, not an oversight. | §9 (2026-07-30, #523) | | **G-7** `EquipmentTagConfigInspector` coverage | ◐ **Narrowed + guarded** (2026-07-28): MQTT wired (it shipped an `Inspect` nobody called), and a reflection guard now fails the build if a reachable driver ships one and is not mapped. **Residual:** Sql / MTConnect / Calculation / OpcUaClient have no Contracts-side `Inspect` at all, so the deploy gate stays blind for them while the AdminUI validates them — see §1.2. | §1.2 | | ~~**13 `EquipmentTagsDarkBatch4` skipped tests**~~ | ✅ **Done** — 6 revived onto the raw/UNS shape, 3 folded into a widened live parity corpus, 4 deleted as retired. The reason constant is gone. **Skips now: `Runtime.Tests` 13 → 3, `OpcUaServer.Tests` 4 → 1** — all remaining are deliberate `EquipmentDeviceBindingRetired` tombstones. | §9 (2026-07-28, skips) | | 17 other tracker issues | Driver features + deferred work, unchanged by this remediation. | §2 | | Open live gates | #491 continuous historization, #468 browser tree, archreview R2-03 / R2-10. *(The un-gated drift detector's gate closed by deletion — see #523.)* | §5 | -**Three issues are resolved but still open on the tracker** — **#516** (fixed for all 12 drivers), -**#518** (the `IRediscoverable` half fixed; the probe half split to #521) and **#507** (injection deleted, -superseded by `/raw` browse-commit). Closing them is a tracker action nobody has taken yet. +✅ **The tracker is now clean of stale-open issues** (2026-07-30). **#516**, **#518**, **#507** and +**#523** were closed, each with a resolution comment recording what was actually done — which differs +from what the issue asked for in three of the four cases, so the comment matters more than the state +change: + +| Issue | What the comment records | +|---|---| +| **#516** | The issue's own survey was **incomplete** — it named 3 drivers, the defect affected 5, and the load-bearing fix was the spawn seam rather than any driver. | +| **#518** | **Only half resolved.** `IRediscoverable` is consumed *as an operator prompt, never an address-space rebuild*; `IHostConnectivityProbe` is untouched and split to **#521**. | +| **#507** | **Superseded, not migrated** — the requested migration was impossible, since both of the path's inputs are structurally empty in v3. | +| **#523** | Done, with the consequence carried forward: **AbCip and FOCAS now have no tag-change signal at all.** | + +**18 issues remain open**, all genuine: #519–#522 (four judgement calls + a design consequence), #517, +the eight MQTT follow-ups, #491, #489, #481, #468. --- @@ -121,11 +132,12 @@ Every gap below is in the **authoring/dispatch layer, not driver runtime code**. **No issue was found stale.** 11 CONFIRMED, 4 PARTIALLY (core claim holds, a sub-claim is wrong or incomplete), 2 CANNOT VERIFY (correctly filed as hardware/fixture-gated). -> **Since the audit:** three of these are **resolved by the remediation but still open on the tracker** — -> #516, #518 and #507 (marked ✅ below). Four new issues were filed from §3 and §9: **#520** (ACL +> **Since the audit:** three of these were resolved by the remediation and have now been **closed on the +> tracker** (2026-07-30) — #516, #518 and #507 (marked ✅ below), each with a resolution comment; #518's +> records that only its `IRediscoverable` half was fixed. Four new issues were filed from §3 and §9: **#520** (ACL > enforcement), **#521** (`IHostConnectivityProbe`), **#522** (stability tiers), **#523** (remove the -> periodic re-browse). The tracker therefore shows **21 open**, of which 3 are stale-open. Everything not -> marked below is unchanged. +> periodic re-browse). #523 has since been done and closed too. After closing the four resolved issues on +> 2026-07-30 the tracker shows **18 open, none stale**. Everything not marked below is unchanged. | # | Title (abbrev.) | Verdict | Key evidence | Kind | |---|---|---|---|---|