TV Diary
Track series separately from films. Movies use Movie Diary at /[handle]/movies; TV uses /[handle]/tv. Sleep dreams belong in Dream Diary at /[handle]/dreams.
Episode log
Log what you are watching with season/episode numbers when you mention them (e.g. Episode 8). Each log is a row in your TV Diary.
Search & sort
Search by show title or notes. Sort newest or oldest; switch between timeline list and poster grid.
Edit logs (owner)
When logged in as the diary owner, use the pencil to fix date/time, season, episode, notes, or delete an entry.
Poster grid
Grid layout matches the /tv catalog — 1px gutters, square tiles, hover overlay with show title and episode progress.
Catalog at /tv
TV series live in notable_people with entity_type=show. Public profiles at /tv/[slug]; your diary at /[handle]/tv.
Dayze Agent
Say "I'm on Episode 8 of Person of Interest" — the agent calls log_tv_watch (not log_movie_watch or create_event). Missing shows: OMDb/IMDb when OMDB_API_KEY is set, else Wikidata/Wikipedia (no key).
Data model
Personal logs: user_tv_log (user_id, show_slug, watched_at, season_number, episode_number, notes). Catalog: notable_people with entity_type=show.
Calendar: Episodes mirror to /calendar (external_source=user_tv_log). Live sync on log_tv_watch and diary edits. Backfill: npm run sync:tv-diary-events -- --handle=you.
Agent tool: log_tv_watch. UI refresh event: DAYZE_TV_LOG_UPDATED_EVENT.
Apply migration migrations/20260602_user_tv_log.sql in Supabase before using in production.