gui: finished task rows recede and sidebar menus act on tasks

Task workspaces were never closed after their task finished, so done
rows piled up under their parent. A child whose task is in the board's
Done column now gets `workspace-finished`: it fades to 0.55 opacity
until hovered or selected, and it sorts after active siblings. The
parent's toggle counts finished tasks separately ("3 tasks · 2 done").
The parent's menu gains "Clear N Finished Tasks", which closes those
workspaces and keeps their branches.

The row menu is now built on popup from the task's current state, and
items that don't apply are omitted. A task row offers Show Task Board,
Open/Create Pull Request, Merge into <target>, Cancel Task and Discard
Task, backed by the existing task.pr_open / task.finish / task.cancel
IPC. These are the first GUI callers of those methods.

Destructive actions ask for confirmation. The dialog text matches what
task.finish does: both modes remove the worktree, merge deletes a
branch the task created, and discard keeps it. Failures surface as
toasts.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
ee03ec6735Lucenx9 committed on 10/5/2026, 4:45:40 PMparente33e8c1
7 files changedLine totals unavailable