diff --git a/docs/product/roadmap.md b/docs/product/roadmap.md index 87c2091f..4778a110 100644 --- a/docs/product/roadmap.md +++ b/docs/product/roadmap.md @@ -270,6 +270,7 @@ A player can answer three questions from the editor: "What is invalid?", "Why is ### Product work - [ ] Fix profile and deck loading states so no request appears to hang indefinitely. + - [x] Report failed manual deck refresh without changing the current deck, and suppress late failure feedback after deletion (#923). Dedicated visual retry states and broader loading ownership remain open. - [x] Notify the player when individual deck opening fails instead of logging silently (#911). Dedicated visual error/retry states remain open. - [x] Bound individual server deck fetches to 15 seconds, keeping the deadline through JSON reading and leaving guest loading local (#909). Broader UI retry and profile latency work remain open. - [x] Abort stalled deck-list requests after 15 seconds so the existing error and retry state can appear. diff --git a/docs/project/changelog.md b/docs/project/changelog.md index 27998a71..e2c33034 100644 --- a/docs/project/changelog.md +++ b/docs/project/changelog.md @@ -9,6 +9,18 @@ Versioning: [Semantic Versioning](https://semver.org/spec/v2.0.0.html) ## [Unreleased] +### 2026-10-08: Deck refresh failure feedback + +#### Fixed + +- Failed manual deck refresh asks the player to retry without changing the existing deck. Late failures after successful deletion do not display an obsolete warning (#923). + +#### Validation + +- Two sequential observed Red/Green cycles: missing error feedback, then obsolete feedback after deletion. VPS validation passed 3,048 unit tests across 274 files, TypeScript, lint and production build. CI, performance and Vercel passed; Sonar remains blocked before analysis by HTTP 403 and local configuration is absent. +- The full blocking Docker Playwright gate passed all 66 scenarios with unchanged exclusions and no test retries or hook bypass. Two earlier full runs failed at authentication setup with a socket hang up (63 passed, two not run). Isolated authentication and a subsequent full run with server diagnostic logging passed. The intermittent test-server outage is not claimed resolved; failure evidence is retained on the VPS. +- Integrated into dev. Dedicated visual retry states, broader loading ownership and staging/main promotion remain open. + ### 2026-10-08: Deleted deck refresh protection #### Fixed diff --git a/docs/project/progress.md b/docs/project/progress.md index 07c93543..4aaf1131 100644 --- a/docs/project/progress.md +++ b/docs/project/progress.md @@ -31,6 +31,8 @@ ## Latest product delivery +- Failed manual deck refresh now asks the player to retry while preserving the current deck; late failure after deletion is silent (#923). Two observed Red/Green cycles. VPS: 3,048 unit tests across 274 files, TypeScript, lint and build passed. Full blocking Docker E2E eventually passed 66 scenarios after two authentication setup failures; the intermittent server outage remains unresolved and evidence is retained. CI, performance and Vercel passed. Sonar HTTP 403, dedicated visual retry states and promotion beyond dev remain open. + - Save refresh responses no longer recreate a deck deleted while the request was pending or announce misleading success; rejected deletion still allows refresh (#921). One observed Red/Green cycle plus passing rejection and feedback characterization. VPS: 3,046 unit tests across 274 files, TypeScript, lint and production build passed. Docker Playwright: 66 scenarios passed with existing exclusions. CI, performance and Vercel passed. Sonar HTTP 403, broader stale-response ownership and promotion beyond dev remain open. - Late undo completion for a deleted deck no longer displays misleading success feedback or recreates the deck (#919). One observed Red/Green cycle and supplementary restoration characterization. VPS: 3,044 unit tests across 274 files, TypeScript, lint and build passed. Docker Playwright: 66 scenarios passed with existing exclusions. CI, performance and Vercel passed. Sonar HTTP 403, broader mutation ownership and promotion beyond dev remain open.