docs: record Mantine breadcrumbs evidence

This commit is contained in:
2026-08-27 12:55:39 +03:00
parent d749bf5b28
commit 5fd5e79590
+64
View File
@@ -597,3 +597,67 @@ i18n), backend/API contract, денежные расчёты, безопасно
затрагиваются; знак «+»/«−` сохраняет направление независимо от цвета затрагиваются; знак «+»/«−` сохраняет направление независимо от цвета
(accessibility); конфликтов, race conditions, log noise, non-determinism, (accessibility); конфликтов, race conditions, log noise, non-determinism,
DEBUG/TODO/console и deprecated API не внесено. DEBUG/TODO/console и deprecated API не внесено.
## 2026-08-27-consume-mantine-components
**Change:** consume-mantine-components (schema `wealth-ledger-sdd`)
**Archive path:** `specs/openspec/changes/archive/2026-08-27-consume-mantine-components`
**Specs sync:** `skip_specs: true`; технический рефакторинг заменяет ручную
реализацию хлебных крошек на штатный `Mantine Breadcrumbs` без изменения
observable requirements или API contract (capability `app-breadcrumb-navigation`
не меняется).
### Delivery Map
| Area | Status | Outcome |
| --- | --- | --- |
| frontend | affected | `AppBreadcrumbs` переведён на `Mantine Breadcrumbs` (`component="nav"`, `aria-label`, `data-depth`, `separator`); цепочки/пропсы `AccountBreadcrumbs` и `AppBreadcrumbs` не изменены; кастомные `breadcrumbs-*` классы удалены из `styles.css`, сохранены только адаптивное правило `data-depth="3"` (медиа, узкий экран) и базовое оформление ссылок; тест обновлён под Mantine DOM (navigation role, `aria-label`, `aria-current="page"`, `data-depth`, ссылки, fallback «Счет», `aria-hidden` у сепараторов) |
| backend | N/A | API contract, данные и backend-поведение не менялись |
| specs | affected | Approved Proposal, Design и Tasks заархивированы с `skip_specs: true` |
| docs | N/A | Ни один as-built документ в `docs/` не описывает эти компоненты; правки product docs не требовались — итог подводит только Completion Evidence |
### Delivery commits
| Repo | Commit | Subject |
| --- | --- | --- |
| frontend | `3c459e6` | refactor: use Mantine Breadcrumbs for app navigation |
| backend | — | N/A |
| specs (archive) | `b5df309` | docs(specs): archive consume-mantine-components change |
| docs (as-built) | — | N/A (docs as-built не изменялись — компонент не задокументирован) |
| docs (evidence) | current evidence commit | docs: record Mantine breadcrumbs evidence |
### Verification
| Command (repo) | Наблюдённый результат |
| --- | --- |
| `npx vitest run src/app/ui/AppBreadcrumbs.test.tsx` (frontend) | pass; 6 tests (включая `aria-hidden` сепараторов и прежние поведенческие ассерты) |
| `npm run verify` (frontend, Node 22) | pass (exit 0); strict TypeScript, Biome, coverage, Knip, dependency-cruiser и production build без ошибок |
| `openspec validate consume-mantine-components --type change --strict --store wealth-ledger-specs` (specs, pre-archive) | pass; change valid |
| `git diff --check` (specs) | pass (clean) |
| `openspec validate consume-mantine-components --type change --strict --store wealth-ledger-specs` (specs, post-tasks-edit) | pass; change valid |
Environment note: `specs/scripts/verify-workspace-change.sh` и
`verify-openspec-version.sh` отсутствуют в данном checkout, поэтому workspace
verification выполнялся native OpenSpec validation (`openspec validate --type
change --strict`) + canonical gate affected repo (frontend `npm run verify`) и
`git diff --check`; OpenSpec CLI `1.10.0` проверен напрямую (совпадает с pinned
`.cli-version`). Git-репозитории созданы без remote, поэтому push не выполнялся.
Все Tasks завершены до archive. Semantic verification подтвердила соответствие
утверждённому Design (D1–D3): Mantine `Breadcrumbs` с `component="nav"`,
`aria-label`, `data-depth` и `separator="→"`; предшествующие крошки — `Link`
children, текущая — `<span aria-current="page">`; удалены кастомные
`breadcrumbs-*` классы, адаптивное правило `data-depth="3"` и базовое
оформление ссылок сохранены; маршруты, цепочки, aria и ссылки не изменились.
### Independent read-only review
Verdict: **PASS**. Первый review выявил 1 Important и 2 Minor findings:
(1) сепаратор «→» потерял `aria-hidden`, что меняло доступный tree — исправлено
на `separator={<span aria-hidden="true">→</span>}` с добавлением теста; (2)
потерян `margin-bottom: 1rem` — восстановлен через `[data-depth]`; (3) потерян
accent-цвет ссылок — восстановлен через `[data-depth] a`. Повторная проверка
подтвердила: Critical — `0`, Important — `0`, Minor — `0`. Review также
подтвердил неизменность routing/chain-логики, сохранение `<nav>`/`aria-label`/
`data-depth`, адаптивного скрытия промежуточных крошек и отсутствие остаточных
`breadcrumbs-*` ссылок во `frontend/src`.