Commit graph

400 commits

Author SHA1 Message Date
fullsizemalt
e7d23f4c7f fix: Remove floating 0 on Environment page
React renders 0 when using {0 && ...} pattern. Changed to proper
boolean comparison: {value !== undefined && value > 0 && (...)}
2026-01-12 16:18:06 -08:00
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
3a62e94ad8 fix: Replace hardcoded task counts with real calculations
- Overdue: tasks with dueDate in the past
- Due Today: tasks due today
- Completed 24h: tasks completed in last 24 hours
2026-01-12 14:58:57 -08:00
fullsizemalt
e8babfc2eb fix: Replace blue slate skeleton colors with neutral zinc
- Change skeleton bg from slate to zinc for neutral appearance
- Update '777 Wolfpack' branding comment to 'Veridian'
2026-01-12 13:32:29 -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
6c91d4cd42 refactor: Make Aspirant the official theme - remove toggle, lock to aspirant 2026-01-11 22:23:31 -08:00
fullsizemalt
f0db9d5e5f fix: APK tap-to-sign-in - reduce to 5 taps, use correct demo credentials 2026-01-11 17:14:59 -08:00
fullsizemalt
bf2fbe9b19 fix: Replace contaminated wolfpack-kiosk service worker with Veridian sw 2026-01-10 02:25:47 -08:00
fullsizemalt
1f7f722238 Fix nginx DNS resolver for Docker upstream
Use Docker internal DNS resolver and variable for backend upstream
to prevent nginx from failing to resolve hostname during config reload.
2026-01-09 01:44:39 -08:00
fullsizemalt
38ddfb00e3 Add no-cache headers for HTML files
Prevents browser caching of index.html to ensure fresh asset references
after deployments. Static assets remain cached with immutable flag.
2026-01-09 01:30:39 -08:00
fullsizemalt
6bdc23b9d3 Fix nginx config to serve static assets correctly
Add /assets/ location block to serve JS/CSS with correct MIME types
instead of falling back to index.html.
2026-01-09 01:24:41 -08:00
fullsizemalt
f6b9299d00 Add data-theme attribute to HTML for initial styling 2026-01-08 21:02:39 -08:00
fullsizemalt
7a19798c48 Fix DNS conflict by using unique container names
- Add container_name for backend and frontend services
- Update nginx proxy to use veridian-preview-backend hostname
- Fixes issue where DNS was resolving to wrong backend container

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 20:37:54 -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
f4def70f24 fix(mobile): Add safe-area-inset-top padding to header for status bar 2026-01-08 11:48:19 -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
c4bfd6126d fix(deploy): Use hex encoding for passwords to avoid URL parsing errors 2026-01-08 02:23:33 -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
fa9650d0b8 fix(deploy): Remove line numbers from env file generation 2026-01-08 01:26:11 -08:00
fullsizemalt
df208548f5 fix(deploy): Update script with corrected environment loading 2026-01-08 01:21:52 -08:00
fullsizemalt
b39cd90cf1 feat: Add Aspirant theme and preview deployment config 2026-01-08 01:16:41 -08:00
fullsizemalt
da32c67300 chore: Update deployment script for preview env 2026-01-08 01:11:19 -08:00
fullsizemalt
63d0e4ee2d feat(theme): Implement Aspirant theme switcher with DesignSwitch component 2026-01-08 00:46:48 -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