Три новых роута из Sprint 31 были достижимы только по прямому URL — в sidebar/командной палитре их не было. Добавлено: - AppLayout: «Накладные (по фото)» (/purchases/invoices) в разделе «Закупки», «Инвентаризация с телефона» (/inventory/mobile) в «Остатках» — для Admin и Storekeeper, видно в простом режиме; i18n ru + en. - SplitButtonMenu — переиспользуемая dropdown-кнопка «Новая…». SuppliesPage: вручную / по фото / сканированием. InventoriesPage: вручную / с телефона. - CommandPalette (Cmd+K): новые static-pages invoices, supply-scan, inventories (был пропущен), inventory-mobile. - QuickActionsPalette (Cmd+J): invoice-new, supply-scan, inventory-mobile. - Параллельно всплыл сирота /admin/diagnostic — добавили ссылку в sidebar под Admin'ом. Playwright stage-ui-menu-links.spec.ts: demo-keeper + demo-admin, desktop 1280×800 + mobile 375×667 — кликами с главной до всех трёх новых экранов, скриншоты в reports/. Негатив для demo-cashier проверяет, что ему эти пункты не видны. Orphan-audit: tests/scripts/menu-orphans-audit.mjs парсит App.tsx и диффит против фактических точек входа (sidebar/Cmd+K/Cmd+J/split- кнопок). После всех правок — 0 сирот (отчёт docs/menu-orphans-report.md). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
76 lines
1.8 KiB
Markdown
76 lines
1.8 KiB
Markdown
# Menu orphans audit
|
||
|
||
Generated: 2026-10-04T17:47:55.836Z
|
||
|
||
- tenant-маршрутов всего: **57**
|
||
- служебных (login / :id / /new / super-admin): **20**
|
||
- достижимо кликами: **37**
|
||
- сирот (не достижимо из UI): **0**
|
||
|
||
## Сироты
|
||
|
||
_Нет._ Все не-служебные tenant-маршруты достижимы через sidebar / Cmd+K / Cmd+J / кнопки на list-страницах.
|
||
|
||
## Достижимо
|
||
|
||
- `/`
|
||
- `/admin/diagnostic`
|
||
- `/admin/import/moysklad`
|
||
- `/audit-log`
|
||
- `/catalog/counterparties`
|
||
- `/catalog/price-types`
|
||
- `/catalog/product-groups`
|
||
- `/catalog/products`
|
||
- `/catalog/retail-points`
|
||
- `/catalog/stores`
|
||
- `/catalog/units`
|
||
- `/dashboard`
|
||
- `/help`
|
||
- `/inventory/enters`
|
||
- `/inventory/inventories`
|
||
- `/inventory/losses`
|
||
- `/inventory/mobile`
|
||
- `/inventory/movements`
|
||
- `/inventory/stock`
|
||
- `/inventory/transfers`
|
||
- `/loyalty/cards`
|
||
- `/loyalty/programs`
|
||
- `/promotions`
|
||
- `/purchases/invoices`
|
||
- `/purchases/supplier-returns`
|
||
- `/purchases/supplies`
|
||
- `/purchases/supplies/scan`
|
||
- `/reports/abc`
|
||
- `/reports/profit`
|
||
- `/reports/sales`
|
||
- `/reports/stock`
|
||
- `/sales/demands`
|
||
- `/sales/retail`
|
||
- `/settings/employee-roles`
|
||
- `/settings/employees`
|
||
- `/settings/organization`
|
||
- `/whats-new`
|
||
|
||
## Служебное (не требует точки входа)
|
||
|
||
- `/catalog/products/:id`
|
||
- `/catalog/products/new`
|
||
- `/inventory/enters/:id`
|
||
- `/inventory/enters/new`
|
||
- `/inventory/inventories/:id`
|
||
- `/inventory/inventories/new`
|
||
- `/inventory/losses/:id`
|
||
- `/inventory/losses/new`
|
||
- `/inventory/transfers/:id`
|
||
- `/inventory/transfers/new`
|
||
- `/onboarding-wizard`
|
||
- `/purchases/invoices/:id`
|
||
- `/purchases/supplier-returns/:id`
|
||
- `/purchases/supplier-returns/new`
|
||
- `/purchases/supplies/:id`
|
||
- `/purchases/supplies/new`
|
||
- `/sales/demands/:id`
|
||
- `/sales/demands/new`
|
||
- `/sales/retail/:id`
|
||
- `/sales/retail/new`
|