2.5.5 Inline row edits — status + assignee (reuse 2.4.4's gated controls)
Estimate: 10m · Depends on: 2.5.3
Make the STATUS and ASSIGNEE cells editable in place — the card's "inline status/assignee edits." This is a reuse subtask, not new mutation work: the STATUS pill opens the shared StatusPicker (legal next statuses from the row's workflow) committing via 2.4.4's gated changeStatusAction → 2.2.4 updateStatus; the ASSIGNEE cell opens the shared AssigneePicker committing via updateIssueAction → the status-free updateWorkItem (null = unassign, writes a revision). Same components and Server Actions the detail page's CoreFieldsPanel (2.4.4) uses — identical gating (workspace + membership; cross-workspace target 404s; no client-trusted ids).
List-specific UX. Editing commits optimistically and revalidatePaths /issues so the row reconciles without a full reload; an illegal/stale change surfaces the typed error as a toast and leaves the cell unchanged. Opening an inline control does NOT trigger the row's navigate-to-detail link (stop propagation). The status picker offers only legal targets for THAT row's current status (per-row workflow context).
Acceptance criteria
- A row's STATUS cell edits inline via the shared
StatusPicker→changeStatusAction(legal targets only; illegal/stale → toast, no change); ASSIGNEE edits + unassigns viaAssigneePicker→updateIssueAction(revision written). - Both reuse 2.4.4's components + actions — NO parallel components or new actions; the list and detail page share them.
- Both are Server-Action-gated (workspace + membership); a forged cross-workspace target 404s; opening a control does not navigate the row.
- Commit is optimistic + revalidates the list; component test asserts the cell opens the shared picker and calls the shared action (legal-target listing covered by the shared 2.4.4 tests).
Context refs
- 2.4.4
CoreFieldsPanelinline pattern +changeStatusAction/updateIssueAction(app/(authed)/issues/[key]/edit/actions.ts) — reuse verbatim - 2.3.6
StatusPicker/AssigneePicker; 2.5.2TreeTablecell render-props; 2.5.1 node DTO (each row's status + workflow context) motir-core/CLAUDE.md— Server-Action gate / finding #26