Skip to content

moooon

Motir

Vibe your whole project. Bring an idea — Motir's three AI layers plan it, track it, and ship it, end to end. You're looking at Motir, built in Motir.

  • Vibe Project
  • Open Source
  • AI Agent
  • AI Loop
1
requests
0
upvotes
145
planned
1,361
shipped

Motir · Work items

MOTIR-800Cancelled

2.8.9 Work-item ⋯ actions menu + Archive action (detail/list/board) — route + UI + page-state

Estimate: 80m · Type: code · Depends on: 2.8.8, 2.8.1

The shared host surface the 2.8.4 Delete row slots into — assumed by the 2.8.1 design ("the shipped Popover actions menu … identical on detail/list/board") but ABSENT: the detail header has only an Edit link, board cards are drag-only, issues-list rows have no ⋯ menu, and Archive is surfaced NOWHERE (archiveWorkItem service has zero route/UI callers; archive reaches the web app only via the in-flight MCP tool 7.8.14 / MOTIR-790).

Build the shared work-item ⋯ actions menu (Popover: Edit details → existing edit route · Copy link → clipboard · — · Archive) and mount it on the detail header, the issues-list row, and the board card. Surface Archive: add a thin POST /api/work-items/[id]/archive route over workItemsService.archiveWorkItem (canEdit-gated, typed errors → 403/404), wire the 2.8.8 Archive flow + archived-item state, and handle page-state-after-mutation on all three surfaces (server refresh vs client-island tick — the board watches CreateIssueProvider.issuesChangedAt). Thread the permission flag to each surface (getManageCapabilities / getCapabilities). Delete is NOT added here — 2.8.4 adds the Delete row + confirm dialog to this menu.

Acceptance criteria

  • A shared ⋯ actions menu renders on detail/list/board with Edit details · Copy link · Archive, matching 2.8.8; non-permitted users see the gated/collapsed menu.
  • Archive route over archiveWorkItem (canEdit; typed errors → 403/404); archiving updates detail/list/board correctly (server vs client-island rule); --el-*/shape tokens.
  • "How to test" click-path in the PR body (UI subtask).

Context refs

  • design 2.8.8 (+ 2.8.1 menu); app/(authed)/issues/[key]/page.tsx (detail header — Edit link to fold in), app/(authed)/issues/_components/* (list rows), app/(authed)/boards/_components/BoardCard.tsx; workItemsService.archiveWorkItem; projectAccessService.getManageCapabilities; CreateIssueProvider.issuesChangedAt; CLAUDE.md "Page state after a mutation". Blocks 2.8.4.