<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lumi.git/templates/index.html, branch master</title>
<subtitle>Personal film diary</subtitle>
<id>https://git.tylerhoang.xyz/lumi.git/atom?h=master</id>
<link rel='self' href='https://git.tylerhoang.xyz/lumi.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/lumi.git/'/>
<updated>2026-05-15T08:50:15Z</updated>
<entry>
<title>Refine Lumi stats and detail UX</title>
<updated>2026-05-15T08:50:15Z</updated>
<author>
<name>Tyler Hoang</name>
<email>tyler@tylerhoang.xyz</email>
</author>
<published>2026-05-15T08:50:15Z</published>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/lumi.git/commit/?id=20c1d02b40bcb9abb5882d0503e596c82e9819bb'/>
<id>urn:sha1:20c1d02b40bcb9abb5882d0503e596c82e9819bb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refine Lumi layouts and public profile</title>
<updated>2026-05-14T08:31:34Z</updated>
<author>
<name>Tyler Hoang</name>
<email>tyler@tylerhoang.xyz</email>
</author>
<published>2026-05-14T08:31:34Z</published>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/lumi.git/commit/?id=cdd28b6c0a3a6444b9ae79b123fe4fa7401de5ab'/>
<id>urn:sha1:cdd28b6c0a3a6444b9ae79b123fe4fa7401de5ab</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add search, filter, and sort functionality to film shelves</title>
<updated>2026-05-07T00:12:46Z</updated>
<author>
<name>Tyler Hoang</name>
<email>tyler@tylerhoang.xyz</email>
</author>
<published>2026-05-07T00:12:46Z</published>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/lumi.git/commit/?id=4bbafdd460945eb506ddb07b9068731245708812'/>
<id>urn:sha1:4bbafdd460945eb506ddb07b9068731245708812</id>
<content type='text'>
- 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 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Add authentication, public profile, and infinite scroll</title>
<updated>2026-05-06T22:25:36Z</updated>
<author>
<name>Tyler Hoang</name>
<email>tyler@tylerhoang.xyz</email>
</author>
<published>2026-05-06T22:25:36Z</published>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/lumi.git/commit/?id=1bdf4ca8c0f51718124ffe5247ac133973d4f251'/>
<id>urn:sha1:1bdf4ca8c0f51718124ffe5247ac133973d4f251</id>
<content type='text'>
- 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 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>init: lumiere film diary</title>
<updated>2026-05-06T19:21:26Z</updated>
<author>
<name>Tyler Hoang</name>
<email>tyler@tylerhoang.xyz</email>
</author>
<published>2026-05-06T19:21:26Z</published>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/lumi.git/commit/?id=e708bec6cd76c2686de4158dde4d04f72a3c300d'/>
<id>urn:sha1:e708bec6cd76c2686de4158dde4d04f72a3c300d</id>
<content type='text'>
</content>
</entry>
</feed>
