5.2 KiB
5.2 KiB
id, title, status, wave, depends_on, plan, requirements, acceptance_criteria, system_design
| id | title | status | wave | depends_on | plan | requirements | acceptance_criteria | system_design | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01-split-system-pages | Split the System pages | done | 1 | plan.md |
|
|
|
Task 01: Split the System Pages
Summary
Create direct Data & Logs and Storage routes. Update navigation, discovery,
localization, unit tests, and Playwright coverage as one vertical change.
In scope
- Remove storage maintenance from the Data and Logs content component.
- Render storage maintenance directly on
/settings/system/storage. - Add the Storage route to the System menu, breadcrumbs, and discovery catalog.
- Update the Data and Logs description in every locale.
- Move every storage-focused Playwright flow to the Storage route.
- Make authenticated role tests exercise both owning pages.
- Preserve legacy redirects and exact discovery targets.
Out of scope
- Backend or API changes.
- Storage policy or cleanup behavior changes.
- Public operations text and screenshots.
Acceptance
- Each route renders only its specified operational sections.
- Desktop and phone navigation open both routes directly.
- Storage save, permission, action, and containment tests pass on the Storage route.
Verification
pnpm exec vitest run components/settings/system/system-route-copy.test.ts components/settings/system/system-invisible-copy.test.tsx components/app-sidebar/sections/settings/settings-nav-copy.test.ts components/app-sidebar/sections/settings/settings-tree.test.ts lib/settings-discovery/catalog.test.ts src/settings-routes.test.ts
pnpm run i18n:check
pnpm e2e:run --project chromium tests/system/sidebar-navigation.spec.ts tests/system/database-page.spec.ts tests/system/backups-page.spec.ts tests/system/logs-page.spec.ts tests/system/storage-maintenance.spec.ts
pnpm e2e:run --project auth tests/auth/system-data-storage-member-gating.spec.ts
pnpm e2e:run --project mobile-chrome tests/system/mobile-database-page.spec.ts tests/system/mobile-logs-bundle.spec.ts tests/system/mobile-storage-maintenance.spec.ts tests/auth/mobile-system-data-storage-member-gating.spec.ts
pnpm e2e:run --project containers tests/docker/storage-maintenance.spec.ts
Run these commands from apps/web.
Files likely touched
apps/web/components/settings/system/data-logs-settings.tsxapps/web/components/settings/system/system-route-copy.test.tsapps/web/components/settings/system/system-invisible-copy.test.tsxapps/web/components/settings/settings-breadcrumb-labels.tsapps/web/components/app-sidebar/sections/settings/settings-menu-sections.tsapps/web/components/app-sidebar/sections/settings/settings-nav-copy.test.tsapps/web/components/app-sidebar/sections/settings/settings-tree.test.tsapps/web/lib/settings-discovery/catalog/system.tsapps/web/lib/settings-discovery/catalog.test.tsapps/web/src/settings-routes.tsxapps/web/src/settings-routes.test.tsapps/web/src/locales/*/system.jsonapps/web/e2e/tests/system/*.spec.tsapps/web/e2e/tests/auth/*data-storage-member-gating*.tsapps/web/e2e/tests/docker/storage-maintenance.spec.tsapps/web/e2e/tests/task/unarchive-storage-recovery.spec.ts
Dependencies
None.
Risks
- A broad route replacement can move database or log tests to Storage by mistake. Classify each reference before editing it.
- The auth tests use manual browser contexts. Both route visits must retain the same authenticated context.
- The Storage route must keep the route-scoped save contributor mounted until the navigation guard resolves.
Parallelism
sequential
Inputs
REQ-SYSTEM-PAGE-DATA-STORAGE-PAGES-001and all acceptance criteria.docs/specs/system-page/system-design/system-data-storage-pages.md.- ADRs 0045, 0046, and 2026-08-04-navigation-manifest-boundaries.
- Existing System route, discovery, settings menu, and Playwright patterns.
Results
The route composition, System navigation, breadcrumbs, discovery ownership, localized copy, unit tests, and desktop, authenticated, phone, and container-backed Playwright references were updated.
Verification passed:
- Focused Vitest command: 107 tests passed.
pnpm run typecheckpassed.- Full
pnpm run lintpassed. pnpm run i18n:checkpassed.- Desktop Playwright command: 18 tests passed.
- Authenticated role command: 2 tests passed.
- Phone Playwright command: 10 tests passed.
python3 scripts/lint-spec-files.py --allandgit diff --checkpassed.
The exact container Playwright command was attempted, but Docker is unavailable in this environment, so that suite could not run.
PR review follow-up added an explicit pseudo-locale assertion for
system:storageTitle and clarified the system-design wording for immediate
commands. The focused remediation test passed with 12 tests.