Changelog

All notable changes to this project will be documented in this file.


[unreleased]

Bug Fixes

  • (admin) improve security and dashboard services - (5304a58) - Jacob Coffee

  • (admin) keep main navbar visible in admin area - (eda3465) - Jacob Coffee

  • (admin) use safe user access and add Python logo to sidebar - (ab48a02) - Jacob Coffee

  • (admin) use safe user access in dashboard template - (dc785b8) - Jacob Coffee

  • (admin) reorder drawer elements for proper sidebar display - (729857c) - Jacob Coffee

  • (admin) restore drawer sidebar with correct element order - (1f3038a) - Jacob Coffee

  • (admin) remove breadcrumbs block to prevent duplicate rendering - (d8c138a) - Jacob Coffee

  • (admin) use inline SVG for search icons - (c1c8ac1) - Jacob Coffee

  • (admin) resolve admin panel initialization issues - (67e8d7a) - Jacob Coffee

  • (admin) use DaisyUI input pattern for search field - (5fe4a05) - Jacob Coffee

  • (admin) exclude admin page controllers from OpenAPI schema - (dc895e7) - Jacob Coffee

  • (admin) always show HTML tabs in email preview with warning - (1d14e98) - Jacob Coffee

  • (admin) always show HTML tabs in template detail page - (879710b) - Jacob Coffee

  • (admin) fix modal layout collision and DIALOG method error - (2a4dcb2) - Jacob Coffee

  • (admin) improve cache management UI with toast notifications and fixes - (a0213ad) - Jacob Coffee

  • (admin) ensure toast appears immediately after redirect - (6651c87) - Jacob Coffee

  • (admin) fix modal close buttons causing HTTP 405 errors - (fe5e4a2) - Jacob Coffee

  • (admin) implement email logs filter functionality - (13b6dcd) - Jacob Coffee

  • (admin) default email logs time_range to all - (c26ac32) - Jacob Coffee

  • (admin) implement email templates status and type filters - (34c5eef) - Jacob Coffee

  • (admin) fix pages list published filter parameter - (abc9c64) - Jacob Coffee

  • (admin) export DownloadAnalyticsService from services module - (89d8670) - Jacob Coffee

  • (admin/blogs) handle empty feed_id query param in entries list - (ddc5b1b) - Jacob Coffee

  • (admin/blogs) render entry summary HTML with safe filter - (1bf21cd) - Jacob Coffee

  • (admin/blogs) use feed.entries instead of undefined entries variable - (bb30516) - Jacob Coffee

  • (admin/blogs) pass entries to feed preview modal context - (7205e4d) - Jacob Coffee

  • (admin/blogs) inline search button with join class - (e402117) - Jacob Coffee

  • (admin/email) use correct AuditBase field names in logs detail - (6b143f6) - Jacob Coffee

  • (admin/email) add duplicate template handler - (dcd9ab2) - Jacob Coffee

  • (admin/events) fix validation errors and add HTMX partials - (0b70608) - Jacob Coffee

  • (admin/events) add |safe filter to render HTML in event titles - (4d80aff) - Jacob Coffee

  • (admin/events) avoid empty query params in pagination URLs - (c53818e) - Jacob Coffee

  • (admin/jobs) improve preview modal UX - (349b308) - Jacob Coffee

  • (api) consolidate OpenAPI tags for users and add Nominations tag - (e859ee2) - Jacob Coffee

  • (api) exclude page render controllers from OpenAPI schema - (b67e0f0) - Jacob Coffee

  • (api) add missing limit_offset pagination dependency - (2273023) - Jacob Coffee

  • (auth) handle plugin.config as list in middleware - (2b5c5d3) - Jacob Coffee

  • (auth) use Request type for route handler DI - (b425997) - Jacob Coffee

  • (auth) set proper HTTP status codes for auth endpoints - (ddea628) - Jacob Coffee

  • (auth) keep UUID/datetime as runtime imports for Pydantic - (94195de) - Jacob Coffee

  • (auth) update auth controller routes for page rendering - (9e347cb) - Jacob Coffee

  • (auth) use native fetch for login form JSON submission - (0cfbd0e) - Jacob Coffee

  • (auth) prevent form GET submission and SQLAlchemy greenlet error - (cc76098) - Jacob Coffee

  • (auth) use native fetch for all auth forms JSON submission - (6fece37) - Jacob Coffee

  • (auth) add UserPopulationMiddleware to show admin button on all pages - (ae01f3f) - Jacob Coffee

  • (auth) resolve circular import in guards module - (b98ada1) - Jacob Coffee

  • (banners) persist sitewide banners across HTMX navigation - (eb6711e) - Jacob Coffee

  • (blogs) filter featured entries by is_featured flag - (1aa9c7b) - Jacob Coffee

  • (blogs) add HTMX OOB swap for sidebar feed filter active state - (21bb063) - Jacob Coffee

  • (blogs) resolve MissingGreenlet error in feed fetch - (56459f5) - Jacob Coffee

  • (ci) resolve Docker test and Feed schema issues - (539fa32) - Jacob Coffee

  • (codespell) skip generated directories and add regex false positive - (8e70658) - Jacob Coffee

  • (config) use IPv4 address for Meilisearch default URL - (6ac961f) - Jacob Coffee

  • (config) auto-convert postgresql:// to postgresql+asyncpg:// - (00fa302) - Jacob Coffee

  • (csrf) improve CSRF configuration and add tests - (41cef7d) - Jacob Coffee

  • (css) rename loading-spinner to avoid DaisyUI circular dependency - (6988847) - Jacob Coffee

  • (db) configure AlembicAsyncConfig for Litestar CLI database commands - (61ce8a7) - Jacob Coffee

  • (deploy) add Railway config and fix test connection pool - (91cabed) - Jacob Coffee

  • (deploy) wrap start command in shell for env var parsing - (dc3096c) - Jacob Coffee

  • (deploy) increase healthcheck timeout to 120s - (32dbef9) - Jacob Coffee

  • (docker) add BuildKit syntax and cache mount ids for Railway - (8fdcd61) - Jacob Coffee

  • (docker) remove cache mounts for Railway compatibility - (07ce5bb) - Jacob Coffee

  • (docker) ensure venv binaries have execute permissions - (70634da) - Jacob Coffee

  • (docker) use –chmod=755 on COPY for venv executables - (124e63d) - Jacob Coffee

  • (docker) resolve Python version mismatch and venv symlink issues - (69ca3f6) - Jacob Coffee

  • (docs) fix Scalar plugin and change schema path to /api - (c62d213) - Jacob Coffee

  • (docs) simplify OpenAPI plugin configuration - (4d39dc7) - Jacob Coffee

  • (docs) simplify OpenAPI plugins to use built-in renders - (d6ccb28) - Jacob Coffee

  • (docs) make header text white on blue background - (0af03d2) - Jacob Coffee

  • (docs) add yellow hover state for header elements - (5d15ee5) - Jacob Coffee

  • (docs) exclude internal directory from Sphinx builds - (e7dd06f) - Jacob Coffee

  • (docs) resolve Sphinx build warnings - (95a0ec8) - Jacob Coffee

  • (docs) resolve Sphinx warnings from SQLAdmin and docstrings - (327b533) - Jacob Coffee

  • (docs) suppress debug logging during sphinx build - (09b2c45) - Jacob Coffee

  • (events) render event description HTML with safe filter - (04380cd) - Jacob Coffee

  • (events) correct iCalendar feed URL in calendar template - (8d2ced0) - Jacob Coffee

  • (events) add hx-boost=false to iCalendar download links - (c0db848) - Jacob Coffee

  • (events) rewire calendar view with proper data and HTMX support - (4fbbd4b) - Jacob Coffee

  • (events) improve calendar view HTMX and add week view - (c79929a) - Jacob Coffee

  • (events) make calendar navigation work with HTMX - (c2e377a) - Jacob Coffee

  • (events) add eager loading to prevent MissingGreenlet errors - (5eedfbb) - Jacob Coffee

  • (events) add eager loading to event queries - (0607587) - Jacob Coffee

  • (events) add calendar, start_date, end_date filter params to controller - (1472827) - Jacob Coffee

  • (exceptions) improve toast messages and add deduplication - (2073356) - Jacob Coffee

  • (homepage) display venue name instead of object repr - (2563d69) - Jacob Coffee

  • (jobs) resolve duplicate content in job filter sidebar - (5720d75) - Jacob Coffee

  • (jobs) convert Clear All to htmx button for proper partial swap - (60791af) - Jacob Coffee

  • (jobs/submit) fix modal close button and checkbox array handling - (6cfb545) - Jacob Coffee

  • (jobs/submit) fix form data mapping to match API schema - (fb82b27) - Jacob Coffee

  • (jobs/submit) remove conflicting form action and method - (e6324f0) - Jacob Coffee

  • (js) prevent script re-execution from hx-boost navigation - (985fa5a) - Jacob Coffee

  • (lint) ignore PLC0415 in tasks for lazy imports - (bd0f9b6) - Jacob Coffee

  • (lint) disable PLC0415 globally and fix FURB162 - (c221c28) - Jacob Coffee

  • (logging) remove format_exc_info for dev mode to enable Rich tracebacks - (e31639a) - Jacob Coffee

  • (logging) explicitly configure processors for Rich console output - (68c8e6e) - Jacob Coffee

  • (make) remove duplicate Docker targets - (6d5daed) - Jacob Coffee

  • (navbar) safely access user from request scope - (daa4ffd) - Jacob Coffee

  • (navbar) improve admin dropdown and fix donate button alignment - (e7f1159) - Jacob Coffee

  • (navbar) improve dropdown hover behavior and update links - (6eba545) - Jacob Coffee

  • (pages) prevent double slash in page paths - (c03e66a) - Jacob Coffee

  • (railway) reduce workers to 1 for debugging - (8cd4444) - Jacob Coffee

  • (search) cleanup stale index entries and reduce log noise - (f01b0a9) - Jacob Coffee

  • (search) graceful degradation when Meilisearch unavailable - (2455853) - Jacob Coffee

  • (search) add eager loading to event indexing tasks - (08c42bc) - Jacob Coffee

  • (seed) remove unnecessary noqa comments - (aac0195) - Jacob Coffee

  • (seed) update blog feeds to use official Python sources - (ef1687a) - Jacob Coffee

  • (sqladmin) add Tailwind CSS, Lucide icons, and Python logo - (7aa5495) - Jacob Coffee

  • (sqladmin) fix sidebar header layout with Python logo - (5e4ab19) - Jacob Coffee

  • (sqladmin) use same sidebar as admin pages - (d3c96f6) - Jacob Coffee

  • (sqladmin) handle category children in template menu iteration - (151baf9) - Jacob Coffee

  • (tasks) prevent MissingGreenlet error in feed refresh tasks - (e61aea5) - Jacob Coffee

  • (templates) update admin templates for new controllers - (05ecdca) - Jacob Coffee

  • (templates) use striptags filter to prevent raw HTML in summaries - (99864f5) - Jacob Coffee

  • (templates) minor template fixes across admin and auth - (ae5abb7) - Jacob Coffee

  • (templates) update donate links to point to donate.python.org - (ceda264) - Jacob Coffee

  • (templates) strip HTML tags from blog summaries on home page - (e69d372) - Jacob Coffee

  • (templates) correct footer links - (e376b43) - Jacob Coffee

  • (tests) skip E2E tests when no server is available - (d0a2e43) - Jacob Coffee

  • (tests) add sync_to_thread=False to feature guard tests - (1089e87) - Jacob Coffee

  • (tests) prevent connection exhaustion in integration tests - (4a1fb4a) - Jacob Coffee

  • (timeline) reorder terminus layout and fix logo SVG - (6467722) - Jacob Coffee

  • (timeline) improve river rendering and add external links - (b6ed387) - Jacob Coffee

  • (ty) ignore invalid-key and possibly-missing-attribute rules - (6c5afc9) - Jacob Coffee

  • (ty) ignore invalid-type-arguments for Litestar Request generics - (8e409eb) - Jacob Coffee

  • (ui) remove duplicate navbar in admin area and fix user access - (4dda986) - Jacob Coffee

  • (ui) use Lucide icons consistently and improve admin layout - (f09a2f6) - Jacob Coffee

  • (ui) remove search button from navbar until sitewide search implemented - (aae1b6a) - Jacob Coffee

  • (worker) align startup banner box drawing - (8d7b953) - Jacob Coffee

  • (worker) resolve MissingGreenlet in cache warming tasks - (7dc9c71) - Jacob Coffee

  • (worker) correct EventLocation field references in search indexing - (a0a0a3a) - Jacob Coffee

  • move datetime/UUID imports outside TYPE_CHECKING for Pydantic - (4195f9d) - Jacob Coffee

  • use direct return pattern for dependency providers - (8906460) - Jacob Coffee

  • remove downloads from gitignore - (7ae18ba) - Jacob Coffee

  • resolve HTMX/Alpine errors and fix test infrastructure - (a03e774) - Jacob Coffee

  • resolve CI check failures across multiple workflows - (6aca255) - Jacob Coffee

  • resolve additional CI failures - (7fe7f1e) - Jacob Coffee

  • resolve type checker warnings - (dea42e2) - Jacob Coffee

  • resolve remaining CI failures - (93c1bbe) - Jacob Coffee

  • resolve ruff lint and intersphinx warnings - (e0c12ab) - Jacob Coffee

  • add missing lib module and migration - (9400374) - Jacob Coffee

  • update gitignore to not ignore src/**/lib - (54e558e) - Jacob Coffee

  • resolve remaining ruff lint errors in lib/tasks.py and migration - (7dd48c8) - Jacob Coffee

  • address CodeQL review comments - (2fb10a5) - Jacob Coffee

  • resolve lint errors and format code - (90a847c) - Jacob Coffee

  • resolve CI failures in docs and Trivy security scan - (f6d2a08) - Jacob Coffee

  • Railway deployment issues - CSS, seeding, and template scanning - (90da89a) - Jacob Coffee

  • re-enable –force to reseed Railway database - (b9e665f) - Jacob Coffee

  • increase healthcheck timeout to 5 minutes - (ac70ca0) - Jacob Coffee

  • remove seeding from startup to debug healthcheck failure - (185f226) - Jacob Coffee

  • run seeding in background after Granian starts - (17fd8db) - Jacob Coffee

  • remove –force from background seed, capture errors - (f5967c1) - Jacob Coffee

  • add sa_orm_sentinel column migration for download_statistics - (b5e933e) - Jacob Coffee

Documentation

  • (api) add request/response examples to auth schemas - (6067877) - Jacob Coffee

  • (api) add request/response examples to domain schemas - (f438201) - Jacob Coffee

  • (api) add comprehensive docstrings to controller endpoints - (8a91cd9) - Jacob Coffee

  • (api) add SDK autodoc structure with autosummary - (afcc9a5) - Jacob Coffee

  • (architecture) add API tags documentation - (83573aa) - Jacob Coffee

  • (architecture) add rate limiting architecture documentation - (52ac364) - Jacob Coffee

  • (architecture) add comprehensive domain model reference - (b6a1766) - Jacob Coffee

  • (architecture) remove manual table of contents sections - (cb62689) - Jacob Coffee

  • (cookbook) add practical recipes and patterns - (130a630) - Jacob Coffee

  • (db) update README with Litestar CLI migration commands - (5747732) - Jacob Coffee

  • (getting-started) add installation and quickstart guides - (8f751e9) - Jacob Coffee

  • (guides) add comprehensive development guides - (63ca944) - Jacob Coffee

  • (guides) rename contributing page title to Contribution Guide - (e653681) - Jacob Coffee

  • (index) update landing page with grid cards and navigation - (8148f74) - Jacob Coffee

  • (makefile) add litestar-vite CLI commands for frontend assets - (f4698bf) - Jacob Coffee

  • (openapi) enhance API spec with metadata and improved tag descriptions - (b7c29a4) - Jacob Coffee

  • (plan) update Phase 7 Admin status and add testing improvements - (cb39cd9) - Jacob Coffee

  • (plan) mark Phase 8 Testing as complete - (55ec6bf) - Jacob Coffee

  • (plan) update Phase 10 status with completed admin sub-pages - (5e5727b) - Jacob Coffee

  • (plan) update Phase 10 status and add tiered priority list - (1bbda01) - Jacob Coffee

  • (plan) mark Phase 10 Admin Panel complete - (37c694d) - Jacob Coffee

  • (plan) mark Docker and CI/CD tasks complete - (a0f4aa7) - Jacob Coffee

  • (plan) update auth and testing sections - (58ad8fc) - Jacob Coffee

  • (plan) update project plan with completed tasks - (b3484ef) - Jacob Coffee

  • (plan) document admin task UI enhancements - (4d53620) - Jacob Coffee

  • (plan) complete API route audit, add internal API research - (2e8df23) - Jacob Coffee

  • (plan) update completion status and add known bugs - (f874078) - Jacob Coffee

  • (plan) add email UI improvements to completion list - (7beddbe) - Jacob Coffee

  • (plan) mark jobs progress tracking as fixed, add cron dashboard plan - (40ff15d) - Jacob Coffee

  • (plan) mark API documentation as complete, add enhancement entries - (399a7b2) - Jacob Coffee

  • (plan) mark OAuth testing as complete - (ee173d7) - Jacob Coffee

  • (plan) mark page caching as complete - (9d921d1) - Jacob Coffee

  • (plan) add cache management admin UI to completed enhancements - (e2faa74) - Jacob Coffee

  • (plan) update cache management UI as complete with full features - (e9cc859) - Jacob Coffee

  • (plan) remove GraphQL API from roadmap - (de7316f) - Jacob Coffee

  • (plan) mark download statistics feature as complete - (a55a98a) - Jacob Coffee

  • (plan) add Litestar CLI commands and litestar-vite integration - (35fc497) - Jacob Coffee

  • (plan) move PLAN.md to root, mark HTMX audit complete - (ac8446d) - Jacob Coffee

  • (plan) mark SAQ worker MissingGreenlet issues as fixed - (7ec7e78) - Jacob Coffee

  • (plan) update banner feature as complete with full details - (9ff3e0c) - Jacob Coffee

  • (plan) mark all page implementations as complete - (2171cfe) - Jacob Coffee

  • (plan) mark pagination First/Last buttons complete - (7533735) - Jacob Coffee

  • (plan) mark 3 admin UX issues complete - (1508b63) - Jacob Coffee

  • (plan) mark LOW priority issues complete - (1dee3b6) - Jacob Coffee

  • (plan) mark page caching and CDN integration complete - (331d4e8) - Jacob Coffee

  • (plan) mark GPG signature verification complete - (7180680) - Jacob Coffee

  • (plan) mark all domain feature gaps complete - (50d777a) - Jacob Coffee

  • (plan) mark template refactor as complete - (cf96232) - Jacob Coffee

  • (plan) mark OAuth2 providers testing complete - (4396711) - Jacob Coffee

  • (plan) mark Phase 9 documentation complete - (a147f6c) - Jacob Coffee

  • (plan) add sponsor admin UI gaps and litestar-workflows research - (518abe7) - Jacob Coffee

  • (sidebar) reorganize docs navigation into Learn/Reference/Project sections - (719d2c1) - Jacob Coffee

  • update PLAN.md with progress and auth reference - (7174bbd) - Jacob Coffee

  • add API usage guides and Postman collection - (b857c0c) - Jacob Coffee

  • update PLAN.md with latest changes and fixes - (e9199cf) - Jacob Coffee

  • mark Batch 3 issues as fixed in PLAN.md - (a72f7af) - Jacob Coffee

  • add email logs filters issue to PLAN.md - (681d284) - Jacob Coffee

  • add planned enhancements for jobs workflow - (0a6f662) - Jacob Coffee

  • mark Batch 4 issues as fixed in PLAN.md - (42553e6) - Jacob Coffee

  • update events/submit entry to reference toast issue - (b1a5a51) - Jacob Coffee

  • update PLAN.md with fixed issues - (d3d40fb) - Jacob Coffee

  • mark API versioning and notifications complete in PLAN.md - (44fe50c) - Jacob Coffee

  • fix sphinx warnings for code blocks and cross-references - (d8dca07) - Jacob Coffee

  • optimize build speed and clean up sidebar - (38a6471) - Jacob Coffee

  • restore orphaned pages to sidebar navigation - (865dd8f) - Jacob Coffee

  • suppress all sphinx warnings for clean builds - (3e2e456) - Jacob Coffee

  • enhance API domain documentation - (d0489c0) - Jacob Coffee

Features

  • (about) add About section domain and templates - (c8a9575) - Jacob Coffee

  • (about) add interactive Python timeline with river-flow effect - (f4ccb93) - Jacob Coffee

  • (about) add static pages for help, apps, quotes, getting started, legal - (60d4fe6) - Jacob Coffee

  • (admin) add admin domain scaffold with guards, schemas, and services - (e3bd408) - Jacob Coffee

  • (admin) add admin dashboard controller with auth redirect - (429bab8) - Jacob Coffee

  • (admin) add sqladmin-litestar-plugin for CRUD admin interface - (38bd888) - Jacob Coffee

  • (admin) add admin templates with TailwindCSS/DaisyUI - (8bf4fbc) - Jacob Coffee

  • (admin) integrate admin controllers into main application - (56cd357) - Jacob Coffee

  • (admin) add user admin service and controller - (7707c5a) - Jacob Coffee

  • (admin) add job admin service and controller - (73c27a7) - Jacob Coffee

  • (admin) register job and user admin controllers - (759ace8) - Jacob Coffee

  • (admin) add sponsor admin service and controller - (01f56d3) - Jacob Coffee

  • (admin) add sponsor admin templates - (7084fdb) - Jacob Coffee

  • (admin) add events management page with calendar support - (a6d8329) - Jacob Coffee

  • (admin) add pages CMS management with publish/unpublish - (87a82aa) - Jacob Coffee

  • (admin) add blogs/feeds management with activate/deactivate - (a9483fe) - Jacob Coffee

  • (admin) add settings and logs placeholder pages - (6a1c860) - Jacob Coffee

  • (admin) simplify admin navbar button and add navbar to SQLAdmin - (d36d077) - Jacob Coffee

  • (admin) add Lucide icons to database admin tiles - (a306a6c) - Jacob Coffee

  • (admin) organize database admin into sections with search - (3203c5e) - Jacob Coffee

  • (admin) enhance admin services with search indexing triggers - (4381e81) - Jacob Coffee

  • (admin) add email template management UI with HTMX - (5c5bcee) - Jacob Coffee

  • (admin) add email content guidance and status alerts - (9652591) - Jacob Coffee

  • (admin) add cron jobs dashboard for scheduled task monitoring - (ddd3d59) - Jacob Coffee

  • (admin) add cache management UI at /admin/settings/cache - (4c7e54a) - Jacob Coffee

  • (admin) add interactive key inspection to cache management UI - (4ed9d0c) - Jacob Coffee

  • (admin) add toast notifications and error handling to cache management - (eb0a00d) - Jacob Coffee

  • (admin) add feed priority editing to admin blogs UI - (b0a0e5a) - Jacob Coffee

  • (admin) add banner management UI - (8d7b362) - Jacob Coffee

  • (admin) add manual trigger button for cron jobs - (acdb882) - Jacob Coffee

  • (admin/blogs) add HTMX partial rendering and feature toggles - (0e49cf9) - Jacob Coffee

  • (admin/email) add HTMX partial rendering for email logs - (25e9b04) - Jacob Coffee

  • (admin/events) add calendar pagination and upcoming filter - (239b040) - Jacob Coffee

  • (admin/events) add date metadata to event rows - (2f59ec0) - Jacob Coffee

  • (admin/jobs) add HTMX partial rendering for job list - (b840382) - Jacob Coffee

  • (admin/jobs) add DELETE handler for job deletion - (ecab59b) - Jacob Coffee

  • (admin/pages) add delete page functionality - (c2eb861) - Jacob Coffee

  • (api) add JSON error responses for API exception handlers - (0a04fcf) - Jacob Coffee

  • (api) add API key management endpoints - (db20316) - Jacob Coffee

  • (api) add API version negotiation middleware - (8f86b40) - Jacob Coffee

  • (api) add admin-only API documentation at /api/admin/docs/ - (2aa7a96) - Jacob Coffee

  • (app) add JWT middleware, nominations, and OpenAPI config - (8a33a99) - Jacob Coffee

  • (auth) add login and registration templates with htmx - (1eea194) - Jacob Coffee

  • (auth) add token refresh and password change endpoints - (8f34b4f) - Jacob Coffee

  • (auth) add missing profile management endpoints - (db3a97a) - Jacob Coffee

  • (auth) add API key authentication to middleware - (262857b) - Jacob Coffee

  • (auth) add API key guards for route protection - (cf7a72a) - Jacob Coffee

  • (banners) add targeting fields to banner model - (4c5230c) - Jacob Coffee

  • (banners) add repository methods for targeted banner queries - (c25e329) - Jacob Coffee

  • (banners) add middleware for frontend and API banners - (02531f7) - Jacob Coffee

  • (banners) add API endpoint and integration tests - (0757cec) - Jacob Coffee

  • (blogs) add is_featured field to blog entries - (6e26fa5) - Jacob Coffee

  • (blogs) add feed filtering and featured posts section - (04a6011) - Jacob Coffee

  • (blogs) add feed priority for official Python blogs first - (f295162) - Jacob Coffee

  • (cache) add core cache module for page caching - (7ff610d) - Jacob Coffee

  • (cache) integrate response caching into Litestar app - (e72c7b1) - Jacob Coffee

  • (cache) add automatic cache invalidation on page changes - (f0a8197) - Jacob Coffee

  • (cache) add HTTP cache-control middleware - (eced8fb) - Jacob Coffee

  • (cache) wire up cache middleware in application - (4d6e007) - Jacob Coffee

  • (cache) add Cache-Control header for 404 responses - (8c5ab42) - Jacob Coffee

  • (ci) add comprehensive CI workflow - (486adb3) - Jacob Coffee

  • (ci) add PR title validation workflow - (f97826c) - Jacob Coffee

  • (ci) add changelog generation workflow - (01756a7) - Jacob Coffee

  • (ci) add release workflow with Docker publishing - (8cb74e2) - Jacob Coffee

  • (cli) add Litestar database CLI commands to Makefile - (538e9d7) - Jacob Coffee

  • (cli) add Litestar CLI integration with Makefile targets - (0ac2cf6) - Jacob Coffee

  • (cli) enable advanced-alchemy CLI extra and convert seed to markdown - (bb9e07e) - Jacob Coffee

  • (community) redesign community page with comprehensive sections - (26b3470) - Jacob Coffee

  • (community) add workshops, IRC, forums, and mailing lists pages - (719e285) - Jacob Coffee

  • (community) overhaul posts page UX - (b6c12e7) - Jacob Coffee

  • (config) add Meilisearch configuration for search - (4ff9e6e) - Jacob Coffee

  • (config) split env files for dev and prod environments - (2cf8e59) - Jacob Coffee

  • (core) add site-wide exception handlers with HTMX toast support - (6aa94ed) - Jacob Coffee

  • (db) add migration for Feed.is_official column - (30b839a) - Jacob Coffee

  • (deps) add admin UI dependencies - (0d497a7) - Jacob Coffee

  • (deps) add litestar-vite for frontend asset management - (7f12b09) - Jacob Coffee

  • (docker) add multi-stage Docker build configuration - (ac3522b) - Jacob Coffee

  • (docker) add docker-compose for dev and production - (128b126) - Jacob Coffee

  • (docs) add Python.org themed Scalar CSS - (1b6d777) - Jacob Coffee

  • (docs) add custom OpenAPI UI plugins - (48b322b) - Jacob Coffee

  • (docs) integrate Scalar + Swagger OpenAPI plugins - (38f61f0) - Jacob Coffee

  • (docs) add custom Python.org CSS theme to Scalar - (388cd89) - Jacob Coffee

  • (docs) add Documentation section domain and templates - (f0d5dda) - Jacob Coffee

  • (downloads) add downloads domain module - (0d36e49) - Jacob Coffee

  • (downloads) add download statistics tracking and admin analytics (#4) - (50668a6) - Jacob Coffee

  • (downloads) add download statistics tracking and admin analytics - (009f0f7) - Jacob Coffee

  • (downloads) add import script and remove faulty constraint - (8cef0aa) - Jacob Coffee

  • (downloads) enhance release notes and fix UI issues - (715e669) - Jacob Coffee

  • (downloads) add markdown rendering for release notes - (0e26174) - Jacob Coffee

  • (downloads) add alternative implementations and other resources pages - (783f8a4) - Jacob Coffee

  • (downloads) add SHA256 checksum field to ReleaseFile - (b801721) - Jacob Coffee

  • (downloads) add SHA256 checksum to API schemas - (7db1997) - Jacob Coffee

  • (downloads) add Jinja2 macros for signature verification UI - (a6fe884) - Jacob Coffee

  • (downloads) show signatures and checksums on release page - (41cb33c) - Jacob Coffee

  • (events) add RFC 5545 compliant iCalendar export - (7c30dd3) - Jacob Coffee

  • (events) add HTMX partials and calendar list view - (2a766e9) - Jacob Coffee

  • (events) add toast notification on event submission - (468810b) - Jacob Coffee

  • (events) add recurrence rule engine - (1da777a) - Jacob Coffee

  • (events) add RSS/Atom calendar feeds - (7298c66) - Jacob Coffee

  • (jobs) add filtering, preview endpoint and HTMX partials - (79a975a) - Jacob Coffee

  • (jobs) add draft→review workflow for job submissions - (e8c6309) - Jacob Coffee

  • (jobs) add featured jobs functionality - (a84ffb1) - Jacob Coffee

  • (jobs) add email notification tasks - (3f29f49) - Jacob Coffee

  • (logging) use Rich console renderer for dev mode - (dbbdf32) - Jacob Coffee

  • (mailing) add domain init with exports - (e163752) - Jacob Coffee

  • (mailing) add email template and log management domain - (50e4667) - Jacob Coffee

  • (main) register site-wide exception handlers - (95ffcea) - Jacob Coffee

  • (main) register sponsor admin controller - (062793e) - Jacob Coffee

  • (make) add Docker targets to Makefile - (3984556) - Jacob Coffee

  • (make) reorganize test targets for better DX - (7aec5a6) - Jacob Coffee

  • (make) add meilisearch to infra-up and dev target improvements - (c5a29e0) - Jacob Coffee

  • (make) add worktree aliases and maildev to infra-up - (ac1a1e9) - Jacob Coffee

  • (nav) update community links to internal routes - (88b2694) - Jacob Coffee

  • (nominations) add HTMX nomination endpoint - (8dcf277) - Jacob Coffee

  • (notifications) wire job and event email notifications - (f2357c8) - Jacob Coffee

  • (oauth) add Discord as OAuth provider - (e1634a9) - Jacob Coffee

  • (pagination) add First/Last buttons to data table macro - (7b318fa) - Jacob Coffee

  • (pagination) add First/Last buttons to public templates - (fc8db99) - Jacob Coffee

  • (pagination) add First/Last buttons to admin templates - (a9a32f1) - Jacob Coffee

  • (psf) implement /psf/diversity page (#7) - (c69d880) - Jacob Coffee

  • (psf) add membership, about, conduct, and get-involved pages - (8c7302f) - Jacob Coffee

  • (ratelimit) add Redis-backed API rate limiting with tiered limits - (ad03c39) - Jacob Coffee

  • (search) add site-wide search domain and templates - (0268366) - Jacob Coffee

  • (security) enable CSRF protection in Litestar app - (7329fac) - Jacob Coffee

  • (services) add search index triggers to domain services - (5be8a72) - Jacob Coffee

  • (sponsors) add sponsorship application endpoint - (b894419) - Jacob Coffee

  • (sponsors) add contract management and renewal workflow - (c10a6a5) - Jacob Coffee

  • (sqladmin) add SSO authentication with Litestar sessions - (7a4296a) - Jacob Coffee

  • (sqladmin) add DaisyUI custom templates - (cb159f6) - Jacob Coffee

  • (sqladmin) configure custom templates directory - (788b41f) - Jacob Coffee

  • (sqladmin) add 17 missing model admin views - (05d3626) - Jacob Coffee

  • (sqladmin) add categories and sections for all model admin views - (9dd2bfb) - Jacob Coffee

  • (static) add Python favicon and logo images - (4536087) - Jacob Coffee

  • (successstories) enhance detail page with related stories - (5de5720) - Jacob Coffee

  • (sync) add background tasks and scripts for importing external content - (80ed41f) - Jacob Coffee

  • (tailwind) safelist dynamic category colors for success stories - (0bccbbf) - Jacob Coffee

  • (tasks) implement SAQ background task queue with litestar-saq - (a7273ce) - Jacob Coffee

  • (tasks) add job sorting and scheduled status detection - (9d705fa) - Jacob Coffee

  • (tasks) add sorting params and test failure endpoint - (eba2b86) - Jacob Coffee

  • (tasks) add test_failing_task for debugging tracebacks - (d4c535a) - Jacob Coffee

  • (tasks) add event reminder and cleanup background tasks - (7f7504c) - Jacob Coffee

  • (tasks) add persistent job statistics tracking - (c07e533) - Jacob Coffee

  • (templates) add render templates for various sections - (ee6e56b) - Jacob Coffee

  • (templates) add toast notification JS for HTMX error handling - (f32b9b9) - Jacob Coffee

  • (templates) add Jinja filters for time, JSON, and traceback formatting - (f019c29) - Jacob Coffee

  • (templates) add multi-directory template support - (b96a2b9) - Jacob Coffee

  • (tests) complete Task 8.2b route/controller integration tests - (655c553) - Jacob Coffee

  • (timeline) enhance interactivity and add community events - (95802c6) - Jacob Coffee

  • (timeline) add flowing curved SVG river with animations - (2d7a954) - Jacob Coffee

  • (timeline) add 2026 Steering Council election - (e66c444) - Jacob Coffee

  • (ui) add admin dropdown to navbar for staff users - (6e38b2d) - Jacob Coffee

  • (ui) add Admin FAB for staff/superusers on non-admin pages - (6f86cd3) - Jacob Coffee

  • (ui) add sortable columns and scheduled tab to jobs table - (fe514da) - Jacob Coffee

  • (ui) improve job detail page with scheduled status and traceback display - (64c4367) - Jacob Coffee

  • (ui) add Test Failure button to task dashboard - (2bdd1e8) - Jacob Coffee

  • (ui) add toast notification system to base template - (14dc98e) - Jacob Coffee

  • (ui) add developer links (Docs, API, GitHub) to navbar - (cdd6304) - Jacob Coffee

  • (users) add API key model and migration - (d5ba433) - Jacob Coffee

  • (users) add API key service, repository, and schemas - (ddfea0c) - Jacob Coffee

  • (vite) add admin bundle entry points - (8cdd7af) - Jacob Coffee

  • (vite) integrate VitePlugin for frontend development - (b2c6a3a) - Jacob Coffee

  • (workflows) add workflow module with sponsor workflows - (58fa26f) - Jacob Coffee

  • add page controllers for all domains - (5829c19) - Jacob Coffee

  • add dynamic home page with content services - (1c7b8ce) - Jacob Coffee

  • complete database layer with migrations and seeding - (3c60197) - Jacob Coffee

  • update domain models with OAuth and additional fields - (aa71544) - Jacob Coffee

  • add auth system foundation with JWT middleware - (f0b5654) - Jacob Coffee

  • add error page templates - (c036aa8) - Jacob Coffee

  • add flash messages with session middleware - (7fac14b) - Jacob Coffee

  • add render controllers for jobs, nominations, sponsors - (48456f9) - Jacob Coffee

  • register workflow plugin in application - (4e3470a) - Jacob Coffee

  • add worker Dockerfile and Railway config - (6e6c908) - Jacob Coffee

Miscellaneous Chores

  • (admin) register new controllers and services in exports - (35b3717) - Jacob Coffee

  • (deps) configure dependabot with grouped updates - (0603218) - Jacob Coffee

  • (deps) Bump the actions group with 9 updates (#5) - (26b1032) - dependabot[bot]

  • (deps) Bump python from 3.13-slim to 3.14-slim in the docker-images group across 1 directory (#6) - (19403f8) - dependabot[bot]

  • (gitignore) ignore Vite build artifacts - (e63249c) - Jacob Coffee

  • update config and build dependencies - (6ba9dc6) - Jacob Coffee

  • cleanup import ordering per lint rules - (1470884) - Jacob Coffee

  • fix TC002/TC003 import organization issues - (8cc615e) - Jacob Coffee

  • update .gitignore for Claude Flow files - (e1a42da) - Jacob Coffee

  • add dev tooling and test documentation - (5279392) - Jacob Coffee

  • fix trailing newline and update vite manifest - (b68fe00) - Jacob Coffee

  • consolidate PLAN.md to top level - (07fb233) - Jacob Coffee

  • update uv.lock for advanced-alchemy[cli] extra - (14e1893) - Jacob Coffee

  • move internal docs to docs/internal - (ad80d16) - Jacob Coffee

  • register PSFPageController in app routes - (c16df92) - Jacob Coffee

  • integrate prek pre-commit hooks and apply auto-formatting - (852e4d0) - Jacob Coffee

  • remove –force from seed command - (01b34cd) - Jacob Coffee

Performance

  • (ci) run integration/E2E tests on PRs only - (eb6a746) - Jacob Coffee

  • (ci) optimize Sphinx builds and fix test fixtures - (2acfceb) - Jacob Coffee

  • (docs) skip linkcheck for auto-generated changelog commit URLs - (b6394ff) - Jacob Coffee

Refactoring

  • (banners) move templates to domain folder - (7554e7f) - Jacob Coffee

  • (blogs) move templates to domain folder - (56ec0d9) - Jacob Coffee

  • (codesamples) move templates to domain folder - (e7ce920) - Jacob Coffee

  • (community) move templates to domain folder - (6fc4fb6) - Jacob Coffee

  • (config) improve startup banner and validation warnings - (1616983) - Jacob Coffee

  • (csrf) remove unused csrf_token_injector function - (7389c7e) - Jacob Coffee

  • (db) add lazy initialization for database sessions - (f24865d) - Jacob Coffee

  • (downloads) move templates to domain folder - (c9f526d) - Jacob Coffee

  • (events) move templates to domain folder - (3f0665e) - Jacob Coffee

  • (jobs) move templates to domain folder - (a91e91b) - Jacob Coffee

  • (minutes) move templates to domain folder - (d8c0b62) - Jacob Coffee

  • (nominations) move templates to domain folder - (c01e302) - Jacob Coffee

  • (sponsors) move templates to domain folder - (93f0e16) - Jacob Coffee

  • (successstories) move templates to domain folder - (9420b6e) - Jacob Coffee

  • (tests) remove unused imports from OAuth tests - (9ea531a) - Jacob Coffee

  • (tests) cleanup conftest imports in cache tests - (6a64b6c) - Jacob Coffee

  • (ui) update queue card and remove unused job_row partial - (a5705d8) - Jacob Coffee

  • (work_groups) move templates to domain folder - (f1a5488) - Jacob Coffee

Security

  • (github) add GitHub Actions workflows and labeler config - (54cbaf2) - Jacob Coffee

Style

  • (admin) improve Jinja2 syntax reference with badges - (695d751) - Jacob Coffee

  • (css) add htmx loading states and improve transitions - (f5c15bf) - Jacob Coffee

  • (scripts) reorder imports in import_downloads.py - (3d16c91) - Jacob Coffee

  • (tasks) minor formatting in sync.py - (1232d9d) - Jacob Coffee

  • (templates) normalize page header sizes sitewide - (cd04dbb) - Jacob Coffee

  • (timeline) match external link styling to PEP links - (d879d0c) - Jacob Coffee

  • apply ruff formatting and simplify test fixtures - (87cd228) - Jacob Coffee

  • apply ruff formatting fixes - (9b00795) - Jacob Coffee

  • format seed.py - (9674ff8) - Jacob Coffee

  • format ruff lint config in pyproject.toml - (bd78be9) - Jacob Coffee

  • apply ruff formatting - (15591d8) - Jacob Coffee

Tests

  • (admin) add unit tests for admin guards and config - (2c21395) - Jacob Coffee

  • (admin) add SponsorAdminService unit tests - (ef22988) - Jacob Coffee

  • (auth) add JWT and CSRF test coverage - (f2311d9) - Jacob Coffee

  • (cache) add comprehensive tests for page caching - (4d0f952) - Jacob Coffee

  • (e2e) add Playwright E2E tests for auth forms - (17670ef) - Jacob Coffee

  • (integration) add auth flow integration tests - (dd175c0) - Jacob Coffee

  • (logging) add comprehensive tests for structlog configuration - (bbb15ba) - Jacob Coffee

  • (oauth) add comprehensive OAuth2 unit and integration tests - (58fdf73) - Jacob Coffee

  • (oauth) add tests for POST endpoint and account restrictions - (5bf1fa7) - Jacob Coffee

  • (tasks) add integration tests for task admin and update worker tests - (567ad0a) - Jacob Coffee

  • (unit) add comprehensive domain unit tests - (c098175) - Jacob Coffee

  • (users) add API key unit tests - (42335db) - Jacob Coffee

  • update test suite for auth and model changes - (c6281e0) - Jacob Coffee

  • add pytest-databases for PostgreSQL integration testing - (9cc3d3c) - Jacob Coffee

  • refactor auth tests to use API-based fixtures - (eb9bc0a) - Jacob Coffee

  • update integration tests for API improvements - (ab460dc) - Jacob Coffee

Build

  • (make) add test-unit, test-integration, test-e2e, test-full targets - (fcf2cc0) - Jacob Coffee

  • add litestar-workflows dependency - (73b1c9b) - Jacob Coffee

Debug

  • (railway) single worker with debug logging - (5b29011) - Jacob Coffee

litestar-pydotorg Changelog