Self-hosted content archival and monitoring
Find a file
jlightner c057b6a286 feat(S01+S04): server-side pagination, search/filter, download engine hardening
S01 — Server-Side Pagination:
- Added getChannelContentPaginated() to content repository with search, filter, sort
- Channel content API now supports ?page, ?pageSize, ?search, ?status, ?contentType, ?sortBy, ?sortDirection
- Backwards-compatible: no params returns all items (legacy mode)
- Frontend useChannelContentPaginated hook with keepPreviousData
- ChannelDetail page: search bar, status/type filter dropdowns, pagination controls
- Sorting delegated to server (removed client-side sortedContent)
- Item count shown in Content header (e.g. '121 items')

S04 — Download Engine Hardening:
- yt-dlp auto-update on production startup (native -U with pip fallback)
- Error classification: rate_limit, format_unavailable, geo_blocked, age_restricted, private, network
- Format fallback chains: preferred res → best under res → single best → any
- Improved parseFinalPath: explicit non-path prefix detection, extension validation
- Error category included in download:failed events
- classifyYtDlpError() exported from yt-dlp module for downstream use
2026-04-03 02:29:49 +00:00
.agents/skills feat: Tubearr — full project state through M006/S01 2026-03-24 20:20:10 -05:00
.bg-shell feat: Tubearr — full project state through M006/S01 2026-03-24 20:20:10 -05:00
.claude WIP: in-progress WebSocket download progress & event bus 2026-03-25 11:34:26 -05:00
drizzle chore(M007/S01): auto-commit after research-slice 2026-03-24 23:04:09 -05:00
scripts feat: Tubearr — full project state through M006/S01 2026-03-24 20:20:10 -05:00
src feat(S01+S04): server-side pagination, search/filter, download engine hardening 2026-04-03 02:29:49 +00:00
.dockerignore feat: Tubearr — full project state through M006/S01 2026-03-24 20:20:10 -05:00
.env.example feat: Tubearr — full project state through M006/S01 2026-03-24 20:20:10 -05:00
.gitignore chore: gitignore config/ and remove tracked db files 2026-03-24 20:20:51 -05:00
docker-compose.yml feat(S01+S04): server-side pagination, search/filter, download engine hardening 2026-04-03 02:29:49 +00:00
Dockerfile feat: Tubearr — full project state through M006/S01 2026-03-24 20:20:10 -05:00
drizzle.config.ts feat: Tubearr — full project state through M006/S01 2026-03-24 20:20:10 -05:00
package-lock.json WIP: in-progress WebSocket download progress & event bus 2026-03-25 11:34:26 -05:00
package.json WIP: in-progress WebSocket download progress & event bus 2026-03-25 11:34:26 -05:00
skills-lock.json feat: Tubearr — full project state through M006/S01 2026-03-24 20:20:10 -05:00
tsconfig.json feat: Tubearr — full project state through M006/S01 2026-03-24 20:20:10 -05:00
vitest.config.ts feat: Tubearr — full project state through M006/S01 2026-03-24 20:20:10 -05:00