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
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
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
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
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
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
...
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
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
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
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
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
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
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)
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
...
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
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
...
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