summaryrefslogtreecommitdiff
path: root/internal
AgeCommit message (Expand)Author
2026-05-03refactor(api): extract Remuxer interface and move ffmpeg/MPEG-TS/mime logic t...Paul Buetow
2026-05-03test: raise coverage above 60% in cmd/mediaplayer, model, and probePaul Buetow
2026-05-03fix(admin): fix rescan goroutine lifecycle and race on shared ScanProgressPaul Buetow
2026-05-03Fix media info and detached playback statePaul Buetow
2026-05-03feat: hybrid cache-busting for thumbnails and coversPaul Buetow
2026-05-02fix detached playback and scan progressPaul Buetow
2026-05-02feat: secure shares with keyboard-first My Shares modal (hotkeys S/L)Paul Buetow
2026-05-02more on thisPaul Buetow
2026-05-02fix:xPaul Buetow
2026-05-01api: remux MPEG-TS files to MP4 on the flyPaul Buetow
2026-05-01fix(gc): pass cancellable context to GCWorker.run() to avoid goroutine leak (#5)Paul Buetow
2026-05-01task 4: DRY permission checking by extracting checkSetPermission helperPaul Buetow
2026-05-01Task 1: Create AuthService and route handleBootstrap/handleLogin through itPaul Buetow
2026-05-01refactor(api): split monolithic handlers.go into domain-specific files (task 3)Paul Buetow
2026-05-01service: split media.go (745 lines) into 5 focused filesPaul Buetow
2026-05-01Split MediaService interface into role-specific interfaces to fix ISP/OCP vio...Paul Buetow
2026-05-01Add player stage collapse, multi-set selection, grid nav, m4b support, conten...Paul Buetow
2026-05-01add readme and so onPaul Buetow
2026-05-01Add support for audiobook/cover images with ancestor lookup and fix keyboard ...Paul Buetow
2026-05-01Make rescan asynchronous in background goroutinePaul Buetow
2026-05-01Add cover image detection for audio files in scannerPaul Buetow
2026-05-01Rename Go module from codeberg.org/snonux/play to codeberg.org/snonux/playerPaul Buetow
2026-05-01Minimalist UI: hide all elements until activated; add help modal and keyboard...Paul Buetow
2026-04-30fix: permissions matrix UI now returns proper shape from backendPaul Buetow
2026-04-30pa: raise aggregate test coverage to 81.5%Paul Buetow
2026-04-30Wire playback resume end to end (task ka)Paul Buetow
2026-04-30task oa: Add SECURE_COOKIES config to control session cookie Secure flagPaul Buetow
2026-04-30task ia: fix media listing/filtering semantics (favorites bool, filesize filt...Paul Buetow
2026-04-30task ha: enforce upload limits, role checks, probing, thumbnails, cleanupPaul Buetow
2026-04-30ga — implement thumbnail and set cover regeneration end to endPaul Buetow
2026-04-30ja: implement public share landing page and improve error mappingPaul Buetow
2026-04-30task ea: wire filesystem scanner into app and admin rescan endpointPaul Buetow
2026-04-30task da: enforce media access and owner/admin role permissionsPaul Buetow
2026-04-30Rename module to codeberg.org/snonux/play (task aa)Paul Buetow
2026-04-30fix(ca): translate sql.ErrNoRows to nil,nil for optional lookupsPaul Buetow
2026-04-30fix: allow static assets during bootstrap when no users existPaul Buetow
2026-04-30refactor: use filepath.Join + filepath.Clean for filesystem pathsPaul Buetow
2026-04-30refactor: extract query param parsing from handleListMediaPaul Buetow
2026-04-30refactor: extract nil service check into helperPaul Buetow
2026-04-30refactor: split repository.Store into focused interfacesPaul Buetow
2026-04-30fix: exclude soft-deleted media from GetMediaByIDPaul Buetow
2026-04-30fix: seed random source in thumbnail generatorPaul Buetow
2026-04-30fix: add explicit permission checks to StreamMedia and DownloadMediaPaul Buetow
2026-04-29fix: correct LIKE escape in ListMediaPaul Buetow
2026-04-29fix: prevent GCWorker.Stop panic on nil ticker or double stopPaul Buetow
2026-04-29fix: prevent path traversal in UploadMediaPaul Buetow
2026-04-29feat: implement filesystem scannerPaul Buetow
2026-04-29feat(n9): Implement MediaService, AdminService, ProgressService, GCWorkerPaul Buetow
2026-04-29feat(q9): implement REST handlers, streaming, uploads, shares, notes, progres...Paul Buetow
2026-04-29q9: add table-driven httptest coverage for REST handlersPaul Buetow