ginnoir
c8db5475d3
feat(agent): add voice input and photo attachments to assistant
...
Wire mic through Whisper-compatible transcriptions on LLM_BASE_URL.
Photos upload to MinIO and reach the vision model as base64 image_url parts.
2026-07-05 02:01:48 -05:00
ginnoir
a4be5d5061
feat(notes): rich-text editor with tiptap (task 85)
...
Replace plain textarea with shared tiptap editor and sanitized html rendering.
Adds interactive checklists on read surfaces and mobile overflow fixes.
2026-07-04 19:25:15 -05:00
ginnoir
7f2c5a44dd
feat: garden care reminder bodies, task sync, upload cleanup
...
- care reminders now fire with plant-specific body ("Time to water Pothos")
via title/body columns on the reminders table (migration 0016)
- bi-directional task sync: checking off a garden-linked task list item
creates a care log; logging care from garden marks the linked task done
(list_items.metadata stores gardenPlantId + gardenCareType linkage)
- upload error response no longer leaks debug detail; error message
corrected from "5 MB" to "100 MB"
2026-06-01 23:58:00 -05:00
ginnoir
dd980c6932
fix: garden ui polish - form styles, back nav, species dropdown, upload limit
2026-06-01 23:38:52 -05:00
ginnoir
2fd0677c5f
feat: add garden module infrastructure (task 70)
...
- Add MinIO service to compose.yaml with named volume
- Add generic /api/uploads POST+GET route with auth, 5 MB, image/* guards
- Add src/lib/minio.ts singleton client with ensureBucket helper
- Add garden Drizzle schema: containers, plants, care_logs, care_schedules, species_cache
- Register garden module in src/modules/index.ts and src/lib/db.ts
- Apply migration 0015_garden_schema.sql
- Add MINIO_* and PERENUAL_API_KEY to .env.example
- Add task briefs 70-75 for the full garden feature arc
- Add uploads.spec.ts E2E test (RED → GREEN on route auth guard)
2026-06-01 19:23:19 -05:00