22 lines
2.0 KiB
Markdown
22 lines
2.0 KiB
Markdown
# 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.
|