fix(word-addin): give add-ons real load/error states; stop silent quick-action saves

↗ view on GitHub · Amal · 2026-08-12 · 5dfd2650

WHY THIS MATTERS
Three silent-failure paths in the add-in's new surfaces:

1. Add-on import errors were written into the SHARED fetchError state,
   which WorkflowList renders on the other tab - the user saw a workflow
   list error after failing to import an add-on. Imports now have their
   own error state rendered where the action happened.
2. A failed listWorkflowAddons collapsed to an empty array: a blank tab
   with no message. The tab now has loading, error, and "No add-ons
   available." states - and requests ?type=assistant server-side (the
   backend supports it) instead of over-fetching and filtering.
3. Quick-action "Done" failures were fully silent: the modal just refused
   to close. Saves now show a Saving state and a role="alert" error.
   Toggling Active also no longer writes the modal's UNSAVED draft into
   list state - the list takes the server's row; only the modal keeps the
   draft.

WHAT IS THE PARITY RULE?
The add-in mirrors the web app's UX (project convention): same
error-surfacing expectations, same server-side filtering, same "the server
response is the truth for list state" reconciliation.

Found by review of PR #309.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E4PXCdenNH5Mqhm5Sre9Zs
Repository open-legal-products/mike
Author Amal <mamalanand3@gmail.com>
Authored
Committed
Parents fc0f76eb
Stats 3 files changed , +120 , -53
Part of Refactor workflows into defaults, add-ons, and quick actions

Capture this commit into my fork

Download a Markdown prompt that tells Claude how to port this exact commit into your working tree. Run it via claude -p < capture-commit-5dfd2650.md from inside the repo you want the change in.

⬇ Download capture-commit-5dfd2650.md