Standalone docs first-class: bulk assign, role filters, customer index

↗ view on GitHub · Custos · 2026-05-04 · 69aef399

Backend:
- POST /single-documents/bulk-assign accepts {document_ids, project_id}
  or {document_ids, new_project} and atomically reassigns the batch.
- GET /projects/counterparties now folds standalone documents into the
  customer index. Each group gains a standalone_count field; documents
  without an intake_role match the role filter via intake_role.
- GET /projects/counterparties/:name/timeline includes user-owned
  standalone docs whose intake_counterparty matches.

Frontend (/intake):
- Filter chips by role: All / Vendors / Customers / Internal-Other,
  with per-bucket counts.
- Per-row checkboxes plus a select-all checkbox in the header.
- Sticky bulk-action bar (visible when 1+ selected): pick an existing
  project from a dropdown and "Assign", or "Create new project from
  selection" which auto-derives template + counterparty by majority
  vote across the picked docs.
Repository Custos/legalos
Author Custos <jfeinblum@gmail.com>
Authored
Parents 230083fa
Stats 4 files changed , +416 , -59
Part of Intake - bulk-upload triage queue with auto-classify and assign

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-69aef399.md from inside the repo you want the change in.

⬇ Download capture-commit-69aef399.md