# M16 routed operator UI evidence - The authenticated operator console now has protected, URL-addressable routes for the existing Dashboard, Sources, Repositories, Jobs, Executions, Backups, Security, Notifications, and Audit views. `/` and authenticated unknown routes redirect to `/dashboard` without adding a dead Back-history entry. - Authentication discovery happens before the route shell renders, so an unauthenticated deep link is retained through sign-in rather than prematurely redirected. - Route components load through `React.lazy` with an announced `Suspense` state and an in-shell error boundary. `OperatorPages.tsx` splits the existing resource pages into a separate production chunk. - Navigation uses semantic `NavLink` anchors with current-page semantics. The shell provides one main landmark, a functional skip link, route-based document titles, and focus restoration after route navigation. - Route-level tests cover direct `/sources` navigation, title/current-link state, focus restoration, authenticated unknown-route redirect, and the skip link. Existing workflow tests were adapted to the semantic navigation links. ## Green M16 checks ```text npm --prefix frontend run api:check # generated client current npm --prefix frontend run typecheck # passed npm --prefix frontend run build # passed; emitted OperatorPages and M13Workflows chunks npm --prefix frontend test -- --run # 11 passed npx --prefix frontend playwright test --config frontend/playwright.config.ts # 1 passed .venv/bin/python tools/export_openapi.py --check openapi/v2.json # current make check # passed ``` Known boundary: this evidence covers delivery slice 1's routed shell over the pre-existing read/workflow views. The create/edit/administration workflows in later slices of `docs/plans/full-operator-ui.md` remain unimplemented.