docs(deferment): four resolved issues closed on the tracker — no stale-open left
v2-ci / build (push) Successful in 5m39s
v2-ci / unit-tests (push) Failing after 17m44s

Closed #516, #518, #507 and #523, each with a resolution comment. The comment
matters more than the state change in three of the four cases, because what was
actually done differs from what the issue asked for:

  #516 — the issue's own survey was INCOMPLETE. It named Modbus/FOCAS/OpcUaClient;
         the defect also hit AbLegacy (missed) and Sql (deliberate, on a false
         premise). The load-bearing fix was the spawn seam, not 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. Closing without saying so would have implied both.
  #507 — SUPERSEDED, not migrated. The requested migration was impossible: both
         of the path's inputs are structurally empty in v3, so lifting the guard
         would have injected nothing.
  #523 — done, carrying forward that AbCip and FOCAS now have no tag-change
         signal at all.

#523 was not in the set named for closing, but it had become resolved-but-open in
the same session by the work above, which is the same category; closing it is
noted here rather than done silently.

Register reconciled: the "three issues resolved but still open" note is replaced
by a table of what each closing comment records, and the two issue counts that
said "21 open, of which 3 are stale-open" now say 18 open, none stale.

Claude-Session: https://claude.ai/code/session_015p7wGqy3YpZNCpDzTpGMKo
This commit is contained in:
Joseph Doherty
2026-07-30 03:55:42 -04:00
parent dccde5e24d
commit 30528d8bea
+21 -9
View File
@@ -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 | | **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 | | **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 | | **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. 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 | | **#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 | | **#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 | | **#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 | | **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) | | ~~**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 | | 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 | | 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), **The tracker is now clean of stale-open issues** (2026-07-30). **#516**, **#518**, **#507** and
**#518** (the `IRediscoverable` half fixed; the probe half split to #521) and **#507** (injection deleted, **#523** were closed, each with a resolution comment recording what was actually done — which differs
superseded by `/raw` browse-commit). Closing them is a tracker action nobody has taken yet. 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 **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). 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** — > **Since the audit:** three of these were resolved by the remediation and have now been **closed on the
> #516, #518 and #507 (marked ✅ below). Four new issues were filed from §3 and §9: **#520** (ACL > 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 > 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 > periodic re-browse). #523 has since been done and closed too. After closing the four resolved issues on
> marked below is unchanged. > 2026-07-30 the tracker shows **18 open, none stale**. Everything not marked below is unchanged.
| # | Title (abbrev.) | Verdict | Key evidence | Kind | | # | Title (abbrev.) | Verdict | Key evidence | Kind |
|---|---|---|---|---| |---|---|---|---|---|