-
2698cb3ad4
cleanup: narrow SCTE-35 visibility to pub(crate), remove dead target_duration_secs
master
Gabriel Kaszewski
2026-07-12 15:31:59 +02:00
-
abd6bf4bc4
fix: add utoipa annotations to iCal export/import handlers
Gabriel Kaszewski
2026-07-12 15:30:45 +02:00
-
25ff9d2779
fix: rename recycle_policy column to rotation_policy + migration
Gabriel Kaszewski
2026-07-12 15:29:50 +02:00
-
2995aea606
fix: wire tags filter through LibrarySearchFilter to SQLite adapter
Gabriel Kaszewski
2026-07-12 15:29:06 +02:00
-
f52e024e98
refactor: deduplicate content_type/role string converters in MCP tools
Gabriel Kaszewski
2026-07-12 15:27:52 +02:00
-
5561b70e1b
refactor: extract build_schedule helper, deduplicate generate/preview/preview_config
Gabriel Kaszewski
2026-07-12 15:26:30 +02:00
-
8de7d33007
fix: iCal duration parser tracks seconds, rounds up to minutes
Gabriel Kaszewski
2026-07-12 15:24:50 +02:00
-
8dabbdf280
fix: fill_weighted sorts by recency via playback history
Gabriel Kaszewski
2026-07-12 15:24:17 +02:00
-
9558f04f73
fix: add gap_filler to frontend ChannelResponse + UpdateChannelRequest
Gabriel Kaszewski
2026-07-12 15:21:20 +02:00
-
a823a79f6b
fix: install curl in presentation image for healthcheck
Gabriel Kaszewski
2026-07-12 15:20:51 +02:00
-
5bc1e5e44b
frontend: align types to backend, playout HLS, rm Jellyfin proxy (#12)
Gabriel Kaszewski
2026-07-12 15:11:50 +02:00
-
711f0e4411
docker: 3-binary deployment (presentation, worker, playout)
Gabriel Kaszewski
2026-07-12 14:56:09 +02:00
-
a7fa2ec4aa
iCalendar import: parse_ical + API + MCP tool (#16)
Gabriel Kaszewski
2026-07-12 14:46:15 +02:00
-
6b0d060945
expand MCP tools: browse_library, stats, analyze, preview, suggest, config tools (#17)
Gabriel Kaszewski
2026-07-12 14:34:27 +02:00
-
6dbf7ab98c
SCTE-35 markers + overlay metadata in playout (#10)
Gabriel Kaszewski
2026-07-12 14:33:22 +02:00
-
e27e2ab6d1
wire utoipa OpenAPI: #[utoipa::path] on all handlers, Scalar UI (#14)
Gabriel Kaszewski
2026-07-12 14:29:52 +02:00
-
b00272aceb
iCalendar export: domain service + API + MCP tool (#15)
Gabriel Kaszewski
2026-07-12 14:27:20 +02:00
-
affd7f0223
merge feat/playout: HLS streaming, FFmpeg, multi-channel playout service (#9, #11)
Gabriel Kaszewski
2026-07-12 14:14:52 +02:00
-
-
8db70df0a0
merge feat/schedule-engine: interstitials, gap filler, mid-roll breaks (#3, #4, #8, #6)
Gabriel Kaszewski
2026-07-12 14:14:43 +02:00
-
-
c14e01e0f2
merge feat/library-sync: chapter extraction + MediaRole auto-detection (#5, #7)
Gabriel Kaszewski
2026-07-12 14:14:33 +02:00
-
-
874de68fb5
wire mid-roll breaks into schedule engine with chapter-aware splitting
Gabriel Kaszewski
2026-07-12 14:12:59 +02:00
-
79e975f057
wire gap_filler into schedule engine, API, MCP
Gabriel Kaszewski
2026-07-12 14:08:55 +02:00
-
8edd7a9c0b
wire interstitial insertion into schedule engine resolve_block
Gabriel Kaszewski
2026-07-12 14:05:33 +02:00
-
8e4f724562
add integration tests for all 6 FillStrategy variants, role filter on LibrarySearchFilter
Gabriel Kaszewski
2026-07-12 14:02:45 +02:00
-
-
-
f21d70c559
MediaRole auto-detection + manual role API + sync wiring (#7)
Gabriel Kaszewski
2026-07-12 14:00:28 +02:00
-
607d311375
chapter extraction via ffprobe during library sync (#5)
Gabriel Kaszewski
2026-07-12 14:00:17 +02:00
-
-
84dd05a8a6
multi-channel playout: concurrent tick, status endpoint, ffmpeg restart (#11)
Gabriel Kaszewski
2026-07-12 13:59:54 +02:00
-
1b3ecc10e1
add playout service: HLS streaming, FFmpeg, SegmentStore port (#9)
Gabriel Kaszewski
2026-07-12 13:58:09 +02:00
-
-
de7f3092d2
add parallel execution plan for roadmap issues
Gabriel Kaszewski
2026-07-12 07:54:01 +02:00
-
60524c56f7
add domain concepts: FillStrategy variants, Chapter, InterstitialRule, MidRollRule, gap_filler
Gabriel Kaszewski
2026-07-12 07:41:57 +02:00
-
39f5f99bfd
refactor: replace get_stream_url with get_source_uri per ADR-0002
Gabriel Kaszewski
2026-07-12 07:34:13 +02:00
-
abcf69ce7e
extract background tasks into worker binary
Gabriel Kaszewski
2026-07-12 07:28:17 +02:00
-
826e824b58
replace tokio::broadcast event bus with SQLite-backed event queue (ADR-0003)
Gabriel Kaszewski
2026-07-12 07:23:21 +02:00
-
e2393be635
collapse 20 pass-through use cases; handlers call ports directly
Gabriel Kaszewski
2026-07-12 07:18:26 +02:00
-
a6558e15b2
kill LibraryItem, unify to MediaItem; decouple schedule engine from providers
Gabriel Kaszewski
2026-07-12 07:02:08 +02:00
-
773e228e21
rename RecyclePolicy→RotationPolicy, collapse AccessMode, clean OIDC refs
Gabriel Kaszewski
2026-07-12 06:50:25 +02:00
-
efd15c4f53
domain glossary, context map, ADRs (library-as-source, playout, event queue)
Gabriel Kaszewski
2026-07-12 06:30:08 +02:00
-
f45eb38d97
add CLAUDE.md + agent skill config (issue tracker, triage labels, domain docs)
Gabriel Kaszewski
2026-07-12 05:32:57 +02:00
-
33b440d297
fix(presentation): extract 12 handler violations to use cases
Gabriel Kaszewski
2026-07-12 05:28:49 +02:00
-
9b18d3ff6d
remove OIDC/Postgres, replace ApiError w/ AppError, move params to api-types
Gabriel Kaszewski
2026-07-12 05:14:17 +02:00
-
c0e685a4ee
refactor(domain): Row structs for from_persistence, ID newtypes, kill clippy.toml
Gabriel Kaszewski
2026-07-12 05:00:49 +02:00
-
031cba5cfb
fix: unreachable DbPool match arm for workspace feature unification
Gabriel Kaszewski
2026-07-12 04:39:06 +02:00
-
f6b2481758
clean(mcp): extract constants, use CARGO_PKG_VERSION, fix unreachable
Gabriel Kaszewski
2026-07-12 04:37:27 +02:00
-
ff5f299a84
clean(presentation): strip comments, kill dead code, extract constants
Gabriel Kaszewski
2026-07-12 04:35:54 +02:00
-
25b33b6a0e
cleanup: strip comments, extract constants, DRY shared helpers across adapters + infra-wiring
Gabriel Kaszewski
2026-07-12 04:21:21 +02:00
-
eff14228af
refactor(api-types): strip comments, extract DEFAULT_ACCESS_MODE constant
Gabriel Kaszewski
2026-07-12 04:12:51 +02:00
-
9dcd169689
refactor(application): strip comments, DRY ownership check + parse_content_type
Gabriel Kaszewski
2026-07-12 04:10:58 +02:00
-
98a54245b1
domain crate code quality cleanup
Gabriel Kaszewski
2026-07-12 04:02:12 +02:00
-
d650e2ba07
makefile
Gabriel Kaszewski
2026-07-12 03:41:51 +02:00
-
a46ced4aca
add restructure design spec + implementation plan
Gabriel Kaszewski
2026-07-12 03:41:24 +02:00
-
f2f56b7143
resolve merge conflicts in tv page (merge password + quality/subtitle features)
Gabriel Kaszewski
2026-07-12 03:41:20 +02:00
-
8051ab58c0
add /target to gitignore for new workspace root
Gabriel Kaszewski
2026-07-12 03:41:16 +02:00
-
dd4389d53e
deprecate k-tv-backend, fix workspace feature-unification build
Gabriel Kaszewski
2026-07-12 03:35:09 +02:00
-
c869e9ab84
mcp: MCP server calling application use cases
Gabriel Kaszewski
2026-07-12 03:31:08 +02:00
-
56d742a74c
presentation: HTTP server crate w/ handlers, routes, background tasks
Gabriel Kaszewski
2026-07-12 03:23:20 +02:00
-
afed5c01b4
adapter-event-publisher: broadcast channel event bus
Gabriel Kaszewski
2026-07-12 02:54:43 +02:00
-
b93b14efe4
adapter-local-files: media provider, index, transcoder
Gabriel Kaszewski
2026-07-12 02:53:27 +02:00
-
e389e9e002
adapter-jellyfin: media provider
Gabriel Kaszewski
2026-07-12 02:47:13 +02:00
-
72ef9b9e1b
adapter-auth: JWT, OIDC, password hashing
Gabriel Kaszewski
2026-07-12 02:44:16 +02:00
-
0fe80b545e
adapter-postgres: all repository implementations
Gabriel Kaszewski
2026-07-12 02:39:56 +02:00
-
e8179d1f53
adapter-sqlite: all repo implementations + wire fn + migrations copy
Gabriel Kaszewski
2026-07-12 02:34:12 +02:00
-
1428f264bb
adapter-common: shared DB mapping helpers
Gabriel Kaszewski
2026-07-12 02:26:42 +02:00
-
4cdde568f6
infra-wiring: DbPool enum + Config from env
Gabriel Kaszewski
2026-07-12 02:23:20 +02:00
-
1410d3e6bb
api-types: HTTP DTOs with utoipa OpenAPI derives
Gabriel Kaszewski
2026-07-12 02:20:41 +02:00
-
466d34b5d0
application: config_snapshots, admin, providers, iptv
Gabriel Kaszewski
2026-07-12 02:14:07 +02:00
-
ebf0614fdf
application: library bounded context
Gabriel Kaszewski
2026-07-12 02:08:04 +02:00
-
ef86a967cd
application: schedule bounded context
Gabriel Kaszewski
2026-07-12 02:02:23 +02:00
-
6fd47f2d93
application: channels bounded context
Gabriel Kaszewski
2026-07-12 01:57:38 +02:00
-
2976600d12
application: auth bounded context (register, login)
Gabriel Kaszewski
2026-07-12 01:49:34 +02:00
-
848d4752e2
domain testing: InMemory repos + Noops behind test-helpers
Gabriel Kaszewski
2026-07-12 01:41:23 +02:00
-
7ddf94c75f
domain services: schedule engine, fill strategies, IPTV
Gabriel Kaszewski
2026-07-12 01:35:01 +02:00
-
87e7d85239
domain events: DomainEvent enum w/ ID-only variants
Gabriel Kaszewski
2026-07-12 01:29:40 +02:00
-
6d12ac4c5e
fix domain ports: add EventConsumer, use ID newtypes
Gabriel Kaszewski
2026-07-12 01:27:38 +02:00
-
0166e829c1
domain ports: CQRS-split traits for all bounded contexts
Gabriel Kaszewski
2026-07-12 01:23:38 +02:00
-
616c60e213
domain models: schedule, library, config_snapshot, activity, provider_config
Gabriel Kaszewski
2026-07-12 01:17:44 +02:00
-
528b155327
domain models: User, Channel, ScheduleConfig, MediaItem, PlaybackRecord
Gabriel Kaszewski
2026-07-12 01:11:11 +02:00
-
b2e71403d8
domain value objects: auth, scheduling, channel, oidc, search
Gabriel Kaszewski
2026-07-12 01:05:31 +02:00
-
3ff146615f
scaffold workspace + domain crate (errors, ids, uuid_id macro)
Gabriel Kaszewski
2026-07-12 01:00:50 +02:00
-
e3a65d8052
fix: use StdRng for shuffling indices in fill_block function
Gabriel Kaszewski
2026-03-20 23:12:44 +01:00
-
f45ca77b79
fix: format code for improved readability and consistency
Gabriel Kaszewski
2026-03-20 01:57:22 +01:00
-
a5c31ef8a9
fix(frontend): restore plain type labels in grouped sidebar
Gabriel Kaszewski
2026-03-20 01:56:11 +01:00
-
3662a5ab9e
fix(frontend): suppress shows when type filter active; clarify grouped type labels
Gabriel Kaszewski
2026-03-20 01:53:13 +01:00
-
137251fe37
fix(frontend): restore ALL sentinel in sidebar to fix hydration mismatch
Gabriel Kaszewski
2026-03-20 01:33:27 +01:00
-
8101734c63
feat(frontend): add useLibraryShows and useLibrarySeasons hooks
Gabriel Kaszewski
2026-03-20 01:29:55 +01:00
-
6cf8a6d5e3
feat(frontend): implement grouped/drilldown view in library grid
Gabriel Kaszewski
2026-03-20 01:23:33 +01:00
-
c5317cb639
feat(frontend): add viewMode/drilldown state to library page
Gabriel Kaszewski
2026-03-20 01:21:54 +01:00
-
5f66493558
feat(api): add /library/shows and /library/shows/:name/seasons routes + season filter
Gabriel Kaszewski
2026-03-20 01:19:31 +01:00
-
5cc4cde223
feat(frontend): add ShowTile, SeasonTile, BreadcrumbNav components
Gabriel Kaszewski
2026-03-20 01:19:08 +01:00
-
5b89481104
feat(frontend): extend schedule dialog to support show/series selection
Gabriel Kaszewski
2026-03-20 01:19:00 +01:00
-
33338ac100
feat(frontend): make library sidebar drilldown-aware
Gabriel Kaszewski
2026-03-20 01:18:52 +01:00
-
66eef2c82e
feat(frontend): add useLibraryShows and useLibrarySeasons hooks
Gabriel Kaszewski
2026-03-20 01:18:34 +01:00
-
6f1a4e19d3
feat(infra): implement list_shows, list_seasons + season_number filter
Gabriel Kaszewski
2026-03-20 01:16:02 +01:00
-
dd69470ee4
feat(frontend): add ShowSummary, SeasonSummary types + library shows/seasons API methods
Gabriel Kaszewski
2026-03-20 01:14:43 +01:00
-
23722a771b
feat(domain): add ShowSummary, SeasonSummary types + ILibraryRepository methods
Gabriel Kaszewski
2026-03-20 01:13:00 +01:00
-
4cf7fdc1c2
feat(frontend): add library sync interval + sync now to admin settings panel
Gabriel Kaszewski
2026-03-20 00:38:04 +01:00
-
91271bd83c
feat(frontend): library page, components, and schedule/add-to-block dialogs (tasks 11-14)
Gabriel Kaszewski
2026-03-20 00:35:40 +01:00
-
49c7f7abd7
feat(frontend): add useLibrarySearch, useLibrarySyncStatus, useTriggerSync, useAdminSettings hooks
Gabriel Kaszewski
2026-03-20 00:30:44 +01:00
-
978ad1cdb0
feat(frontend): add library paged types, syncStatus/triggerSync/admin API methods
Gabriel Kaszewski
2026-03-20 00:30:03 +01:00
-
e1a885dcc9
fix(api): mount admin settings routes at /admin/settings (not /admin/library/settings)
Gabriel Kaszewski
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
Gabriel Kaszewski
2026-03-20 00:27:06 +01:00