Description
The database table view only supports single-row operations — users must delete or interact with rows one at a time. Adding checkbox-based row selection with bulk delete lets users manage data more efficiently, matching the expected behavior of spreadsheet-like interfaces.
Approval Required
This is a HIGH risk change:
- Adds new interactive UI (checkbox column, selection toolbar) that needs E2E coverage
- Introduces selection state management across the table
- Bulk delete requires a new mutation pattern (batch delete rows)
- Affects table column layout (new checkbox column)
Comment "approved" to release this to the automation queue.
Acceptance Criteria
Dependencies
None
Technical Notes
- Table view:
src/components/database/views/table-view.tsx, table-row.tsx
- Selection state can be managed with a
Set<string> of row IDs in the database-view-client.tsx or a dedicated useRowSelection hook
- The checkbox column should be a fixed-width first column (32px) in the CSS grid template
- Bulk delete should call
deleteRow in a loop or add a batch delete function to src/lib/database.ts
- The undo-via-toast pattern is already implemented for single row/column delete — extend it for bulk operations
- Reference existing patterns:
src/components/database/hooks/use-database-rows.ts for row mutations
Description
The database table view only supports single-row operations — users must delete or interact with rows one at a time. Adding checkbox-based row selection with bulk delete lets users manage data more efficiently, matching the expected behavior of spreadsheet-like interfaces.
Approval Required
This is a HIGH risk change:
Comment "approved" to release this to the automation queue.
Acceptance Criteria
pnpm lint && pnpm typecheck && pnpm testpassDependencies
None
Technical Notes
src/components/database/views/table-view.tsx,table-row.tsxSet<string>of row IDs in thedatabase-view-client.tsxor a dedicateduseRowSelectionhookdeleteRowin a loop or add a batch delete function tosrc/lib/database.tssrc/components/database/hooks/use-database-rows.tsfor row mutations