Block a user
Frontend: bundle vendor-split (221 KB gz, ~29 KB headroom) + fill unit-test gaps
Frontend design-kit consistency: dead Card, duplicated segmented-control + row/icon recipes, focusRing/useLang drift
Frontend: split queries.ts by domain, extract error classes, add query-key factory; decide search-invalidation
Frontend refactor: unify the duplicated Vocabulary + Authority CRUD surfaces
Frontend data layer: silent update failures + dead/unreachable mutation error strings
Frontend a11y: label-id collision, invalid table row semantics, unnamed drawer, unannounced table states
Frontend UX: session-expiry handling loses in-progress work; auth feedback gaps
Frontend UX: session-expiry handling loses in-progress work; auth feedback gaps
Fixed in merge 7a43f79.
401 → soft redirect (no full reload): the openapi-fetch 401 middleware can't use useNavigate, so a small navigate-bridge module (api/auth-redirect.ts:…
Frontend UX: object detail renders term/authority/localized values as raw JSON
Follow-up shipped: the deferred object-form flexible-field grouping is now done (merge 6e72f24).
- Extracted a shared
groupDefinitionshelper (web/src/lib/group-fields.ts) so the detail…
Frontend UX: search result rows lack type/date meta; single thin facet; "estimated" count not flagged
Frontend UX: search result rows lack type/date meta; single thin facet; "estimated" count not flagged
Done — merged to main (c68bbb9).
Date on result rows (the disambiguator the data actually supports): threaded recording_date (YYYY-MM-DD) through the whole search pipeline —…
Frontend a11y: focus-visible on custom controls, route focus management, skip link, tablist/lang semantics
Frontend a11y: focus-visible on custom controls, route focus management, skip link, tablist/lang semantics
Done — merged to main (d082836).
- Focus-visible rings — a shared
focusRing(outline-none focus-visible:ring-3 focus-visible:ring-ring/50, matching the kit, keyboard-only) on the…
Frontend i18n: enforce en/sv key parity with a test
Frontend i18n: enforce en/sv key parity with a test
Done — merged to main (4c24f03).
Added web/src/i18n/parity.test.ts (pure, no React) that runs in the normal Vitest suite, so en/sv drift fails locally and in CI:
- Key-set parity…