| Age | Commit message (Expand) | Author |
| 2026-05-04 | task e: add unit test verifying GetNote access check rejects non-owner | Paul Buetow |
| 2026-05-04 | task 7: refactor oversized functions into helpers | Paul Buetow |
| 2026-05-04 | task 9: Centralize file extension and media type mappings in internal/mediatype | Paul Buetow |
| 2026-05-04 | task c: run gofmt and fix unwrapped error literals across the codebase | Paul Buetow |
| 2026-05-04 | task 3: decouple API layer from repository with MediaQueryFilter and AuthServ... | Paul Buetow |
| 2026-05-04 | task b: inject app context into AdminService and propagate cancellation to ba... | Paul Buetow |
| 2026-05-04 | task 6: narrow service interfaces in Server and Middleware | Paul Buetow |
| 2026-05-03 | task 2: add unit tests for decomposed sub-services | 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 | Task 8: standardize scanner and handler logging | Paul Buetow |
| 2026-05-03 | Fix GC hard-delete ordering for task d | Paul Buetow |
| 2026-05-03 | Fix GC worker test synchronization for task a | Paul Buetow |
| 2026-05-03 | Backfill godoc for task 1 | Paul Buetow |
| 2026-05-03 | Use Go 1.25 for Docker builds | Paul Buetow |
| 2026-05-03 | refactor(api): extract Remuxer interface and move ffmpeg/MPEG-TS/mime logic t... | Paul Buetow |
| 2026-05-03 | test: raise coverage above 60% in cmd/mediaplayer, model, and probe | Paul Buetow |
| 2026-05-03 | fix(admin): fix rescan goroutine lifecycle and race on shared ScanProgress | Paul Buetow |
| 2026-05-03 | Fix media info and detached playback state | Paul Buetow |
| 2026-05-03 | Fix: Sidebar visibility on page load | Paul Buetow |
| 2026-05-03 | feat: hybrid cache-busting for thumbnails and covers | Paul Buetow |
| 2026-05-02 | refine playback navigation and player modes | Paul Buetow |
| 2026-05-02 | add playback navigation shortcuts | Paul Buetow |
| 2026-05-02 | add player minimize toggle | Paul Buetow |
| 2026-05-02 | show audiobook covers as cards | Paul Buetow |
| 2026-05-02 | show buffered media progress | Paul Buetow |
| 2026-05-02 | fix detached playback and scan progress | Paul Buetow |
| 2026-05-02 | feat: secure shares with keyboard-first My Shares modal (hotkeys S/L) | Paul Buetow |
| 2026-05-02 | more on this | Paul Buetow |
| 2026-05-02 | switch sidebar hotkey to s, always rebuild/rescan in start.sh, bump sw.js cache | Paul Buetow |
| 2026-05-02 | fix:x | Paul Buetow |
| 2026-05-01 | api: remux MPEG-TS files to MP4 on the fly | Paul Buetow |
| 2026-05-01 | fix(gc): pass cancellable context to GCWorker.run() to avoid goroutine leak (#5) | Paul Buetow |
| 2026-05-01 | task 4: DRY permission checking by extracting checkSetPermission helper | Paul Buetow |
| 2026-05-01 | Task 1: Create AuthService and route handleBootstrap/handleLogin through it | Paul Buetow |
| 2026-05-01 | refactor(api): split monolithic handlers.go into domain-specific files (task 3) | Paul Buetow |
| 2026-05-01 | service: split media.go (745 lines) into 5 focused files | Paul Buetow |
| 2026-05-01 | Split MediaService interface into role-specific interfaces to fix ISP/OCP vio... | Paul Buetow |
| 2026-05-01 | Add player stage collapse, multi-set selection, grid nav, m4b support, conten... | Paul Buetow |
| 2026-05-01 | add readme and so on | Paul Buetow |
| 2026-05-01 | Improve start.sh with auto-bootstrap, rescan, and URL printing | Paul Buetow |
| 2026-05-01 | Add support for audiobook/cover images with ancestor lookup and fix keyboard ... | Paul Buetow |
| 2026-05-01 | Make rescan asynchronous in background goroutine | Paul Buetow |
| 2026-05-01 | Add cover image detection for audio files in scanner | Paul Buetow |
| 2026-05-01 | Rename Go module from codeberg.org/snonux/play to codeberg.org/snonux/player | Paul Buetow |
| 2026-05-01 | Minimalist UI: hide all elements until activated; add help modal and keyboard... | Paul Buetow |
| 2026-04-30 | fix: permissions matrix UI now returns proper shape from backend | Paul Buetow |
| 2026-04-30 | mobile: responsive layout, touch-friendly progress bar, collapsible filters | Paul Buetow |
| 2026-04-30 | pa: raise aggregate test coverage to 81.5% | Paul Buetow |
| 2026-04-30 | task la: finish admin SPA workflows (permissions matrix UI, trash restore, se... | Paul Buetow |