| Age | Commit message (Expand) | Author |
| 2026-05-17 | Restructure repo: move Go server into player-server/ | Paul Buetow |
| 2026-05-17 | Fix in-progress media threshold | Paul Buetow |
| 2026-05-17 | Add progress service completion methods | Paul Buetow |
| 2026-05-17 | Add playback repository cleanup queries | Paul Buetow |
| 2026-05-17 | Add finished flag to playback progress | Paul Buetow |
| 2026-05-16 | Configure SQLite for NFS-backed deployments | Paul Buetow |
| 2026-05-16 | Migrate stale sets schema for podcasts | Paul Buetow |
| 2026-05-10 | internal/service: fix ListEpisodes global pagination by using cross-feed SQL ... | Paul Buetow |
| 2026-05-10 | Add circuit breaker / backoff for failing podcast feeds in CheckFeeds | Paul Buetow |
| 2026-05-10 | internal/repository: use placeholders for LIMIT and OFFSET in ListMedia | Paul Buetow |
| 2026-05-10 | Decouple podcast browse logic from BrowseSet via PodcastBrowser interface | Paul Buetow |
| 2026-05-09 | style: gofmt and goimports formatting fixes | Paul Buetow |
| 2026-05-09 | t1: remove repository migration shim | Paul Buetow |
| 2026-05-09 | Refine media browsing and set covers | Paul Buetow |
| 2026-05-06 | remove debug fmt.Printf leak from ListMedia query builder\n\nFixes: u0 | Paul Buetow |
| 2026-05-05 | Fix podcast migration backward compatibility and login logo width | Paul Buetow |
| 2026-05-05 | Fix podcast support critical bugs from code review | Paul Buetow |
| 2026-05-05 | Add podcast support backend: RSS/Atom feeds, episode management, cover scraping | Paul Buetow |
| 2026-05-04 | task 7: refactor oversized functions into helpers | Paul Buetow |
| 2026-05-04 | task c: run gofmt and fix unwrapped error literals across the codebase | Paul Buetow |
| 2026-05-03 | task 2 review fixes: narrow BrowseService and accessHelper store interfaces | Paul Buetow |
| 2026-05-03 | task 2: decompose mediaService and adminService into role-focused structs | Paul Buetow |
| 2026-05-03 | Backfill godoc for task 1 | Paul Buetow |
| 2026-05-03 | fix(admin): fix rescan goroutine lifecycle and race on shared ScanProgress | Paul Buetow |
| 2026-05-03 | feat: hybrid cache-busting for thumbnails and covers | Paul Buetow |
| 2026-05-02 | feat: secure shares with keyboard-first My Shares modal (hotkeys S/L) | Paul Buetow |
| 2026-05-01 | Task 1: Create AuthService and route handleBootstrap/handleLogin through it | Paul Buetow |
| 2026-05-01 | add readme and so on | Paul Buetow |
| 2026-05-01 | Add support for audiobook/cover images with ancestor lookup and fix keyboard ... | Paul Buetow |
| 2026-05-01 | Rename Go module from codeberg.org/snonux/play to codeberg.org/snonux/player | Paul Buetow |
| 2026-04-30 | pa: raise aggregate test coverage to 81.5% | Paul Buetow |
| 2026-04-30 | task ia: fix media listing/filtering semantics (favorites bool, filesize filt... | Paul Buetow |
| 2026-04-30 | task da: enforce media access and owner/admin role permissions | Paul Buetow |
| 2026-04-30 | Rename module to codeberg.org/snonux/play (task aa) | Paul Buetow |
| 2026-04-30 | fix(ca): translate sql.ErrNoRows to nil,nil for optional lookups | Paul Buetow |
| 2026-04-30 | refactor: split repository.Store into focused interfaces | Paul Buetow |
| 2026-04-30 | fix: exclude soft-deleted media from GetMediaByID | Paul Buetow |
| 2026-04-29 | fix: correct LIKE escape in ListMedia | Paul Buetow |
| 2026-04-29 | feat(n9): Implement MediaService, AdminService, ProgressService, GCWorker | Paul Buetow |
| 2026-04-29 | feat: implement bcrypt password hashing, session management, login/logout han... | Paul Buetow |
| 2026-04-29 | feat: SQLite schema migrations, repository interfaces, and concrete SQLite im... | Paul Buetow |
| 2026-04-28 | h9: scaffold go project structure | Paul Buetow |