- Implemented AuraUI 'Sign Up 1' as new Visitor Check-In flow
- Integrated high-tech split-screen layout with 'Secure Facility' branding
- Moved camera and form logic to self-contained VisitorCheckIn component
- Updated VisitorKioskPage to route to new experience
- Added historical stage calculation logic to PlantSystem
- Wired TimelineSlider date to 3D scene props
- Plants now visually progress through lifecycle stages (Clone -> Veg -> Flower) based on selected date
- Mocked planting dates deterministically based on plant ID seed
- Implemented responsive header with collapsible sidebar toggle
- Added mobile-optimized styles for PlantDataCard (full-width bottom sheet)
- Adjusted positioning of map controls and legend for mobile screens
- Added mobile interaction improvements (auto-close sidebar on select)
- Refined typography and spacing for touch targets
- Add sectionId to SearchResult interface
- Search handler now looks up section by ID first
- Falls back to code/name lookup for backwards compatibility
- Fixes beacon offset in Room B (duplicate section codes)
- Create coordinates.ts with centralized SCALE constant
- Add calculatePlantCoords() helper matching SmartRack grid logic
- Refactor all beacon position calcs to use helper
- Uses col*colSpacing where colSpacing = width/(maxCols+1)
- This matches how plants are actually rendered in PlantSystem
- Remove ROOM_FOCUS preset (wasn't rendering correctly)
- Keep Overhead and Isometric views which work well
- FocusTarget now zooms within current preset
- Text navigation provides room selection
- New HierarchyNav component with Facility→Building→Floor→Rooms path
- Back button and breadcrumb trail in nav header
- Replace old room list with drilldown navigation
- Each level shows children with chevron indicators
- Add sectionCode to PlantSearch SearchResult
- handleSearchSelect now passes room/section to selectedPlant.breadcrumb
- This makes breadcrumb visible in plant info panel
- Create HierarchyBreadcrumb component for navigation
- Fix SmartRack plant positioning within section bounds
- Add breadcrumb data to PlantPosition type
- Display breadcrumb path in plant selection panel
- Pass roomName through component hierarchy
- Create CameraPresets.tsx with preset views and UI selector
- Replace free camera controls with preset-based system
- Add smooth animated transitions between camera positions
- Update Facility3DViewerPage with preset selector buttons
- Remove unused WASD keyboard controls
- Replaces 3D viewer component with maintenance placeholder
- Preserves METRC integration and other active features
- Prevents application hard crash for users
- Added METRC status badge to BatchesPage
- Implemented real 3D Facility Viewer using React Three Fiber
- Visualizes plants, rooms, sections from live data
- Added seed-metrc-demo.js for populating realistic METRC plant data
- Created metrcApi.ts client for all METRC endpoints
- Created MetrcDashboardPage with Overview, Plant Locations, Audit tabs
- Shows demo mode banner when METRC API not connected
- CSV export for manual METRC upload
- Plant location table with sync status
- Audit trail with location change history
- Added METRC to navigation under Compliance section
- Removed category field usage (doesn't exist in Prisma schema)
- Changed grouping from category to type
- Removed GUIDE type (not in backend)
- Updated filter dropdown with correct types
- Added Facility3DViewerPage with interactive 3D scene
- Shows floors, rooms, sections, and plant positions
- Color-coded by room type and position status
- Orbit controls for rotation/zoom/pan
- Floor selector dropdown
- Stats panel showing totals
- Added /layout/floors/:id/3d API endpoint
- Fixed TypeScript issues in DocumentsPage
- Added /walkthroughs/today API endpoint
- Show clear status when walkthrough is already completed
- Show 'Continue Walkthrough' for in-progress ones
- Added facility-3d-viewer.md spec
- Installed React Three Fiber dependencies
Breadcrumbs:
- Added Breadcrumbs to main Layout (appears on ALL pages)
- Dynamic route support (/batches/:id, /rooms/:id)
- Proper navigation hierarchy
Daily Walkthrough:
- Enhanced layout with progress bar
- Photo capture from camera or file upload
- Notes fields for each check
- Improved touch targets and mobile UX
Removed inline breadcrumbs from individual pages since
they now come from the global Layout.
- Room cards now have colored header backgrounds per type (VEG=green, FLOWER=purple, DRY=amber, CURE=orange, etc.)
- Cards are clickable, linking to /rooms/:id
- New RoomDetailPage with gradient header, sensor metrics with sparklines, active batches list
- Backend: GET /rooms/:id endpoint returns room with batches
- Temp/humidity now large and center with colored icons
- Size and capacity compressed to header subtitle
- Batch count with status indicator dot
- Cleaner visual hierarchy
Backend:
- Add getBatchById controller with touch points and IPM schedule
- Add GET /batches/:id route
Frontend:
- Update Batch interface to include touchPoints
- BatchDetailPage now uses real touch points from API
- Better error handling on batch load failure