Commit graph

124 commits

Author SHA1 Message Date
fullsizemalt
f2dc7526e7 fix: Use valid RoleEnum value STAFF (not WORKER) 2026-01-12 15:40:01 -08:00
fullsizemalt
555a22b846 fix: Use hashPassword utility instead of dynamic bcrypt import 2026-01-12 15:35:13 -08:00
fullsizemalt
458913bdf8 fix: Use passwordHash field name (matches Prisma schema) 2026-01-12 15:25:44 -08:00
fullsizemalt
7607dff622 feat: Photo persistence and user creation
- Change STORAGE_PATH from /tmp to /app/photos
- Add photos_data volume to docker-compose.yml for persistence
- Add createUser controller with bcrypt password hashing
- Add POST /users route for employee creation
2026-01-12 15:21:37 -08:00
fullsizemalt
875ae344f8 fix: Remove Pulse sensor section - references undefined flowerRoom 2026-01-12 13:11:33 -08:00
fullsizemalt
08992257bf fix: Remove roomId from demo batches - foreign key references wrong table 2026-01-12 11:47:31 -08:00
fullsizemalt
3b9da95fd9 fix: Simple timeless icon, favicon, correct BatchStage enums
- Replace tech circuit icon with simple clean leaf silhouette
- Add favicon.png and link in index.html
- Install icon to all mipmap directories including ic_launcher_foreground
- Fix BatchStage enums: FLOWERING, VEGETATIVE, DRYING (not FLOWER/VEG/DRY)
2026-01-12 11:04:33 -08:00
fullsizemalt
3fc1f6cc4e fix: Use correct Sensor field names in seed.ts (deviceId, isActive) 2026-01-12 10:38:39 -08:00
fullsizemalt
210cd16bbe feat: Demo polish - custom app icon, enhanced seed data
- Add custom Veridian app icon (olive green leaf + circuit design)
- Add 3 demo batches: GG4 (Flower), Kush Mints (Harvested), GDP (Veg)
- Add 4 demo tasks with 2 overdue for realistic demo
- Add Pulse sensor mapping for device 11666 to Flower Room
- Copy icon to all Android mipmap directories
2026-01-12 10:20:02 -08:00
fullsizemalt
95250185d0 fix: Critical UI polish - login redirect, remove DevTools, update branding
- Fix login redirect from /dashboard to / (correct index route)
- Remove DevTools component from Layout.tsx and LoginPage.tsx
- Update HomePage branding from 'CA Grow Ops Manager' to 'Veridian'
2026-01-11 23:02:20 -08:00
fullsizemalt
4894679357 Fix PDF and branding routes to use /api prefix
- Add /api prefix to PDF and branding route registration in server.ts
- Remove /api prefix from individual route definitions
- Fixes routing issue where PDF endpoints were not accessible through nginx

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 19:13:35 -08:00
fullsizemalt
978286606d Bust TypeScript build cache 2026-01-08 16:08:41 -08:00
fullsizemalt
7c8964180c Force Docker rebuild to recompile TypeScript with PDF routes 2026-01-08 16:07:14 -08:00
fullsizemalt
9fe6823508 Fix branding service to use in-memory storage
Remove file system operations that were causing permission errors
in the Docker container. Branding configs now stored in memory only.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 15:46:08 -08:00
fullsizemalt
d8f384d44a Bust Docker cache to fetch updated tinypdf-plus with dist 2026-01-08 15:41:53 -08:00
fullsizemalt
5aed125a60 Simplify Dockerfile by using pre-built tinypdf-plus
The tinypdf-plus package now includes pre-built dist files.
Removed bun installation and build step from Dockerfile.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 15:39:06 -08:00
fullsizemalt
80a1d87cac Add bun to PATH for tinypdf-plus build
The tinypdf-plus build script uses 'bun' directly without a full
path. Adding /root/.bun/bin to PATH so the build script can find
the bun binary.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 12:28:17 -08:00
fullsizemalt
d2151c8ee1 Fix bun installation in Dockerfile
The bun.sh install script requires bash. Install bash explicitly
and use it for the bun install script.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 12:25:17 -08:00
fullsizemalt
5063d95477 fix(mobile): Status bar safe area + Pulse API key + backup config 2026-01-08 12:24:17 -08:00
fullsizemalt
3673509a87 Install bun in Dockerfile for tinypdf-plus build
tinypdf-plus uses bun for its build process. Installing bun
in the builder container so the package can be built.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 12:24:02 -08:00
fullsizemalt
dcad331f48 Add explicit tinypdf-plus build step to Dockerfile
The Docker build cache was preventing postinstall from running.
Added explicit build step after npm install to ensure tinypdf-plus
dist folder is generated.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 12:23:13 -08:00
fullsizemalt
4e8c9fd140 Add postinstall script to build tinypdf-plus
The tinypdf-plus package from GitHub needs to be built after
installation to generate the dist folder.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 12:19:43 -08:00
fullsizemalt
908c82916d Add git to Dockerfile for GitHub dependencies
The tinypdf-plus package is installed from GitHub and requires git
during npm install.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 12:15:54 -08:00
fullsizemalt
4bdbfc82ca Add tinypdf-plus integration with PDF generation and branding
Backend changes:
- Add tinypdf-plus dependency for TTF/OTF font support
- Create PDF service with text, certificate, and label generation
- Add PDF API endpoints (/api/pdf/*)
- Add branding service for custom fonts and styling
- Add branding API endpoints (/api/branding/*)
- Add font registration endpoint for custom fonts

Frontend changes:
- Add PDF library with download utilities
- Add PDFDownloadButton component for reusable PDF downloads
- Add branding API client for managing branding configs
- Update ReportsPage with PDF generation tab

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 12:07:35 -08:00
fullsizemalt
1837830a11 fix(backend): Fix dist path after rootDir removal 2026-01-08 11:07:06 -08:00
fullsizemalt
835c062c88 fix(backend): Compile seed.ts to JS for production use 2026-01-08 11:01:42 -08:00
fullsizemalt
3aa0277ab7 fix(backend): Run prisma db push and seed in Docker CMD 2026-01-08 10:54:57 -08:00
fullsizemalt
c7d1bfeb99 fix(auth): Always update password hash for existing users in seed 2026-01-08 02:07:49 -08:00
fullsizemalt
7386b5c6c5 fix(backend): Remove duplicate OPTIONS handler to resolve Startup Crash 2026-01-08 01:52:52 -08:00
fullsizemalt
8ed82cfab6 fix(backend): Downgrade cors and enable auto-seed 2026-01-08 01:43:49 -08:00
fullsizemalt
8b43744f4c fix(backend): Downgrade cors for fastify 4 compat and enable auto-seeding 2026-01-08 01:42:34 -08:00
fullsizemalt
3023155fde fix(pulse): Increase sparkline history to 24h
Some checks failed
Test / backend-test (push) Has been cancelled
Test / frontend-test (push) Has been cancelled
2026-01-07 22:46:23 -08:00
fullsizemalt
f97e8ea1d0 fix(backend): Add manual OPTIONS handler for legacy clients
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-06 23:53:32 -08:00
fullsizemalt
ed7b78be32 fix(backend): Enable permissive CORS to resolve WebView issues
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-06 23:45:44 -08:00
fullsizemalt
c74f37783f fix(backend): Add localhost origins for Capacitor CORS
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-06 23:14:35 -08:00
fullsizemalt
0723c93908 feat(backend): Add CORS support for Capacitor app
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-06 23:08:15 -08:00
fullsizemalt
57c70b91db feat(android): Add Capacitor for Android APK build
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
- Add Capacitor core, CLI, and Android platform
- Install plugins: camera, push-notifications, splash-screen, status-bar
- Configure capacitor.config.ts with app ID run.runfoo.veridian
- Update vite.config.ts with base: './' for Capacitor compatibility
- Update api.ts and SessionTimeoutWarning.tsx to detect Capacitor and use production API URL
- Generate Android project structure with Gradle build files
2026-01-06 21:56:28 -08:00
fullsizemalt
28532d4d9b feat: Environment Reports with alert response time analytics and PDF export
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-06 01:46:59 -08:00
fullsizemalt
c39abe5696 feat: Auto-resolve alerts + Resolve All button in Failsafe UI
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-06 00:58:53 -08:00
fullsizemalt
55bdef78e4 fix: Skip JWT auth for edge device endpoints
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-06 00:43:24 -08:00
fullsizemalt
e4c506d074 feat: Connect Pulse alerts to Edge failsafe
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-05 23:51:48 -08:00
fullsizemalt
6ae2b35f8d feat: Backend support for Edge commands/failsafe
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-05 23:17:03 -08:00
fullsizemalt
1abb972d37 feat: Pulse sparklines, sidebar updates, and WS fix
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-05 22:45:37 -08:00
fullsizemalt
fb5dba5019 fix: use correct Pulse API endpoints (/all-devices, data-range)
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-05 22:11:42 -08:00
fullsizemalt
afbd5c69aa feat: Pulse threshold alerts with WebSocket broadcasting
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-05 21:02:01 -08:00
fullsizemalt
215d24eb0e fix: use connection.socket for @fastify/websocket v8
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-05 20:44:06 -08:00
fullsizemalt
af0e6526d6 fix: use @fastify/websocket v8 for Fastify 4.x compatibility
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-05 20:39:24 -08:00
fullsizemalt
95af9e9f8d fix: log.error typing in websocket plugin
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-05 20:32:35 -08:00
fullsizemalt
54531a79d5 fix: TypeScript errors in websocket plugin and Prisma calls
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-05 20:25:22 -08:00
fullsizemalt
5c86b98628 feat: Pulse sensor integration with real-time WebSocket alerts
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-05 20:09:39 -08:00