food-market/docs/menu-orphans-report.md
nns b82adc414c feat(menu): новые экраны s31 в sidebar+Cmd+K+Cmd+J + split-кнопки, orphan-audit
Три новых роута из 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>
2026-10-04 22:50:14 +05:00

76 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`