diff --git a/.claude-context/sessions/2026-09-24-kiosk-resets-dashboards-rooms.md b/.claude-context/sessions/2026-09-24-kiosk-resets-dashboards-rooms.md new file mode 100644 index 0000000..11067f7 --- /dev/null +++ b/.claude-context/sessions/2026-09-24-kiosk-resets-dashboards-rooms.md @@ -0,0 +1,37 @@ +# Kiosk Redesign, Calendar Reset Schedules, Dashboards and Room Editor + +**Date:** 2026-09-24 +**Project:** family-hub +**Status:** blocked +**Tags:** kiosk, apscheduler, reset-schedules, dashboards, rooms, migrations, pets, auth + +## Context +Recorded retrospectively: this work was done in an August 2026 session (exact date not recorded). After a house move, chore resets stopped firing and weekly chores reset at unpredictable times. That session fixed scheduling and added four features in the **local** codebase (`D:\Hosted\familyhub\`). None of it has been pushed to this repo yet, and none of the four migrations have been run — status is blocked on applying them. + +## Key Decisions +- **Wire APScheduler into FastAPI's lifespan explicitly** — it does not start on its own; this was why resets never fired. +- **No destructive reset-on-startup** — wiping completions at startup combined with `--reload` caused data loss. +- **Calendar-anchored reset types (`weekly`, `fortnightly`, `monthly`) with a day/time picker** replace misused `midnight` and drifting `cooldown` types; `cooldown` anchors to completion time and drifts. +- **Kiosk: chore-first flow** — room grid → chores in room → "who did this?" modal. Completed chores stay visible, greyed, with attribution. +- **Custom kiosk dashboards** — each wall tablet shows a chosen subset of rooms, with per-dashboard sleep/dim schedule and tap-to-wake. +- **Room/category editor** — rename (cascades to chores and dashboards), emoji icons, reorder, merge, delete-with-reassign, create. +- **Pet care split** — pet chores move into per-pet categories; shared water-bowl chore handled by a configurable split / assign / keep mode. +- **Kiosk auth** — the axios 401 interceptor must exempt public kiosk pages; token lifetime 24h so tablets don't log out mid-use. + +## Technical Details +- Live DB: `backend\data\family_hub.db` (not `backend\family_hub.db`). Migrations resolve it with `Path(__file__).parent / "data" / "family_hub.db"`. +- Migration order (must be run in sequence): **reset schedules → dashboards → pet care split → rooms**. +- Backend started via `start.bat`, venv at `backend\venv`; icons in `frontend\public\icons\`. +- Household members and pets are configured in the app — names ``. + +## Code Changes +- (local only, unpushed) Scheduler lifespan wiring; new reset types + picker UI; kiosk room→chore→who flow; dashboards model/UI with sleep schedule; room editor; four migration scripts. + +## Open Questions / Next Steps +- Back up `backend\data\family_hub.db`, run the four migrations in order, validate, then commit and push the local changes. +- Resolve the outstanding README merge conflict in this repo. +- Confirm which Gitea repo is canonical — `family-hub` (this one) or the private `familyhub` — and archive the other. +- Future: Google Calendar integration (high priority), Mealie menu planning/shopping lists, Home Assistant push notifications, unified dashboard. + +## Artifacts +- None pushed yet — last pushed commit is Phase 3.1 (`11abfac`).