Block a user
Frontend UX: app header is empty — add wayfinding (section/breadcrumb, user, app name, global search)
Frontend UX: standardize loading states on Skeleton (retire "…" and empty role=status divs)
Frontend a11y: focus-visible on custom controls, route focus management, skip link, tablist/lang semantics
Frontend UX: replace raw <select> elements with a token-styled Select / combobox
Frontend UX: reference-data screens are inconsistent and hard to scan (vocab / authorities / fields)
Frontend design system: feature screens bypass the OKLCH tokens + ui/* kit (inconsistent visual language)
Frontend UX: session-expiry handling loses in-progress work; auth feedback gaps
Frontend UX: add toast notifications — mutations currently succeed silently
Frontend UX: object form robustness — double-submit, no dirty guard, inconsistent partial-failure recovery
Frontend UX: object detail renders term/authority/localized values as raw JSON
Frontend UX: object list should be a scannable, sortable, filterable table
Server-side term/authority search for the combobox picker (large vocabularies)
Searchable term/authority picker for large vocabularies (combobox + server-side search)
Done in de035bd (merged to main). Term/authority fields now render a searchable combobox built on Base UI's combobox primitive (no new npm dependency): type-to-filter by active-locale…
Searchable term/authority picker for large vocabularies (combobox + server-side search)
Wire the Spectrum cataloguing seed into runtime
Done in 8ed747c (merged to main). Wired via a server seed CLI subcommand mirroring create-user: it connects, applies migrations (idempotent — so it works on a fresh DB), then runs…
Wire the Spectrum cataloguing seed into runtime
Backend + frontend: edit/delete field definitions