[feat-021] Tabular column management: hide, reprocess, delete-with-confirm
Adds the actions a real user needs once a review crosses ~5 columns:
Backend:
- POST /tabular-review/:reviewId/reprocess-column { columnIndex }
Wipes the column's cells back to status='pending', then creates a
tabular_jobs run via the existing bug-007 worker pool. The worker's
existing "skip done cells" filter naturally re-processes them. Refuses
with 409 if a job is already in flight on this review (workers would
race against the wipe).
- DELETE /tabular-review/:reviewId/columns/:columnIndex
Drops the column from columns_config and deletes its tabular_cells
rows. Returns the canonical updated columns_config.
- Both endpoints reuse the existing ensureReviewAccess + filter
helpers - no new auth surface.
Frontend:
- TREditColumnMenu picks up onHide + onReprocess props. New "Hide
column" and "Reprocess" quick-action buttons in the edit panel
header. New "Reprocess this column after save" checkbox next to
the Save button (Save & reprocess label when checked).
- TabularReviewView tracks hiddenColumnIndices in localStorage keyed
by review id (per-(review, device)). visibleColumns is the filtered
set passed to TRTable. Toolbar grows a compact "N hidden - Show all"
button that restores in one click.
- Delete now opens an inline confirmation modal that names the column
and counts cells about to be deleted, instead of being instant.
- Reprocess kicks off the existing pollJob loop so the run-button shows
N/total live, same UX as a full generate.
API helpers added: reprocessTabularColumn, deleteTabularColumn.
No schema changes. tsc clean both sides; all 16 backend tests pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
| Repository | nwhitehouse/mike |
|---|---|
| Author | Nick Whitehouse <nick.whitehouse@mccarthyfinch.com> |
| Authored | |
| Parents | 3d3a2991 |
| Stats | 5 files changed , +532 , -21 |
| Part of | Tabular column management: hide, reprocess, delete |
Capture this commit into my fork
Download a Markdown prompt that tells Claude how to port this
exact commit into your working tree. Run it via
claude -p < capture-commit-bbfdda82.md
from inside the repo you want the change in.