docs: sync documentation after perf/a11y/release-candidate work

- PROJECT.md: Current Status updated (perf/a11y/RC walkthrough all
  done, new report docs added to index).
- FRONTEND-ROADMAP.md: RC PERF-01, RC A11Y-01, and Release Candidate
  walkthrough entries added; known-open-items list updated (2 new
  flags from RC walkthrough, primeng removal blocker, large chunks,
  backend-ready sprint explicitly deferred pending a real API contract).
- KNOWN-ISSUES.md: corrected item 6 (payment modal focus-trap
  assumption was wrong, now actually fixed); added items 9-12 (brand
  contrast failures, Contacts content gap, WYSIWYG editor mislabeled,
  primeng removal blocker); added 2 Fixed entries for this cycle's
  P0s (query-param routing, Categories CRUD).
- Graphify graph regenerated (graphify-out/, cache only, not tracked).
- Obsidian: skipped, no running Obsidian instance in this session.
- No architecture change this cycle (perf/a11y/bug fixes only) — no
  new ADR.
- No application code touched.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
sdarbinyan
2026-07-24 10:51:05 +04:00
parent d4eb25dd4b
commit e4c1c6e2a0
3 changed files with 108 additions and 11 deletions

View File

@@ -77,9 +77,13 @@ don't fix inline unless asked.
- Found: 2026-07-17, project-editor bug-hunt audit.
6. **Payment modal / bank-payment iframe on Cart still custom, not `app-dialog`.**
Has its own multi-step state and focus-trap already — migrating to the
shared dialog primitive is a composition change, deliberately left out of
RC-Premium-01's visual-polish scope.
Correction (2026-07-24, RC A11Y-01): the "already has focus-trap" assumption
below was wrong — it had none. RC A11Y-01 ported `app-dialog`'s confirmed-
correct focus-trap/Escape/return-focus pattern directly onto it
(`docs/ACCESSIBILITY_REPORT.md`), so the accessibility gap is closed. It's
still a separate custom component, not the shared `app-dialog` itself —
migrating it to the actual primitive remains a composition change,
deliberately left out of every polish pass so far.
- Found: 2026-07-23, RC-Premium-01 (`docs/STORE_FRONT_UX_REVIEW.md`).
7. **Cart's `clearCart()` uses native `confirm()`, no styled confirm dialog.**
@@ -93,6 +97,34 @@ don't fix inline unless asked.
token-extension decision before normalizing.
- Found: 2026-07-23, RC-Premium-01.
9. **Genuine brand-color contrast failures (WCAG AA).** `--border-color`
fails 3:1 UI-component contrast in every theme (1.24-1.42:1 measured);
`--success/--warning/--error/--info-color` fail 4.5:1 when used as plain
text-on-white in a handful of places. Real palette colors, not a token
bug — fixing means visibly changing the brand, needs theme-owner sign-off.
- Found: 2026-07-24, RC A11Y-01 (`docs/ACCESSIBILITY_REPORT.md`).
10. **Footer "Contacts" link has no static-page content in mock data.**
Unlike the "About" link (which was a route-name mismatch, fixed), no
content exists for Contacts at all — needs a content decision, not a
code fix.
- Found: 2026-07-24, Release Candidate walkthrough (`docs/RELEASE_REPORT.md`).
11. **Builder's static-page body editor is hidden and mislabeled.** The
actual WYSIWYG content editor isn't on the "Content" tab (title/image
only) — it's inside a collapsed `<details>` under "Advanced", labeled
"Source HTML (advanced)" though it's the only way to edit page content.
Works correctly once found; relocating/relabeling is a navigation
decision, not a bug fix.
- Found: 2026-07-24, Release Candidate walkthrough.
12. **`primeng`/`primeicons` still in `package.json` after their only
consumer was deleted.** `npm uninstall` fails (`ETARGET`) on a
pre-existing, unrelated broken `barry-cache` devDependency resolution —
fix that first, then drop the now-fully-unused dependency (likely closes
most of the remaining bundle-budget overage in one move).
- Found: 2026-07-24, RC PERF-01 (`docs/PERFORMANCE_REPORT.md`).
## Fixed
1. **Full-project UX/UI + motion pass across storefront, admin dashboard,
@@ -255,6 +287,31 @@ don't fix inline unless asked.
~90-line dead CSS block still shipping in the bundle.
- Fixed: 2026-07-23, RC STORE-01.
9. **App-wide query-param routing broken (P0).** `language.guard.ts`'s
legacy-URL redirect built the target with `router.createUrlTree([...])`
using a single path-segment string with the query string baked in, so it
got percent-encoded into the path instead of parsed as query params
(`/edit/branding?devBypassAdmin=true``/ru/edit/branding%3FdevBypassAdmin%3Dtrue`,
a dead route). This guard runs on every top-level route app-wide, so any
bookmarked/shared deep link with query params was silently broken —
found during the Builder RC walkthrough but affects all 3 surfaces.
- Fixed: 2026-07-24, Release Candidate walkthrough (`docs/RELEASE_REPORT.md`),
`router.parseUrl()` instead of a hand-built path segment.
10. **Backoffice Categories CRUD completely broken end-to-end (P0).**
`admin-categories-gateway.token.ts` resolved via
`RuntimeProviderStrategyService.getBackofficeProviderMode()`, which —
unlike `getBootstrapProviderMode()` — has no `isLocalhost()` fallback,
so it always picked the real HTTP `AdminCategoriesApiGateway` instead of
the local mock in an environment with no real backend. Combined with
`saveDraft()` having no error handler: every create/publish click
silently failed, `dirty` never cleared, and the unsaved-changes guard
then blocked navigation with zero feedback.
- Fixed: 2026-07-24, Release Candidate walkthrough, wired to the
already-defined `getCategoryProviderMode()` + added the same
`isLocalhost()` fallback `getBootstrapProviderMode()` already had.
Live-verified: create/edit/reorder all persist correctly now.
## Notes (not bugs, just flag before shipping)
- `src/environments/environment.ts`: `useMockData` was temporarily flipped to