Problem
Clicking "Approve Milestone" shows a spinner and waits ~5s for Stellar confirmation. The UI feels unresponsive.
Solution
Optimistic updates: show expected state immediately, reconcile on confirmation, roll back on error.
What needs to be done
- `ApprovalsPage` — on approve click, immediately move card to Approved state; on error roll back to Submitted
- `DashboardPage` — start work immediately shows In Progress
- Use TanStack Query's `onMutate` / `onError` / `onSettled` (already installed)
Acceptance criteria
Problem
Clicking "Approve Milestone" shows a spinner and waits ~5s for Stellar confirmation. The UI feels unresponsive.
Solution
Optimistic updates: show expected state immediately, reconcile on confirmation, roll back on error.
What needs to be done
Acceptance criteria