Commit graph

111 commits

Author SHA1 Message Date
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
fullsizemalt
2ca6fb01f4 feat: add edge device endpoints (ingest, heartbeat, alert)
Some checks failed
Test / backend-test (push) Has been cancelled
Test / frontend-test (push) Has been cancelled
2026-01-02 00:30:10 -08:00
fullsizemalt
b520ffc578 fix: remove duplicate accessZoneRoutes registration
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-01 23:27:18 -08:00
fullsizemalt
abaef138ba fix: use plantLifecycleEvent instead of non-existent plantLocationHistory
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-01 22:53:41 -08:00
fullsizemalt
2bc596c527 fix: backend syntax and frontend toast API
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-01 22:49:33 -08:00
fullsizemalt
133bf9ea3a feat(layout): lifecycle actions (harvest/destroy) + neutral styling
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-01 22:40:02 -08:00
fullsizemalt
c962118ba6 fix(prisma): Add inverse relation for PlantType specific plants
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-01 16:35:52 -08:00
fullsizemalt
7ec8b1fc57 feat: Implement persistence for plant placements in layout editor
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-01 16:29:45 -08:00
fullsizemalt
cbaa341553 fix: Add updateSection API and backend route, fix page title
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
- Add updateSection to layoutApi.ts
- Add PATCH /sections/:id route with smart resizing logic
- Fix default page title in index.html
2026-01-01 15:33:40 -08:00
fullsizemalt
f534c9818e fix: Fix z.record() Zod syntax for TypeScript compatibility
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2026-01-01 14:16:07 -08:00
fullsizemalt
d9d04045cb feat: Add Rackula-inspired layout system with 2D editor
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
- Add PlantType model with Zod validation
- Add PlantType CRUD API routes
- Add 2D Layout Editor components (TypeLibrary, RackVisualizer, LayoutEditor)
- Add seed script with 21 common cannabis strains
- Add /layout-editor/:floorId? route
2026-01-01 14:12:03 -08:00
fullsizemalt
1950651102 feat: Implement Parametric Room Generation and Volumetric Plants
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
2025-12-27 14:46:00 -08:00
fullsizemalt
820d345a0c fix: Tasks API - map assigneeId query param to assignedToId schema field
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
Root cause: Prisma schema uses 'assignedToId' but getTasks was passing
'assigneeId' directly to the where clause, causing PrismaClientValidationError
2025-12-27 13:56:54 -08:00
fullsizemalt
ca8a3e8cee refactor: Rebrand from 777wolfpack/CA Grow Ops to Veridian
Some checks are pending
Test / backend-test (push) Waiting to run
Test / frontend-test (push) Waiting to run
- Update all frontend branding (Login, Splash, Layout, Navbar, etc.)
- Update page titles and breadcrumbs
- Update visitor components (Badge, CheckIn)
- Update deploy.sh and README
- Update test fixtures with new email domain
2025-12-27 11:24:26 -08:00