AdminUI N−1 sweep: stale-open guard on 5 modals, ValidationSummary, API-key delete confirm, ErrorBoundary (archreview r3 item 10) #604

Closed
opened 2026-10-08 02:31:11 -04:00 by dohertj2 · 1 comment
Owner

Only RawBrowseModal and RawManualTagEntryModal carry _openGeneration; worst case is a CSV import committing to the wrong device.
Sources: archreview/00-OVERALL.md:121 (04/S-8, S-9, S-5, S-3).

  • Port the guard to the five unguarded modals, CSV import first
  • ValidationSummary on the three silent EditForms + reflection guard (the #505 class)
  • Confirm dialog on API-key Delete
  • ErrorBoundary around @Body
  • Live-verify on docker-dev (no bUnit)

Filed 2026-10-08 by the pending/deferred-work sweep after the #562–#591 issue sweep.

Only `RawBrowseModal` and `RawManualTagEntryModal` carry `_openGeneration`; worst case is a CSV import committing to the wrong device. Sources: archreview/00-OVERALL.md:121 (04/S-8, S-9, S-5, S-3). - [ ] Port the guard to the five unguarded modals, CSV import first - [ ] `ValidationSummary` on the three silent EditForms + reflection guard (the #505 class) - [ ] Confirm dialog on API-key Delete - [ ] `ErrorBoundary` around `@Body` - [ ] Live-verify on docker-dev (no bUnit) _Filed 2026-10-08 by the pending/deferred-work sweep after the #562–#591 issue sweep._
Author
Owner

Resolved on master (d3bca7af, merge db10e9d2; review R3 1475991f, merge 85491f1e).

  • Stale-open (_openGeneration) guard ported to the five unguarded modals, CSV import first.
  • ValidationSummary on the silent EditForms, with AdminUiFormSweepGuardTests as the reflection guard.
  • Confirm dialog on API-key Delete.
  • ErrorBoundary around @Body, moved to a per-page interactive boundary in R3 (PageErrorBoundaryTests); a CSV commit now refreshes after the modal closes.
  • Live-verified on docker-dev at a702875d: ValidationSummary on /clusters/new, /clusters/MAIN/edit, /scripts/{id}; /raw driver and device modals, CSV import and tag delete; API-key delete Cancel keeps / Delete removes; Add-reference picker is cluster-scoped. A SQL-paused save shows the handled timeout banner (no circuit death). The boundary has no live trip path without fault injection, so it is covered by unit tests only. CSV export skipped (browser download).
  • Two cosmetics found in the pass are filed separately.

Closed 2026-10-08 by the hardware-available issue sweep (master d898262c).

Resolved on master (d3bca7af, merge db10e9d2; review R3 1475991f, merge 85491f1e). - [x] Stale-open (`_openGeneration`) guard ported to the five unguarded modals, CSV import first. - [x] `ValidationSummary` on the silent EditForms, with `AdminUiFormSweepGuardTests` as the reflection guard. - [x] Confirm dialog on API-key Delete. - [x] ErrorBoundary around `@Body`, moved to a per-page interactive boundary in R3 (`PageErrorBoundaryTests`); a CSV commit now refreshes after the modal closes. - [x] Live-verified on docker-dev at a702875d: ValidationSummary on /clusters/new, /clusters/MAIN/edit, /scripts/{id}; /raw driver and device modals, CSV import and tag delete; API-key delete Cancel keeps / Delete removes; Add-reference picker is cluster-scoped. A SQL-paused save shows the handled timeout banner (no circuit death). The boundary has no live trip path without fault injection, so it is covered by unit tests only. CSV export skipped (browser download). - Two cosmetics found in the pass are filed separately. *Closed 2026-10-08 by the hardware-available issue sweep (master d898262c).*
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#604