# 07 — Household seeding & session ## Goal On first boot, create the single household and attach Matt + wife to it. Every authenticated request resolves a `householdId` cheaply. ## Depends on - 06 (auth) ## Scope - Migration / seed script (`pnpm db:seed`) that inserts one household named "Home" if none exists. - On first OIDC login, attach the user to the seeded household as `owner` (Matt) or `member` (everyone else). Idempotent. - `getCurrentSession()` server helper returns `{ user, household, role }`. Throws if no household membership. - All later modules' queries take `householdId` as the scope key. - `/settings/household` page showing household name, member list, and a "rename household" form (owner only). ## Out of scope - Multi-household UI (schema supports it; UI is single-household only). - Invite flows (Authentik provisions accounts; we just attach them). ## Acceptance criteria - [ ] `pnpm db:seed` is idempotent — running twice does not create duplicate households. - [ ] First user to sign in becomes `owner`; subsequent users become `member`. - [ ] `getCurrentSession()` returns a typed object with `household.id`. - [ ] `/settings/household` renders for both roles; rename only works for owner.