97e60dbfc5
add buildPipelineCommand: single FFmpeg command for sub extraction, audio cleanup, transcode
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-27 01:46:26 +01:00
ecb0732185
store confidence, apple_compat, job_type, transcode_codec during scan
2026-03-27 01:45:56 +01:00
b1cf0fca38
unify analyzer: 3-step pipeline with apple compat, transcode decisions, extended is_noop
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-27 01:44:22 +01:00
c2e5b70b02
add schema migrations for unified pipeline: confidence, apple_compat, job_type, transcode_codec
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-27 01:42:18 +01:00
c017ca09d4
add apple compatibility service: codec checks, transcode target mapping
2026-03-27 01:41:21 +01:00
6507924e45
add .worktrees/ to .gitignore
2026-03-27 01:39:06 +01:00
3f14b19195
remove green tint from action boxes, simplify execute empty state
...
Build and Push Docker Image / build (push) Successful in 1m14s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 21:51:30 +01:00
6363a133dd
unify action box across all pages: consistent border/rounded style, green tint for "all good" states
...
Build and Push Docker Image / build (push) Successful in 35s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 17:16:57 +01:00
dd82318828
fix nav highlighting by using exact active matching on links
...
Build and Push Docker Image / build (push) Successful in 31s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 17:07:08 +01:00
d422b0a79b
split subtitles tab into ST Extract (browse/extract items) and ST Manager (language summary, title harmonization)
...
Build and Push Docker Image / build (push) Successful in 2m1s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 17:01:50 +01:00
38b0faf55a
add job_type column, simplify execute page: remove node/command columns, add type badge, make item title clickable
...
Build and Push Docker Image / build (push) Successful in 37s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 15:01:11 +01:00
2f10037e93
fix subtitle summary 404 by moving /summary route before /:id catch-all, bump version
...
Build and Push Docker Image / build (push) Successful in 1m8s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 13:46:00 +01:00
76d3b1acfb
remove path mappings, add subtitle summary endpoint, cache setup page, bump version
...
Build and Push Docker Image / build (push) Successful in 1m50s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 12:02:26 +01:00
99274d3ae8
add execute page filtering + colored FilterTabs component, fix ffmpeg audio-less files
...
- server-side filter + LIMIT 200 + totalCounts on GET /api/execute
- shared FilterTabs component with status-colored active tabs
- execute page: filter tabs, SSE live count updates, module-level cache
- replace inline tab pills in AudioListPage, SubtitleListPage with FilterTabs
- fix buildExtractOnlyCommand: skip -map 0:a when no audio streams exist
- bump version
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 12:01:27 +01:00
511a3c1ace
remove path mappings from settings UI, fix clear-scan blocking by deleting children first
...
Build and Push Docker Image / build (push) Successful in 1m6s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 10:52:26 +01:00
12e60c069e
cache page data across tab switches, bump version
...
Build and Push Docker Image / build (push) Successful in 1m7s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 10:38:35 +01:00
da668b2d36
add paths page to check volume accessibility after scan
...
Build and Push Docker Image / build (push) Successful in 38s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 10:31:05 +01:00
923f9afafc
add collapsible series/season/episode view to subtitle list page
...
Build and Push Docker Image / build (push) Successful in 21s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 10:22:56 +01:00
f562cb42d9
show file name in scan log, fix progress total by using Jellyfin page callback
...
Build and Push Docker Image / build (push) Successful in 33s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 10:19:45 +01:00
b117147339
throttle scan SSE updates: buffer events, flush to React every 200ms
...
Build and Push Docker Image / build (push) Successful in 25s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 10:07:43 +01:00
28ca5679c6
fix scan SSE race: connect before starting scan so no events are missed
...
Build and Push Docker Image / build (push) Successful in 34s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 10:06:40 +01:00
2b1dda3c7d
fix hooks ordering in SetupPage, move language state above conditional return
...
Build and Push Docker Image / build (push) Successful in 24s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 09:56:02 +01:00
a4d5eb59e1
add configurable audio languages, sortable language lists in settings
...
Build and Push Docker Image / build (push) Successful in 1m9s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 09:51:03 +01:00
588a3d8f1f
remove subtitle streams from container after extraction, remove job list limit, fix audio detail display
...
Build and Push Docker Image / build (push) Successful in 1m9s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 09:17:39 +01:00
a393dd280e
make app mobile-friendly: responsive nav, scrollable tables, adaptive grids
...
Build and Push Docker Image / build (push) Successful in 20s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 21:44:08 +01:00
59ab56785d
bump version to 2026.03.04.7
...
Build and Push Docker Image / build (push) Successful in 1m3s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 17:48:18 +01:00
39a924e6de
log ffmpeg command to stdout for docker/unraid log viewer
...
Build and Push Docker Image / build (push) Successful in 17s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 17:47:11 +01:00
41476a2f9b
run jobs sequentially per target, parallel across local + nodes
...
Build and Push Docker Image / build (push) Successful in 19s
"run all" now groups pending jobs by target (local or node), runs them one by
one within each group, but runs different targets in parallel. single "run"
button still fires immediately.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 17:44:42 +01:00
aaaa5ff402
rename /setup route to /settings, fix hooks violation crash on settings page
...
Build and Push Docker Image / build (push) Successful in 16s
useState was called after conditional return (React hooks rules violation),
causing the settings page to crash. moved all hooks to top level.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 17:31:34 +01:00
3682ee98e0
add structured logging with timestamps for docker/unraid log viewer
...
Build and Push Docker Image / build (push) Successful in 15s
all server output now prefixed with ISO timestamp and level [INFO/WARN/ERROR].
logs requests, scan start/complete, job lifecycle, errors. skips noisy SSE
endpoints.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 17:29:22 +01:00
818b0d1396
add version badge in nav, apply path mappings at execution time, clear done/error jobs
...
Build and Push Docker Image / build (push) Successful in 58s
- show version (from package.json) in nav bar, warn on frontend/server mismatch
- apply path_mappings to file access check and command string at execution time
so existing scans with old jellyfin paths work without re-scanning
- add clear done/errors button on execute page
- bump version to 2026.03.04
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 17:22:14 +01:00
37fae33bbc
add clear queue button on execute page
...
Build and Push Docker Image / build (push) Successful in 20s
deletes all pending jobs, reverts their review plans back to pending so they
can be re-reviewed and re-approved.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 17:11:18 +01:00
ef785de955
add path mappings to translate jellyfin library paths to container mount paths
...
Build and Push Docker Image / build (push) Successful in 20s
jellyfin may use different internal paths (e.g. /tv/) than container mounts
(/series/). path_mappings config (or PATH_MAPPINGS env var) translates at scan
time. configurable via setup ui or env var format: /tv/=/series/,/data/=/movies/
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 16:57:22 +01:00
d5f4afd26b
split audio/subtitle concerns, remove docker-in-docker, add per-node path mapping
...
Build and Push Docker Image / build (push) Successful in 1m54s
- install ffmpeg in dockerfile (fixes exit code 127)
- buildCommand() now audio-only remux, no subtitle extraction
- add unapprove endpoint + ui button for approved items
- add batch extract-all subtitles endpoint + ui button
- audio detail page shows only video+audio streams
- remove global movies_path/series_path config, add per-node path mapping
- remove docker-in-docker command building (buildDockerCommand, buildDockerExtractOnlyCommand)
- ssh execution translates /movies/ and /series/ to node-specific paths
- remove media paths section from setup page
- add unraid-template.xml
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 16:48:00 +01:00
36080951ef
add gitea actions ci, push docker image to registry
...
Build and Push Docker Image / build (push) Successful in 25s
workflow builds on push to main, tags with latest + calver from
package.json, pushes to git.felixfoertsch.de container registry.
docker-compose.yml now pulls from registry instead of building locally.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 22:58:52 +01:00
5ac44b7551
restructure to react spa + hono api, fix missing server/ and lib/
...
rewrite from monolithic hono jsx to react 19 spa with tanstack router
+ hono json api backend. add scan, review, execute, nodes, and setup
pages. multi-stage dockerfile (node for vite build, bun for runtime).
previously, server/ and src/shared/lib/ were silently excluded by
global gitignore patterns (/server/ from emacs, lib/ from python).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 22:57:40 +01:00
ea536ce533
initial implementation: jellyfin audio/subtitle cleanup service
...
bun + hono + htmx service with sqlite, jellyfin/radarr/sonarr api
clients, stream analyzer, ffmpeg command builder, ssh remote execution,
setup wizard, scan with sse progress, review ui with inline edits,
execute queue, remote node management, docker deployment
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-02-26 22:29:33 +01:00