diff --git a/docs/QA_LOOP.md b/docs/QA_LOOP.md index 041dfea3..4b6946cd 100644 --- a/docs/QA_LOOP.md +++ b/docs/QA_LOOP.md @@ -53,7 +53,7 @@ any bugs found, and committing the fixes. | 5 | Creation Flows | fixed | 2026-07-16 | 3 fixes: community creation was entirely broken (still POSTing to the Lemmy endpoint → 404; form rewritten against `social.coves.community.create` and verified end-to-end — test community `qa-loop-test.coves.social` exists and can't be deleted, no API), failed submits showed an empty toast (`errorMessage` could return non-strings that crashed the toast markdown renderer), post-create redirect raced the AppView indexer showing "Post unavailable" for brand-new posts (now polls ~3s on the `?uri=` fresh-post signal). Post round-trips, URL/title validation all passed. Carry-forwards: drafts not preserved when navigating away from create forms; post delete succeeds but the page doesn't navigate/update in place; validation is native-browser only (no styled inline errors). | | 6 | Profiles & Blocks | fixed | 2026-07-16 | 5 frontend fixes: block requests sent `{did}` instead of the backend's `{subject}` contract (every block 400'd), missing `account.block/unblock` i18n keys, Block/Message rendered on own profile, `/profile/voted/*` + `/profile/media` crashed on legacy Lemmy endpoints (now gated 404s, nav links removed), `/profile/settings` was blank (gated 404; can migrate to `social.coves.actor.updateProfile` later). Profiles, tabs, foreign profiles, blocks pages all pass. **Backend issues flagged**: block records are never indexed (jetstream consumer) — `getBlockedUsers` stays empty, feeds unfiltered, unblock 404s, records stranded on PDS; mari's PDS has 3 stale block records from 2026-02-07. Blocks-users page still reads legacy shape (migrate to `getBlockedUsers` once backend indexes). Carry-forward: background feed fetch logs a console error on user-404 pages. | | 7 | Explore & Discovery | fixed | 2026-07-16 | PASSED overall (search, sort, empty states, canonical links, join-from-list all work). 2 fixes: subscribe toggles mutated the unbound `community` prop (now local optimistic state), communities with atproto's `handle.invalid` sentinel linked to a dead `/c/handle.invalid` 404 (now DID links, verified working). **Key backend diagnostic**: `community.list` DOES populate `viewer.subscribed` (survives reload on explore) — only `community.get` omits it, which is exactly why the community-page subscribe state resets (§3 flag, now precise). Carry-forwards: explore always splits "Top results"/"Other results" even without a query; top cards omit member counts; "Popular" sort order is non-deterministic across reloads; no user/post search (palette only hands off community search); instance stats "Posts 0" (backend aggregation). | -| 8 | Settings, Theme & Shell | pending | — | | +| 8 | Settings, Theme & Shell | fixed | 2026-07-16 | PASSED — all settings pages load clean and persist toggles, theming (scheme + presets) applies live and persists, shell nav has zero dead links at desktop and 375px mobile (no overflow), keyboard nav + skip-link + command palette all work, /go redirects correct. 2 fixes: mailto links were rewritten into dead /profile/ links (Lemmy-era implicit-mention rewrite removed), free-text error messages triggered i18n missing-translation warnings on every error page. Minor carry-forwards: theme color hex inputs report #000000 in a11y snapshot despite correct swatches; theme preset cards use lorem-ipsum sample text. | ---