3.4 KiB
3.4 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-accordion-default | Make Accordion tree the default | done | 1 | plan.md |
|
|
|
Task 01: Make Accordion tree the default
Summary
Change the Settings Menu Shape fallback from Flat list to Accordion tree for devices without a valid saved choice. Keep explicit local choices intact, align all supported locale descriptions, and update focused desktop and phone coverage.
In scope
- Change the default constant and its unit-test expectations.
- Update user-facing default descriptions in all supported locales.
- Update stale comments and existing Settings Menu Mode browser assertions.
- Verify the desktop and phone default paths.
Out of scope
- Migrating existing local storage values.
- Changing branch expansion, navigation, save coordination, or phone layout.
Acceptance
- A missing, malformed, or unsupported stored mode resolves to Accordion tree; valid stored modes still round-trip unchanged.
- The Settings Menu Shape card identifies Accordion tree as the default in all supported locales, and Flat list no longer claims that status.
- Desktop and phone focused E2E tests prove the fresh-device default and existing navigation behavior.
Verification
cd apps && pnpm --filter @kandev/web test -- --run lib/settings/settings-menu-mode.test.ts
cd apps/web && pnpm e2e:run --project chromium tests/settings/settings-menu-mode.spec.ts
cd apps/web && pnpm e2e:run --project mobile-chrome tests/settings/mobile-settings-index.spec.ts
python3 scripts/lint-spec-files.test.py
python3 scripts/lint-spec-files.py --all
git diff --check -- docs/specs docs/plans
Files likely touched
apps/web/lib/settings/settings-menu-mode.tsapps/web/lib/settings/settings-menu-mode.test.tsapps/web/src/locales/*/settings.jsonapps/web/e2e/tests/settings/settings-menu-mode.spec.tsapps/web/e2e/tests/settings/mobile-settings-index.spec.tsapps/web/e2e/helpers/settings-menu.tsdocs/specs/ui/README.mddocs/specs/ui/requirements/settings-menu-default.mddocs/specs/ui/system-design/settings-menu-default.mddocs/plans/settings-menu-default/plan.md
Dependencies
None.
Risks
Tests that depend on a clean device-local mode may need explicit setup so they remain independent of the new default.
Parallelism
sequential
Inputs
docs/specs/ui/requirements/settings-menu-default.mddocs/specs/ui/system-design/settings-menu-default.md- Existing Settings Menu Mode unit, component, and browser tests.
Results
Completed.
pnpm --filter @kandev/web test -- --run lib/settings/settings-menu-mode.test.ts: 8 tests passed.pnpm e2e:run --project chromium tests/settings/settings-menu-mode.spec.ts: 5 tests passed.pnpm e2e:run --project mobile-chrome tests/settings/mobile-settings-index.spec.ts: 3 tests passed.pnpm --filter @kandev/web run typecheck: passed.pnpm --filter @kandev/web run lint: passed.pnpm --filter @kandev/web run i18n:check: passed for all supported locales.python3 scripts/lint-spec-files.test.py: 30 tests passed.python3 scripts/lint-spec-files.py --all: passed.git diff --check: passed.