WIP: Retire/Restore UI for plans #296

Closed
toasterson wants to merge 0 commits from claude/wi-019f1817-retire-restore-ui-for-plans into main
Owner

Anima work item 019f1817-f78f-74c3-8fd4-7ff84d27468e.

What to build

Surface Retire/Restore in the UI. A Retire kebab item appears when the Plan has ≥1 Work Item, gated by a modal confirmation; a retired filter view in the ProjectDetail Plans list; and a Restore action from a retired plan. Completes the soft-delete loop.

Pushed context

Backend (RetirePlan/RestorePlan + default-filtering) lands in its blocker. Wire retirePlan/restorePlan through src/lib/grpcApi.ts + src/lib/api.ts; add the Retire item to the PlanDetail kebab (src/pages/PlanDetail/PlanDetail.tsx, reusing the Menu primitive) shown only when the plan has ≥1 Work Item; add a retired filter to the Plans section in src/pages/ProjectDetail/ProjectDetail.tsx (existing filter chips are Active/All/Done — add a Retired view) so retired plans are reachable; Restore is available from a retired plan. Modal confirm copy (ADR 0017, Q9 = modal, symmetric with Delete): "Retire this plan? '

Anima work item `019f1817-f78f-74c3-8fd4-7ff84d27468e`. ## What to build Surface Retire/Restore in the UI. A **Retire** kebab item appears when the Plan has ≥1 Work Item, gated by a **modal confirmation**; a **retired** filter view in the ProjectDetail Plans list; and a **Restore** action from a retired plan. Completes the soft-delete loop. ## Pushed context Backend (RetirePlan/RestorePlan + default-filtering) lands in its blocker. Wire `retirePlan`/`restorePlan` through `src/lib/grpcApi.ts` + `src/lib/api.ts`; add the Retire item to the PlanDetail kebab (`src/pages/PlanDetail/PlanDetail.tsx`, reusing the Menu primitive) shown only when the plan has ≥1 Work Item; add a retired filter to the Plans section in `src/pages/ProjectDetail/ProjectDetail.tsx` (existing filter chips are Active/All/Done — add a Retired view) so retired plans are reachable; Restore is available from a retired plan. Modal confirm copy (ADR 0017, Q9 = modal, symmetric with Delete): "Retire this plan? '<title>' and its N open work items will be hidden from default views. Done work items stay. You can restore it anytime." Restore needs no confirmation. ## Acceptance criteria - [ ] Retire kebab item renders only when the plan has ≥1 Work Item; opens a modal confirm - [ ] Confirming retire hides the plan (and its open Work Items) from default views - [ ] A Retired filter/view in ProjectDetail lists retired plans - [ ] Restore (no confirm) brings a retired plan and its open Work Items back ## Blocked by - WI 019f1817-5e54-73a2-9fa0-831a91db5e0f (kebab menu primitive + Copy link) - WI 019f1817-80e5-78c2-90b7-2156ab6272a8 (Retire/Restore backend)
toasterson force-pushed claude/wi-019f1817-retire-restore-ui-for-plans from 705b3c4084 to 5759261602 2026-07-05 03:35:06 +00:00 Compare
toasterson force-pushed claude/wi-019f1817-retire-restore-ui-for-plans from 5759261602 to 61a9d18ce8 2026-07-06 20:41:52 +00:00 Compare
toasterson force-pushed claude/wi-019f1817-retire-restore-ui-for-plans from 61a9d18ce8 to 3b5304e986 2026-07-06 22:16:51 +00:00 Compare
toasterson referenced this pull request from a commit 2026-07-09 17:48:18 +00:00
Author
Owner

Merged at ae5d72d. Retire/Restore actions + modal + retirePlan/restorePlan woven into the shared plan kebab (Restore also surfaces as a top-level button when retired). Closing.

Merged at `ae5d72d`. Retire/Restore actions + modal + `retirePlan`/`restorePlan` woven into the shared plan kebab (Restore also surfaces as a top-level button when retired). Closing.
toasterson closed this pull request 2026-07-09 17:54:51 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
toasterson/Anima!296
No description provided.