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

1.8 KiB
Raw Blame History

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