This commit is contained in:
@@ -108,3 +108,14 @@ Public galleries must support:
|
||||
- screen-reader-friendly state
|
||||
|
||||
Primary images power cards, search results, homepage previews, and social/share metadata.
|
||||
|
||||
## Admin error recovery
|
||||
|
||||
Keep the loaded gallery and alt-text drafts mounted during image actions and
|
||||
refreshes. Show action failures separately from list-read failures. After every
|
||||
action, including a failed multi-file upload or reorder, reload image metadata to
|
||||
reconcile any partial success without replaying writes. If that refresh fails,
|
||||
retain the last loaded gallery but disable mutations until an explicit reload
|
||||
succeeds. Failed initial loads show a reload action instead of an empty manager.
|
||||
Reload restores keyboard focus to the manager or the retry control. Pending
|
||||
operations block conflicting writes and uploads, including drag-and-drop.
|
||||
|
||||
@@ -162,14 +162,22 @@ Verified locally: `npm test` passes 167 tests with no failures (23 domain, 79 ap
|
||||
- Storybook covers loading, load errors, successful/repeated retry, save failure/retry, saving/disabled states, mobile retry and dark-theme save recovery.
|
||||
- Validation: 167 API tests, 11 web tests, production web build, Storybook build, and 32 Storybook suites / 102 tests. Frontend-only change; no API or persistence changes.
|
||||
|
||||
### Latest Vertical Slice: Saved Views Error Recovery
|
||||
### Saved Views Error Recovery
|
||||
|
||||
- Failed list reads no longer show an empty-list message or create form; Retry restores keyboard focus on success or repeated failure.
|
||||
- Create/delete actions clear stale feedback, announce progress, and block conflicting actions. Create failures preserve drafts; delete failures preserve the view and focus; successful deletion announces completion and focuses the list heading.
|
||||
- Storybook covers populated/empty/loading/error states, load retries, create/delete recovery, invalid JSON, pending disabled states, mobile retry and dark-theme recovery.
|
||||
- Validation: 167 API tests, 11 web tests, production web build, Storybook build, and 32 Storybook suites / 113 tests. Frontend-only change; API and persistence unchanged.
|
||||
|
||||
Next bounded slice: admin image-manager error recovery. A mutation error currently replaces the whole gallery with an error message. Keep loaded images and controls available after failed edits/uploads, distinguish initial-load failure, provide reload retry, and cover retry/failure states with Storybook interactions.
|
||||
### Latest Vertical Slice: Image Manager Error Recovery
|
||||
|
||||
- Loaded images and alt-text drafts survive action failures and refreshes. Initial-load errors offer Reload; refresh errors retain the gallery with writes disabled until reload succeeds.
|
||||
- Every action reconciles metadata even on failure, exposing partial multi-upload/reorder success without replaying mutations. Pending actions block overlapping writes and file drops.
|
||||
- Added page/component stories covering load/retry, edit/delete failure and retry, successful deletion followed by refresh failure, pending/disabled states, partial upload failure, mobile and dark-theme recovery.
|
||||
- Dark-theme coverage also fixed destructive-button contrast by separating its solid background token from error-text color.
|
||||
- Validation: 167 API tests, 11 web tests, production web build, Storybook build, and 32 Storybook suites / 124 tests. No API or persistence changes.
|
||||
|
||||
Next bounded slice: atomic image reordering. Move up/down currently sends two separate order updates; failure between them can leave a partial reorder. Add a seller-scoped API operation that updates both positions transactionally, connect the controls to it, and verify rollback and ownership with integration tests.
|
||||
|
||||
## Next Milestone
|
||||
|
||||
|
||||
Reference in New Issue
Block a user