summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-05-07Fix year-review panel spacingTyler Hoang
Add margin-top to highlights section to match grid gap (24px). Remove margin-bottom from review-panel and rely on grid gap for internal spacing. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-07Hide solo from companions panel in year-in-reviewTyler Hoang
Solo watches aren't relevant to the companions breakdown. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-07Add margin-bottom to detail panelsTyler Hoang
Gives detail panels proper spacing from each other on film detail page. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-07Add margin-bottom to review panelsTyler Hoang
Prevents year review panels from touching the bottom of the page. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-07Add rewatch history to film detail pageTyler Hoang
Display all watches for a film with dates, ratings, and companions. Show time elapsed between rewatches and highlight when rating changed. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-07Remove rewatch rate metricTyler Hoang
The rewatch rate (percentage of films rewatched) is less useful than the detailed rewatch patterns panel. Removed the metric section from both the template and backend payload. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-07Move rewatches panel to sit right of rewatch rateTyler Hoang
Changed rewatch patterns panel from stats-panel-wide to regular stats-panel so it displays in the two-column grid next to the rewatch rate metric. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-07Add rewatch patterns stats panelTyler Hoang
Adds a "Rewatches" section to /stats that displays films you've watched multiple times, grouped by title. For each rewatched film, shows: - Watch count (e.g., "3×") - Rating history (e.g., ✦ → ✦✦ → ✦) with accent highlight when ratings drift - Days between first and last watch Changes: - routers/stats.py: Group films by title in _build_stats_payload, compute rewatch details (ratings, days between, rating change flag), add rewatch_patterns key - templates/stats.html: Add "Rewatches" panel HTML and JS renderer (renderLists) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06minor fixTyler Hoang
2026-05-06Add /about page with rating system explanationTyler Hoang
Introduces a public-facing /about page that explains the 1-3 star rating rubric with real examples pulled from the diary. Each star tier displays 3 randomly-selected, unique films (deduplicated by title to avoid rewatch duplicates). Changes: - New routers/about.py: GET /about queries films by stars, dedupes, randomizes - New templates/about.html: Page with eyebrow, h1, three tier sections with example film cards, closing philosophy, and View Profile button - main.py: Import about router, register it, add /about to public_paths in AuthMiddleware - templates/base.html: Add About nav link after Stats - templates/profile.html: Add About link to /tyler nav - templates/login.html: Add About and View Profile buttons in footer, plus "Made with Lumière" repo link Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Add genre tracking and year-in-review improvementsTyler Hoang
Adds genre field to Film model with TMDB enrichment. Genres populate from TMDB detail fetch during add/edit and bulk enrichment. Genre metadata displays on film cards, detail page (Production section), stats page (top genres panel), and year-in-review (by decade and genre breakdowns). Auto-detects rewatches when adding films via TMDB autocomplete - if a film with the same TMDB ID already exists in diary, pre-fills rewatch checkbox and count. Rewatch count now displays on film cards as "Rewatch #N". Stats page now shows: - Top genres (most watched) - Film decades (sorted chronologically) - Already shows: directors, companions, star distribution, rewatch rate Year-in-review shows decades and genres alongside monthly activity and companions. Bulk enrichment endpoint (/data/enrich-posters) now fetches missing genre metadata along with posters and TMDB IDs. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Add TMDB poster picker to film detail pageTyler Hoang
- New movie_images() async function in services/tmdb.py fetches poster URLs from TMDB /movie/{id}/images endpoint, filtering for English and no-text posters only - New GET /tmdb/posters endpoint returns list of available posters for a TMDB ID - New POST /films/{film_id}/poster endpoint to save selected poster (mirrors the stars endpoint pattern) - Add "Change Poster" button on detail page (only shown if film has a TMDB ID) that opens a 3-column grid of posters - Selected poster gets accent border, main image updates instantly, no page reload needed - Posters are cached per load to avoid refetching on re-open Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Add search, filter, and sort functionality to film shelvesTyler Hoang
- Add _SORT_COLUMNS dict to routers/films.py with 8 sort options - Extend _get_shelf_query to accept q (search) and sort parameters - Update /films/partial endpoint to accept q/sort query params and pass search_active to template to suppress month grouping when searching - Add filter bar (search input + sort select) to templates/index.html - Add data-shelf attribute to #film-feed for JS to read current shelf - Rewrite infinite scroll JS to support debounced search (300ms), feed reset on filter/sort change, and pass params on all fetches Filters text search by title OR director (case-insensitive ilike). Sort options: date watched (newest/oldest), title (A-Z/Z-A), year, stars. Month grouping disabled when search is active. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Hide solo from watched with stats listTyler Hoang
Filter out 'solo' entries from the watched_with_breakdown on the stats page so only companions are shown. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Fix mobile responsive issues on stats pageTyler Hoang
Scale down heatmap cells and gaps on mobile (8px cells, 2px gaps instead of 13px/4px). Reduce stats bar row label width from 64px to 40px. Make stats list single column on mobile to improve spacing. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Hide hamburger menu on desktopTyler Hoang
Set menu-toggle to display: none by default so it only appears on mobile (max-width: 760px) where it's explicitly shown. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Fix mobile menu visibility issueTyler Hoang
Use visibility and opacity instead of max-height/overflow to completely hide the mobile menu when closed. Prevents elements from peeking out. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Add hamburger menu for mobile navigationTyler Hoang
Hide nav-actions on mobile (<= 760px) and show a hamburger menu button instead. Menu opens/closes on click and closes when a link is clicked or when clicking outside. Hamburger icon created with CSS pseudo-elements. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Make All Films tab public on profile pageTyler Hoang
Add /films/partial to public paths so unauthenticated users can load all films on /tyler public profile. The All Films tab now works without requiring login. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Fix director biography fetchingTyler Hoang
- Use person details endpoint instead of search to get full biography - Search endpoint only returns truncated/partial biography - Now correctly fetches complete biography from TMDB Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Add director image and biography to director pageTyler Hoang
- Fetch director profile image and biography from TMDB API - Display image next to director name with lazy loading - Show biography below director name - Gracefully handle missing data (image/biography optional) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Add tabs to public profile: Overview and All FilmsTyler Hoang
- Add tab navigation for switching between overview stats and full filmography - All Films tab loads diary entries with infinite scroll - Lazy load films only when tab is selected Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Increase brand font size from 1.55rem to 1.8remTyler Hoang
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06Add favicon to LumièreTyler Hoang
- Create gold cinema-themed SVG favicon - Add to base.html and profile.html templates Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06reset restTyler Hoang
2026-05-06testTyler Hoang
2026-05-06Add authentication, public profile, and infinite scrollTyler Hoang
- Implement session-based auth with argon2 password hashing - Add login form and logout button in nav - Create public /tyler profile page with curated stats - Implement infinite scroll for film lists (load 20 at a time) - Add lazy loading for poster images - Fix profile page CSS to use dark theme variables - Use consistent star character (✦) across all pages - Add /films/partial endpoint for pagination Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-06fixed star behavior and claude initTyler Hoang
2026-05-06Add year review and inline diary ratingsTyler Hoang
2026-05-06init: lumiere film diaryTyler Hoang