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.
53 lines
2.9 KiB
Markdown
53 lines
2.9 KiB
Markdown
# 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.
|