All changes
New

Triage: bulk-accept issues into a project

The Triage inbox just got bulk-accept. Multi-select Inbox issues, pick a destination project, and they all move in one transaction. Identifiers (ENG-123 etc.) are reissued from the destination project's prefix, watchers stay attached, and any agent sessions remain bound to the right issue.

The whole move runs inside a serializable Postgres transaction — if any single issue can't be accepted (already canceled, destination at plan limit, race with another reviewer), the full batch rolls back. You never end up with a half-routed inbox.

Notes

  • Direct REST API callers (Personal Access Tokens, agent bearer tokens) get the same atomicity guarantee — the canceled-status guard is enforced at the service layer, not just the UI.
  • Bulk operations emit a single workspace event with all affected issue IDs; live collaborators see the inbox shrink in one frame.