New /calendar page merges every Task (garden, home, equipment, animals)
into one month grid, color-coded by category, with a click-a-day detail
panel and inline Done (reuses /api/tasks/[id]/complete). Recurring tasks
project every occurrence in view via the new occurrencesInRange in
src/lib/tasks/schedule.ts (first tests for that module — 12, including
month-end clamping). Season chips per month come from PlantType
bloom/harvest windows via src/lib/garden/season.ts (monthInWindow,
year-wrap aware). Nav gains a Calendar item.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Harvest logs now carry a structured amount+unit (legacy freeform quantity
kept for old rows) and can simultaneously create a GARDEN-source pantry
item via addPlantLog's new pantry input. PlantTypes can link a UW–Madison
Extension article, searched through /api/v1/plant-types/uw-search (proxy
to hort.extension.wisc.edu's WordPress REST API); the link shows on the
type page and each plant. The garden log dialog now posts to /api/v1.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Pantry now runs on the v1 API like Inventory/Animals: service layer in
src/lib/services/pantry.ts, pure logic + tests in src/lib/pantry/core.ts,
thin routes at /api/v1/pantry/* riding the items:* scopes. Pulls write
ItemLog type USED with a structured amount (queryable consumption).
Bulk-use runs its reads inside the transaction, accumulates repeated
pulls, and reports skipped items instead of silently dropping them —
the Pull dialog now surfaces those by name. Old /api/pantry routes
deleted.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- README/CLAUDE.md: Inventory depth (warranty/value/maintenance/sold/custom fields,
HomeBox CSV import), Locations page, the two-world data-model rule, API-first +
service-layer conventions, and the HTTPS-gated future work (MCP/PWA/camera)
- New docs/git-deploy-guide.md: self-contained git + deploy walkthrough for a
Claude instance working without this repo's CLAUDE.md (NAS is a git checkout,
push + pull/rebuild, never rsync, secrets in host .env, prisma-at-runtime gotcha)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>