Commit graph

221 commits

Author SHA1 Message Date
fullsizemalt
86ad94f812 fix: resolve API prefix double-url bugs and stabilize 3D viewer
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2025-12-12 23:28:59 -08:00
fullsizemalt
36dbeb23c3 feat: 3D Facility Viewer with React Three Fiber
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
- 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
2025-12-12 22:38:06 -08:00
fullsizemalt
1258aebb9f fix: remove /api prefix from audit, documents, messaging, upload APIs
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
Same double /api/api issue that was in layoutApi
2025-12-12 22:28:20 -08:00
fullsizemalt
c7f8bc8cec feat: walkthrough 'completed today' status + 3D viewer spec
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
- 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
2025-12-12 22:17:10 -08:00
fullsizemalt
935ff4dace fix: remove /api prefix from layoutApi paths (base URL already includes /api)
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2025-12-12 22:01:42 -08:00
fullsizemalt
15b50a74c6 feat: global breadcrumbs + walkthrough photo upload
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
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.
2025-12-12 21:22:01 -08:00
fullsizemalt
0382e8119d fix: improve batch card display with batch code badges and room location
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2025-12-12 20:44:12 -08:00
fullsizemalt
eb5ebc610f feat: room cards with color-coded headers + room detail page
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
- 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
2025-12-12 19:33:07 -08:00
fullsizemalt
3239a8b89b ui: redesign room cards - sensor data prominent
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
- 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
2025-12-12 19:13:00 -08:00
fullsizemalt
e7be23cce4 feat: add batch detail endpoint and fix drill-down navigation
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
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
2025-12-12 19:04:16 -08:00
fullsizemalt
817abb732d refactor: consolidate Daily Walkthrough to single page
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
- All sections (reservoirs, irrigation, plant health) on one scrollable page
- Collapsible sections with progress indicators
- Compact inline check rows (no oversized tank visualizations)
- Thin level indicator bars instead of large tank graphics
- Fixed submit button at bottom
- Edit mode per row for quick adjustments
2025-12-12 18:53:08 -08:00
fullsizemalt
20e8f994a1
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2025-12-12 18:38:41 -08:00
fullsizemalt
625deb2bd3 feat: dashboard metrics now clickable with navigation
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
- Active Batches → /batches
- Total Plants → /batches
- Tasks Completed → /tasks
- Tasks Pending → /tasks
- Touch Points → /touch-points
- Rooms → /rooms
- Added arrow indicator on hover
2025-12-12 17:24:07 -08:00
fullsizemalt
93a39c2f2c feat: BatchDetailPage with rich data visualization
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
- BatchDetailPage: Lifecycle journey, SVG sparkline charts, modeled sensor data
- Metrics: Temperature, humidity, VPD, CO2, light PPFD with trends
- Touch point history with categorized icons
- Health score gauge visualization
- IPM schedule display
- BatchesPage: Clickable cards linking to detail
- Stage progress mini indicator
- Days-in-cycle badge
2025-12-12 16:55:04 -08:00
fullsizemalt
a2120170b6 fix: intentional walkthrough UI redesign
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
- DailyWalkthroughPage: Centered, compact start screen with minimal chrome
- Summary: Statistical overview with compact cards
- ReservoirChecklist: Single column centered, tighter spacing
- IrrigationChecklist: Compact status rows, inline toggles
- PlantHealthChecklist: Segmented health control, minimal layout
- Layout: Remove theme toggle from desktop sidebar (cleaner)
2025-12-12 16:49:41 -08:00
fullsizemalt
efb298e119 fix: thorough Linear design audit
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
- ThemeToggle: Single button cycle instead of 3-button bar
- UserMenu: Cleaner styling with accent avatar
- MobileNavSheet: Consistent Linear tokens
- Walkthrough checklists: Desktop two-column layout
- RoleModal: Toggle buttons instead of tiny checkboxes
- IPMScheduleModal: Toggle buttons instead of checkbox
- ScoutingModal: Toggle buttons instead of checkbox
2025-12-12 15:49:21 -08:00
fullsizemalt
b6dd904adc feat: update Layout Designer with Linear design tokens - Use accent blue instead of emerald - Consistent neutral palette - Refined typography
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2025-12-12 15:03:45 -08:00
fullsizemalt
c9b58e0aee fix: improve walkthrough desktop layout with wider cards and grid
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2025-12-12 14:51:52 -08:00
fullsizemalt
f4e6e03ac0 fix: update DevTools login to use new auth signature
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2025-12-12 14:45:19 -08:00
fullsizemalt
fddd43fa4f fix: store refreshToken on login for proper auth flow
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2025-12-12 14:35:54 -08:00
fullsizemalt
71e58dd4c7 feat: Linear-inspired UI redesign with Space Grotesk headlines
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
- Complete UI refactor with charcoal/bone color palette
- Add Space Grotesk font for headlines, Inter for body
- Update all 24+ pages with new design system
- Add LinearPrimitives reusable components
- Improve dark mode support throughout
- Add subtle micro-animations and transitions
2025-12-12 14:29:47 -08:00
fullsizemalt
11e3fc9de8 chore(kiosk): update assetlinks.json with real SHA256 fingerprint
Some checks are pending
Deploy to Production / deploy (push) Waiting to run
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2025-12-11 23:16:52 -08:00
fullsizemalt
046bb9361e feat(kiosk): add Android APK and PWA support
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
2025-12-11 20:22:03 -08:00
fullsizemalt
f51a1072fe feat(pwa): Add PWA support for installable kiosk app
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
- Added manifest.json for 'Add to Home Screen' installation
- Added service worker for offline caching
- Added app icons (192px, 512px)
- Updated index.html with mobile meta tags
- Created spec for Escort Handoff Mode (009)
2025-12-11 16:13:50 -08:00
fullsizemalt
b35c32279c fix(kiosk): Increase QR code size to 320px with fixed dimensions
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
- Removed maxWidth constraint that caused scaling
- Set explicit height/width to prevent shrinking
2025-12-11 15:59:49 -08:00
fullsizemalt
58d76fb158 feat(visitor): Enhanced badge & kiosk UX
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
- Larger QR code on kiosk success screen (280px)
- Redesigned badge page with card flip feature
  - Front: Visitor info, photo, badge number, duration
  - Back: QR code for security scan, checkout link
- Added photo capture to kiosk registration
  - Camera access with preview
  - Capture, retake, and submit photo
- Site branding on badge page (777 Wolfpack)
- Better status indicators and UI polish
2025-12-11 15:46:34 -08:00
fullsizemalt
43e65bfd4c fix(kiosk): Filter empty optional fields before API submission
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
- Prevents validation errors when email/phone/company are empty strings
- Only sends fields with actual values to backend
2025-12-11 15:31:37 -08:00
fullsizemalt
969397bae1 feat(kiosk): Require manual confirmation for badge
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
- Disabled auto-timeout on success screen when a badge is issued
- Updated 'Done' button to 'I have my badge' for clearer confirmation
2025-12-11 15:00:41 -08:00
fullsizemalt
284e972376 refactor(ui): Rename 'Visitor Panopticon' to 'Visitor Management'
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
- Reverted the naming change per user request to avoid the term 'Panopticon'
2025-12-11 14:58:46 -08:00
fullsizemalt
2ffc4edbcd fix(build): Resolve TypeScript and Import errors
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
- Fixed 'qrcode.react' import in VisitorKioskPage (named export)
- Added 'badgeExpiry' to VisitorLog interface in visitorsApi
- Added 'tiers' to LayoutSection interface in layoutStore
- NOTE: This fixes the build failure on nexus-vector
2025-12-11 14:50:42 -08:00
fullsizemalt
5ef61d09be fix(api): Remove double /api prefix from visitorsApi calls
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
- The axios instance already has /api base URL
- Removed redundant /api prefix from all visitor and zone endpoints
2025-12-11 14:44:08 -08:00
fullsizemalt
26c2680b64 fix(types): Add REVOKED to VisitorLog status and include revoke method in visitorsApi
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
2025-12-11 14:20:29 -08:00
fullsizemalt
9f41d6b413 feat(visitor): Implement Admin Panopticon View
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
- Renamed Management Page to Visitor Panopticon
- Added Revoke button to active visitors
- Added Revoke Modal with reason capture
- Updated status display to show REVOKED status
2025-12-11 14:16:14 -08:00
fullsizemalt
15e1a8b199 feat(visitor): Implement Digital Badge System
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
- Added public /badges/:id route with BadgePage component
- Updated VisitorKiosk to display QR code upon check-in
- Backend now returns visitId in check-in response
- Added qrcode.react dependency
2025-12-11 13:51:47 -08:00
fullsizemalt
d2c2e0aeef feat(layout): Add Tiers input to Section Dialog
Some checks failed
Deploy to Production / deploy (push) Failing after 1s
Test / backend-test (push) Failing after 1s
Test / frontend-test (push) Failing after 0s
- Added Tiers configuration to AddSectionDialog
- Updated capacity calculations
- Updates saves to include tier count
2025-12-11 13:26:59 -08:00
fullsizemalt
2edb2dd100 feat(layout): Update frontend types and API to support Tiers
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
- Added 'tiers' to LayoutSection
- Added 'tier' to LayoutPosition
- Included 'sections' in saveFloorLayout payload (fixes data loss bug)
2025-12-11 13:24:56 -08:00
fullsizemalt
efffe3fb94 fix(frontend): Fix TypeScript inference for AddFloorModal state
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
2025-12-11 12:27:02 -08:00
fullsizemalt
da93320ccf feat(layout): Add Ceiling Height and Tiers to Floor creation
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
- Added ceilingHeight and defaultTiers to FacilityFloor model
- Updated API routes and frontend client
- Updated AddFloorModal with new fields and clearer labels
2025-12-11 12:23:49 -08:00
fullsizemalt
e34df722bb feat: Add Building creation functionality to Layout Designer
Some checks failed
Deploy to Production / deploy (push) Failing after 1s
Test / backend-test (push) Failing after 1s
Test / frontend-test (push) Failing after 0s
2025-12-11 11:36:31 -08:00
fullsizemalt
a4a7626637 fix: Correct API call signature for creating floors
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
2025-12-11 11:34:41 -08:00
fullsizemalt
d05fcf6b74 fix: Update Quick Actions page with PageHeader and wizard flow
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
2025-12-11 11:33:39 -08:00
fullsizemalt
f8a368be62 feat: Layout Designer enhancements (#1)
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
- Added ability to create new Floors and properties directly in Layout Designer
- Implemented AddFloorModal
- Updated FloorSelector to support adding properties/floors
- Fixed missing capabilities in PropertySetup
- Resolved circular dependencies and duplicate imports
2025-12-11 11:31:07 -08:00
fullsizemalt
35162d565d refactor: Code splitting, page templates, and PageHeader consistency
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
- Lazy load all pages for 24% bundle size reduction (575KB → 436KB)
- Created templates: PageTemplate, ComponentTemplate, WidgetTemplate
- Updated RoomsPage and IPMDashboardPage with PageHeader
- All routes wrapped in Suspense with PageLoader component
- Fixed malformed router.tsx structure
2025-12-11 11:18:29 -08:00
fullsizemalt
6808446ff0 fix: Enable DevTools on testing domains (*.runfoo.run)
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
2025-12-11 11:08:05 -08:00
fullsizemalt
4663b0ac86 feat: Navigation refactor with RBAC, DevTools for quick user switching, enhanced seed data
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
- Refactored navigation with grouped sections (Operations, Cultivation, Analytics, etc.)
- Added RBAC-based navigation filtering by user role
- Created DevTools panel for quick user switching during testing
- Added collapsible sidebar sections on desktop
- Mobile: bottom nav bar (4 items + More) with slide-up sheet
- Enhanced seed data with [DEMO] prefix markers
- Added multiple demo users: Owner, Manager, Cultivator, Worker
- Fixed domain to runfoo.run
- Added Audit Log and SOP Library pages to navigation
- Created usePermissions hook and RoleBadge component
2025-12-11 11:07:22 -08:00
fullsizemalt
558e0ac1e2 feat: Full Spec Kit compliance implementation
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
Photo Management (per specs/photo-management.md):
- Sharp integration for 3-size compression (thumb/medium/full)
- WebP output with 80-90% quality
- Client-side compression with browser-image-compression
- PhotoUpload component with camera/drag-drop support
- Upload API with bulk support and stats endpoint

Testing:
- Backend: Jest tests for all major API endpoints
- Frontend: Vitest tests for utilities and API clients
- CI: Updated Forgejo workflow for test execution

Specs (100% coverage):
- visitor-management.md (Phase 8)
- messaging.md (Phase 9)
- audit-and-documents.md (Phase 10)
- accessibility-i18n.md (Phase 11)
- hardware-integration.md (Phase 12)
- advanced-features.md (Phase 13)

Documentation:
- OpenAPI 3.0 spec (docs/openapi.yaml)
- All endpoints documented with schemas
2025-12-11 09:53:32 -08:00
fullsizemalt
32fd739ccf feat: Complete Phases 8-13 implementation
Some checks failed
Deploy to Production / deploy (push) Failing after 0s
Test / backend-test (push) Failing after 0s
Test / frontend-test (push) Failing after 0s
Phase 8: Visitor Management
- Visitor/VisitorLog/AccessZone models
- Check-in/out with badge generation
- Zone occupancy tracking
- Kiosk and management pages

Phase 9: Messaging & Communication
- Announcements with priority levels
- Acknowledgement tracking
- Shift notes for team handoffs
- AnnouncementBanner component

Phase 10: Compliance & Audit Trail
- Immutable AuditLog model
- Document versioning and approval workflow
- Acknowledgement tracking for SOPs
- CSV export for audit logs

Phase 11: Accessibility & i18n
- WCAG 2.1 AA compliance utilities
- react-i18next with EN/ES translations
- User preferences context (theme, font size, etc)
- High contrast and reduced motion support

Phase 12: Hardware Integration
- QR code generation for batches/plants/visitors
- Printable label system
- Visitor badge printing

Phase 13: Advanced Features
- Environmental monitoring (sensors, readings, alerts)
- Financial tracking (transactions, P&L reports)
- AI/ML insights (yield predictions, anomaly detection)
2025-12-11 00:26:25 -08:00
fullsizemalt
e240ec7911 feat(phase2): Implement Phase 2 - Plant Touch Points & IPM
Added PlantTouchPoint and IPMSchedule models. Implemented touch-points and IPM controllers/routes. Updated frontend with Dashboard feed and IPM widgets.
2025-12-09 21:22:47 -08:00
fullsizemalt
f95b626724 feat: Shopping List UI + Roadmap Update
📦 Shopping List Feature (Phase 3A)
- Full SupplyItem model with Vendor & ProductUrl
- Shopping List / Inventory toggle
- Add Item Modal (Category, Thresholds, Vendor info)
- 'Order Now' external link logic
- 'Mark Ordered' tracking
- Quantity +/- adjustments

📅 Roadmap Update:
- Defined Unified Master Calendar (Phase 4)
- Added granular toggles (Emp Schedules, Taxes, Compliance, Plant Cycle, etc.)

🚀 Status:
- Backend deployed (Schema synced)
- Frontend deploying...
2025-12-09 15:26:35 -08:00
fullsizemalt
17138b2f80 docs: Add roadmap + implementation plan
📋 Documentation:
- ROADMAP.md (complete feature roadmap)
- QUICK-IMPLEMENTATION-PLAN.md (shopping list, touch points, tasks)

⚠️ CRITICAL ISSUE IDENTIFIED:
- ALL pages have hardcoded bg-white (not dark mode compatible)
- Need to fix: Dashboard, Batches, Rooms, Timeclock, Walkthrough
- Font stack reverting to Inter (CSS not syncing properly)

Next: Mass dark mode fix for all pages
2025-12-09 15:05:53 -08:00