Files
NODEDC_MISSION_CORE/docs/audits/2026-09-20-planning-project-deletion.md
DCCONSTRUCTIONS e515ab1b8c feat(planning): consolidate recorded-route localization and spatial scene
Preserve the completed teach-and-repeat laboratory stage: reference preparation, cascaded acquisition, local tracking and recovery, recording lifecycle, replay qualification, and persistent Rerun scene controls. Document the open grid-picking regression and Rerun upgrade contract. No autonomous driving or loop-closure optimization is claimed.
2026-09-21 08:47:19 +03:00

2.9 KiB

Planning project catalog removal

Owner request: trash actions in the “Совмещённые маршруты” selector, with confirmation matching the recorded-session workflow. No actual operator record was selected for deletion during implementation or browser QA.

Boundary

  • Removal is catalog-only, persisted by exact kind:UUID in registration-runs/catalog-deletions.sqlite3. This is not disk reclamation.
  • Reports, source captures, reference/query clouds, frozen draft snapshots and other experiments stay intact. Tombstones do not rewrite evidence.
  • Deleted runs still participate in draft ownership when projecting the list: deleting the last result cannot resurrect its draft as a new catalog entry.
  • Only completed/failed live runs, ready/failed recorded runs and unstarted drafts are removable. Unknown runtime states fail closed. Draft revisions are checked and drafts already associated with an experiment are refused.
  • Repeating an acknowledged deletion is idempotent. Catalog and project detail exclude removed entries after process restart. Engineering evidence endpoints retain historical access; no source-store or scanner command is invoked.

Interface

The Design Guideline SelectOption.action supplies an independent canonical IconButton beside the selection button. Action-bearing menus use dialog semantics; ordinary selectors retain listbox semantics. Activating a row action closes the menu without selecting that row. Focus returns through the surviving selector trigger when confirmation closes.

Owner visual correction: row actions match Data → Sessions, with a transparent 2.35rem hit column, muted 15px trash glyph, no circular backing and danger color on hover. Shared Select owns this geometry; Mission Core has no local override.

Mission Core owns exact project identity, terminal-state admission, ConfirmationModal copy, API request and ToastStack errors. The confirmation includes the timestamp to distinguish identically named runs. Pending submission is protected against repetition. Successful removal clears only that selected project; late list/detail responses cannot reinsert a removed item.

Validation

  • 20 backend catalog tests: exact identity, same-name siblings, source/report preservation, terminal/unknown states, revision mismatch, idempotence, restart persistence, empty catalog, invalid requests and draft ownership.
  • 869 Control Station tests; architecture checks, typecheck and production build.
  • Design Guideline registry, workspace typechecks, six Select contract tests and production catalog build.
  • Browser QA uses existing evidence and cancels confirmation; it does not delete a real project or create a synthetic project in the operator catalog.

The canonical integrated service remains on port 8000. No alternate backend, device acquisition, registration run or live replay publisher is introduced.