F1 — Deep links bounce (escalate this one)
Hard-navigating to /admin/filters/new lands on /admin/apps/1. /portal/dashboard from an admin session lands back on the last admin route. Every navigation in every demo is a click, because URLs are not addressable.
This means an admin cannot:
- bookmark a page
- share a link to an object in a ticket
- deep-link from an email or an alert
- reload the page they are on
It is invisible in a demo and infuriating in daily use. This is the highest-value item in this issue.
F2 — The admin session expires briskly with no warning
Bounces to /login mid-task; any unsaved form is lost.
Fix: warn before expiry, offer renewal, and preserve the intended route so login returns the user where they were (which also depends on F1).
F3 — Ambiguous nav labels
LLM providers, Data sources and Tools each appear twice in the admin sidebar (once under management, once under Catalogs), and again in the portal sidebar. The Administration tab contains a collapsible section literally called AI Portal, which is also the name of a sibling top tab.
Measured cost: getByRole('button', {name: 'AI Portal'}) matches the tab and the sidebar section, and bounced a probe into the wrong tab twice. A human makes the same mistake with the mouse.
Fix: disambiguate the Catalogs children (LLM provider catalogs), and rename the Administration-side AI Portal section (Portal administration).
F4 — Collapsed sidebar sections unmount their children
So nothing on the page and nothing in the DOM tells a user where a screen lives until they open the right section by guesswork. The public docs' nav names don't match the app's tree either, so search doesn't rescue them.
F5 — Route inconsistency
ui/admin-frontend/src/admin/routes.js:188-195
catalogs/llms catalogs/llms/:id catalogs/llms/edit/:id catalogs/llms/new
catalogs/data catalogs/data/:id catalogs/data/edit/:id catalogs/data/new
catalogs/tools ...
llms and tools are plural nouns matching their resource; data is neither datasources nor consistent with them. Cost a session's worth of wrong-path debugging.
Fix: catalogs/datasources, with a redirect from catalogs/data.
Acceptance
From the UX & UI review of the demo set (section F).
F1 — Deep links bounce (escalate this one)
Hard-navigating to
/admin/filters/newlands on/admin/apps/1./portal/dashboardfrom an admin session lands back on the last admin route. Every navigation in every demo is a click, because URLs are not addressable.This means an admin cannot:
It is invisible in a demo and infuriating in daily use. This is the highest-value item in this issue.
F2 — The admin session expires briskly with no warning
Bounces to
/loginmid-task; any unsaved form is lost.Fix: warn before expiry, offer renewal, and preserve the intended route so login returns the user where they were (which also depends on F1).
F3 — Ambiguous nav labels
LLM providers, Data sources and Tools each appear twice in the admin sidebar (once under management, once under Catalogs), and again in the portal sidebar. The Administration tab contains a collapsible section literally called AI Portal, which is also the name of a sibling top tab.
Measured cost:
getByRole('button', {name: 'AI Portal'})matches the tab and the sidebar section, and bounced a probe into the wrong tab twice. A human makes the same mistake with the mouse.Fix: disambiguate the Catalogs children (LLM provider catalogs), and rename the Administration-side AI Portal section (Portal administration).
F4 — Collapsed sidebar sections unmount their children
So nothing on the page and nothing in the DOM tells a user where a screen lives until they open the right section by guesswork. The public docs' nav names don't match the app's tree either, so search doesn't rescue them.
F5 — Route inconsistency
ui/admin-frontend/src/admin/routes.js:188-195llmsandtoolsare plural nouns matching their resource;datais neitherdatasourcesnor consistent with them. Cost a session's worth of wrong-path debugging.Fix:
catalogs/datasources, with a redirect fromcatalogs/data.Acceptance
From the UX & UI review of the demo set (section F).