a5c31ef8a9
fix(frontend): restore plain type labels in grouped sidebar
2026-03-20 01:56:11 +01:00
3662a5ab9e
fix(frontend): suppress shows when type filter active; clarify grouped type labels
2026-03-20 01:53:13 +01:00
137251fe37
fix(frontend): restore ALL sentinel in sidebar to fix hydration mismatch
2026-03-20 01:33:27 +01:00
8101734c63
feat(frontend): add useLibraryShows and useLibrarySeasons hooks
2026-03-20 01:29:55 +01:00
6cf8a6d5e3
feat(frontend): implement grouped/drilldown view in library grid
2026-03-20 01:23:33 +01:00
c5317cb639
feat(frontend): add viewMode/drilldown state to library page
2026-03-20 01:21:54 +01:00
5f66493558
feat(api): add /library/shows and /library/shows/:name/seasons routes + season filter
2026-03-20 01:19:31 +01:00
5cc4cde223
feat(frontend): add ShowTile, SeasonTile, BreadcrumbNav components
2026-03-20 01:19:08 +01:00
5b89481104
feat(frontend): extend schedule dialog to support show/series selection
2026-03-20 01:19:00 +01:00
33338ac100
feat(frontend): make library sidebar drilldown-aware
2026-03-20 01:18:52 +01:00
66eef2c82e
feat(frontend): add useLibraryShows and useLibrarySeasons hooks
2026-03-20 01:18:34 +01:00
6f1a4e19d3
feat(infra): implement list_shows, list_seasons + season_number filter
2026-03-20 01:16:02 +01:00
dd69470ee4
feat(frontend): add ShowSummary, SeasonSummary types + library shows/seasons API methods
2026-03-20 01:14:43 +01:00
23722a771b
feat(domain): add ShowSummary, SeasonSummary types + ILibraryRepository methods
2026-03-20 01:13:00 +01:00
4cf7fdc1c2
feat(frontend): add library sync interval + sync now to admin settings panel
2026-03-20 00:38:04 +01:00
91271bd83c
feat(frontend): library page, components, and schedule/add-to-block dialogs (tasks 11-14)
2026-03-20 00:35:40 +01:00
49c7f7abd7
feat(frontend): add useLibrarySearch, useLibrarySyncStatus, useTriggerSync, useAdminSettings hooks
2026-03-20 00:30:44 +01:00
978ad1cdb0
feat(frontend): add library paged types, syncStatus/triggerSync/admin API methods
2026-03-20 00:30:03 +01:00
e1a885dcc9
fix(api): mount admin settings routes at /admin/settings (not /admin/library/settings)
2026-03-20 00:28:24 +01:00
e849548e9e
feat(api): replace live-provider library routes with DB-backed routes; add sync + admin settings endpoints
2026-03-20 00:27:06 +01:00
d92d629fbc
feat(api): wire library_repo, app_settings_repo, library_sync_adapter into AppState; start scheduler
2026-03-20 00:23:25 +01:00
aa5e3c28aa
feat(api): add library sync background task
2026-03-20 00:23:22 +01:00
64138b07e4
feat(infra): add FullSyncAdapter for library sync
2026-03-20 00:19:45 +01:00
6732576d06
feat(infra): add SqliteAppSettingsRepository
2026-03-20 00:17:05 +01:00
a3a421c0ac
feat(infra): add SqliteLibraryRepository
2026-03-20 00:15:01 +01:00
c6c93766c7
refactor(domain): remove redundant IAppSettingsRepository re-export; add TODO for Jellyfin enrichment
2026-03-20 00:11:30 +01:00
e101b44fa5
feat(domain): add library types, LibrarySyncAdapter, ILibraryRepository, IAppSettingsRepository; extend MediaItem with thumbnail_url and collection_id
2026-03-20 00:08:10 +01:00
666b1f2753
feat(db): add missing indexes to library migrations
2026-03-20 00:03:27 +01:00
a7c3f1f92e
feat(db): add library_items, library_sync_log, app_settings migrations
2026-03-20 00:01:34 +01:00
187cd064fb
docs: add library management implementation plan
2026-03-19 23:57:05 +01:00
4cc0e155bd
docs: add library management design spec
2026-03-19 23:43:37 +01:00
175d0bb0bb
fix(tests): add missing refresh_expiry_days param to JwtConfig::new in tests
2026-03-19 23:03:36 +01:00
311fdd4006
feat: multi-instance provider support
...
- provider_configs: add id TEXT PK; migrate existing rows (provider_type becomes id)
- local_files_index: add provider_id column + index; scope all queries per instance
- ProviderConfigRow: add id field; add get_by_id to trait
- LocalIndex:🆕 add provider_id param; all SQL scoped by provider_id
- factory: thread provider_id through build_local_files_bundle
- AppState.local_index: Option<Arc<LocalIndex>> → HashMap<String, Arc<LocalIndex>>
- admin_providers: restructured routes (POST /admin/providers create, PUT/DELETE /{id}, POST /test)
- admin_providers: use row.id as registry key for jellyfin and local_files
- files.rescan: optional ?provider=<id> query param
- frontend: add id to ProviderConfig, update api/hooks, new multi-instance panel UX
2026-03-19 22:54:41 +01:00
373e1c7c0a
fix: remove default-run entry from Cargo.toml
2026-03-19 22:34:09 +01:00
d2412da057
feat(auth): refresh tokens + remember me
...
Backend: add refresh JWT (30d, token_type claim), POST /auth/refresh
endpoint (rotates token pair), remember_me on login, JWT_REFRESH_EXPIRY_DAYS
env var. Extractors now reject refresh tokens on protected routes.
Frontend: sessionStorage for non-remembered sessions, localStorage +
refresh token for remembered sessions. Transparent 401 recovery in
api.ts (retry once after refresh). Remember me checkbox on login page
with security note when checked.
2026-03-19 22:24:26 +01:00
8bdd5e2277
fix(infra): deserialize channel schedule_config via ScheduleConfigCompat for V1 compat
2026-03-17 14:56:09 +01:00
26343b08f8
fix: test mocks for new trait methods, V1 schedule_config re-import, stale comments
2026-03-17 14:53:23 +01:00
6d350940b9
feat(frontend): schedule history dialog with rollback, wire ConfigHistorySheet
2026-03-17 14:48:39 +01:00
ba6abad602
feat(frontend): weekly grid editor with day tabs and copy shortcut
2026-03-17 14:46:34 +01:00
c0da075f03
feat(frontend): config history sheet with pin and restore
2026-03-17 14:45:00 +01:00
6bfb148e39
feat(frontend): config history and schedule rollback hooks
2026-03-17 14:43:12 +01:00
45c05b5720
fix: snapshot existing config before update; rollback returns 200
2026-03-17 14:41:57 +01:00
bd498b9bcb
feat(frontend): ScheduleConfig V2 types, weekday schema, export update
2026-03-17 14:39:19 +01:00
20e80ac28e
feat: config history — auto-snapshot on update, list/pin/restore endpoints
2026-03-17 14:39:09 +01:00
ad3a73f061
feat: schedule history — list, detail, rollback endpoints
2026-03-17 14:38:51 +01:00
c0fb8f69de
feat(infra): implement config snapshot repository methods
2026-03-17 14:32:04 +01:00
8b8e8a8d8c
fix(mcp): update block mutations for ScheduleConfig V2 day_blocks
2026-03-17 14:32:02 +01:00
05d2d77515
feat(infra): schedule history list, get-by-id, delete-after methods
2026-03-17 14:32:02 +01:00
8b701745bf
fix(api): update block lookups to use all_blocks() after ScheduleConfig V2
2026-03-17 14:31:24 +01:00
a79ee1b228
feat(domain): 7-day generation window, day_blocks lookup by weekday
2026-03-17 14:29:10 +01:00