- delete server/services/jellyfin.ts, webhook.ts, mqtt.ts and their tests
- strip jellyfin/mqtt imports and startup calls from index.tsx and settings.ts
- remove /jellyfin, /mqtt, /mqtt/status, /mqtt/test, /jellyfin/webhook-plugin endpoints from settings router
- clean ENV_MAP and isEnvConfigured of jellyfin/mqtt keys
- add db/index.ts migrations for series_key, duration_seconds, scan_status, scan_error, last_scanned_at (new columns absent on older dev DBs)
- move idx_media_items_series_key out of SCHEMA into migrate() so it runs after the column is added
- fix all test fixtures: drop jellyfin_id/series_jellyfin_id column refs, update MediaItem/MediaStream object literals to match current types
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- execute/clear now also resets sorted=0 so cleared items land back in the
inbox where the distributor can re-classify them; previously they got
stranded in Review with auto_class='auto', unreachable by both
"Approve all ready" and "Auto Review"
- pipelinecard: action row moves to the top so Skip/Approve/Back-to-review
sit in the same place regardless of card body height; title row follows;
file info (copy/transcode reasons) gets a dedicated row with the
ready/needs-decision badge pushed to the right
- tests: clearQueue preserves running/completed jobs, only pending plans
flip back to sorted=0 pending
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>