Problem
Stage 5 of #1114 (/loop-review-ui, #1121) ships a teardown side-effect ledger + confirmation gate, but its dev-DB row-drop is honest-but-inert: the Stage-2 drive (#1118) does not tag the rows it creates (create/edit/upload actions) with a drive-session id, so teardown cannot know which rows to drop and — per #1121's Risk note — reports rows: may-remain-untagged rather than guessing. To make row-drop real, the drive must tag/emit the rows it created.
Task
Add drive-session row tagging in the Stage-2 drive so Stage-5 teardown can drop exactly the rows a drive created:
- The drive stamps each create/edit/upload it performs with a drive-session identifier (or otherwise records a row manifest), and emits that manifest in the drive result.
- Teardown consumes the manifest (
--row-manifest already exists on scripts/loop/ui-review-teardown.mjs) and drops exactly those rows on confirmation — dev DB only, never production.
Acceptance criteria
Non-goals
Notes
Follow-up to #1121 (Stage 5) and #1118 (Stage 2). The teardown ledger + confirmation gate + worktree/app teardown shipped in #1121; only the row-drop is inert pending this tagging.
Problem
Stage 5 of #1114 (
/loop-review-ui, #1121) ships a teardown side-effect ledger + confirmation gate, but its dev-DB row-drop is honest-but-inert: the Stage-2 drive (#1118) does not tag the rows it creates (create/edit/upload actions) with a drive-session id, so teardown cannot know which rows to drop and — per #1121's Risk note — reportsrows: may-remain-untaggedrather than guessing. To make row-drop real, the drive must tag/emit the rows it created.Task
Add drive-session row tagging in the Stage-2 drive so Stage-5 teardown can drop exactly the rows a drive created:
--row-manifestalready exists onscripts/loop/ui-review-teardown.mjs) and drops exactly those rows on confirmation — dev DB only, never production.Acceptance criteria
--confirm(dev DB only); the ledger reportsdroppedwith the count instead ofmay-remain-untagged.may-remain-untagged(never guesses).npm run verifygreen.Non-goals
Notes
Follow-up to #1121 (Stage 5) and #1118 (Stage 2). The teardown ledger + confirmation gate + worktree/app teardown shipped in #1121; only the row-drop is inert pending this tagging.