Replace the wizard-style 4-step shipment cart with an inventory-page-
integrated flow matching the legacy portal UX. Users now add items
directly from inventory detail rows via "+" buttons, with a persistent
cart bar showing status. The "Complete Release" page is a flat form
instead of a multi-step wizard.
Key changes:
- Add ShipmentCartProvider context for cross-page cart state
- Add CartBar component (start/cancel release, view status)
- Integrate cart column into inventory detail table with per-row
add buttons, plant mismatch indicators, and "Add All" support
- Rewrite /shipment-requests/new as flat Complete Release page
- Add check_only param to cart API (avoid auto-creating on mount)
- Add server-side plant constraint validation on cart items
- Add batch add API endpoint for "Add All" functionality
- Delete deprecated wizard cart and inventory browser dialog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add cmdk-based combobox to portal header for inline company switching
with search by name or Epicor ID. Also update select-company page to
use the same pattern. Fix admin company switching by allowing admins
to switch to any active company without requiring a quest_user_company
link.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements authentication middleware with rate limiting, comprehensive permission
system, full portal navigation with sidebar and header, company selection flow,
and data migration tooling from SQL Server to PostgreSQL.
Key additions:
- Middleware: auth guards, rate limiting, session management
- Permissions: role-based access control with hierarchical permission rules
- Navigation: responsive sidebar with expandable sections, header with notifications
- Company selector: multi-company user support with session-based active company
- Data migration: comprehensive script for migrating auth and quest domain tables
- Schema: added auth_user_type_permission_group junction table
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Initialize Next.js 15 with App Router and TypeScript strict mode
- Configure Tailwind CSS with shadcn/ui theme system
- Install shadcn/ui components (button, card, input, table, etc.)
- Set up ESLint and Prettier with automatic formatting
- Configure path aliases (@/*) in tsconfig.json
- Create full project structure per CLAUDE.md
- Add health check endpoint at /api/health
- Configure next.config.ts with output: 'standalone' for Docker
- Set up Prisma with placeholder schema
- Configure Vitest (unit) and Playwright (E2E) testing
- Add VS Code settings for consistent development experience
Build verification: TypeScript compilation, ESLint, and production build all pass.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>