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
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
45c05b5720
fix: snapshot existing config before update; rollback returns 200
2026-03-17 14:41:57 +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
d8e39c66be
feat(infra): add channel_config_snapshots migration
2026-03-17 14:28:35 +01:00
055937fc3d
fix(domain): use ChannelId type in patch_config_snapshot_label
2026-03-17 14:27:41 +01:00
1338f6bace
feat(domain): extend ChannelRepository and ScheduleRepository ports for history
2026-03-17 14:25:51 +01:00
995f5b1339
feat(domain): add ChannelConfigSnapshot entity
2026-03-17 14:25:49 +01:00
22bee4f32c
feat(domain): ScheduleConfig V2 day-keyed weekly grid with V1 compat
2026-03-17 14:21:00 +01:00
5f1421f4bd
fix(domain): improve Weekday tests and document all() ordering
2026-03-17 14:18:13 +01:00
f8e8e85cb0
feat(domain): add Weekday enum with From<chrono::Weekday>
2026-03-17 14:16:16 +01:00
c550790287
feat: add find_last_slot_per_block method to schedule repositories and update related logic
2026-03-17 13:02:20 +01:00
d8dd047020
feat: implement local-files feature with various enhancements and cleanup
2026-03-17 03:00:39 +01:00
7244349e97
refactor: allow unused variable warning for db_pool in build_provider_registry
2026-03-16 04:41:08 +01:00
6aa86b6666
refactor: extract router/serve to server.rs, main is now thin orchestrator
2026-03-16 04:39:36 +01:00
e7bd66ffdf
refactor: extract background task spawning to startup.rs
2026-03-16 04:37:49 +01:00
b25ae95626
refactor: extract provider registry to provider_registry.rs
2026-03-16 04:36:41 +01:00
5949ffc63b
refactor: extract DB init to database.rs
2026-03-16 04:34:08 +01:00
29e654cabc
refactor: extract telemetry init to telemetry.rs
2026-03-16 04:33:01 +01:00
9d792249c9
feat: implement transcode settings repository and integrate with local-files provider
2026-03-16 04:24:39 +01:00
50df852416
fix: remove sqlx from API layer, read TTL from TranscodeManager, init local_files from DB on startup
2026-03-16 04:08:52 +01:00
d88afbfe2e
fix: sync cleanup_ttl_hours to transcode_settings table on provider save
2026-03-16 04:02:58 +01:00
712cf1deb9
fix: local_files hot-reload via RwLock state fields + rebuild_registry local_files case
2026-03-16 03:58:36 +01:00
87f94fcc51
feat: admin provider routes (list/update/delete/test) with admin middleware
2026-03-16 03:34:54 +01:00
46333853d2
feat: ConfigSource enum, RwLock provider_registry, is_admin in UserResponse, available_provider_types
2026-03-16 03:30:44 +01:00
0e51b7c0f1
feat: implement SqliteProviderConfigRepository, build_provider_config_repository factory
2026-03-16 03:26:02 +01:00
4ca8690a89
feat: add admin + provider_configs migration
2026-03-16 03:24:15 +01:00
d80d4e9741
feat: add is_admin to User, count_users, ProviderConfigRepository trait, admin migration
2026-03-16 03:22:00 +01:00
b35054f23e
feat(tv-page): add subtitle track toggle functionality
2026-03-16 02:42:24 +01:00
abcf872d2d
docs: update README files to include new environment variables and local files feature
2026-03-16 02:29:42 +01:00
e805028d46
feat: add server-sent events for logging and activity tracking
...
- Implemented a custom tracing layer (`AppLogLayer`) to capture log events and broadcast them to SSE clients.
- Created admin routes for streaming server logs and listing recent activity logs.
- Added an activity log repository interface and SQLite implementation for persisting activity events.
- Integrated activity logging into user authentication and channel CRUD operations.
- Developed frontend components for displaying server logs and activity logs in the admin panel.
- Enhanced the video player with a stats overlay for monitoring streaming metrics.
2026-03-16 02:21:40 +01:00