Commit graph

3 commits

Author SHA1 Message Date
Claude
f6514ef0f4
feat(farm-aggregator): add Render deployment config
- render.yaml for one-click Render web service deploy
- Fix PORT env var (Render sets $PORT, not $WEBHOOK_PORT)
- Add farm-aggregator/.gitignore so .env stays local but .env.example commits
- Commit .env.example so it's available after clone

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KBD2dN2KEjzz3UQFa9hEpu
2026-06-28 06:21:10 +00:00
Claude
c0bdabd270
feat(farm-aggregator): add Dropbox OAuth refresh token helper script
One-time CLI script to exchange App Key + App Secret for a long-lived
refresh token without needing a web server redirect flow.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KBD2dN2KEjzz3UQFa9hEpu
2026-06-28 04:11:02 +00:00
Claude
db1ba75274
feat(farm-aggregator): standalone farm data aggregator service
Node.js service for the farm server that replaces the Chrome extension concept.
Pulls from AG-Refine REST API and Dropbox (DairyComp/FeedLync logs), synthesises
with Claude Haiku on a cron schedule, pushes summaries back to Dropbox and WhatsApp.

- Hourly pulse, daily digest (Haiku), weekly summary (Sonnet)
- TomTom geofence webhook receiver — entry/exit events → WhatsApp + Dropbox log
- WhatsApp Business API send (gracefully disabled if no credentials)
- Express HTTP server with /health, /status, manual /run/* trigger endpoints
- Windows start.bat for farm server deployment
- .env.example documents all credentials (none committed)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KBD2dN2KEjzz3UQFa9hEpu
2026-06-28 03:51:49 +00:00