-
b9c0b10740
feat: add SPA, serve at /app/, update Dockerfile and README
Gabriel Kaszewski
2026-06-04 04:20:15 +02:00
-
15dc0e526b
feat: expose display_name, also_known_as, profile fields in GET /profile
Gabriel Kaszewski
2026-06-04 02:58:12 +02:00
-
cf2f4a1b4f
feat: watchlist add accepts title/year/imdb for movies not in DB
Gabriel Kaszewski
2026-06-04 02:47:55 +02:00
-
e7cdbf9ca7
fix: user profile URLs, typed returns for following/followers
Gabriel Kaszewski
2026-06-04 02:40:04 +02:00
-
837b7866af
feat: include avatar_url and banner_url in UserProfileResponse
Gabriel Kaszewski
2026-06-04 02:37:16 +02:00
-
c4908b7765
feat: API endpoints for any user's following/followers
Gabriel Kaszewski
2026-06-04 02:34:01 +02:00
-
dbc78a1ff4
feat: add user_id to FeedEntryDto
Gabriel Kaszewski
2026-06-04 02:22:08 +02:00
-
a97e263ed3
fix: always return following/followers counts, only hide pending for non-own profiles
Gabriel Kaszewski
2026-06-04 02:19:27 +02:00
-
b1d667d3cb
fix: user profile returns social counts when viewing own profile
Gabriel Kaszewski
2026-06-04 02:18:28 +02:00
-
bf73d4a695
feat: CORS, role in auth, banner_url, diary sort, cleanup
Gabriel Kaszewski
2026-06-04 02:06:51 +02:00
-
7b9b0f9ffe
feat: API preview endpoint for import sessions
Gabriel Kaszewski
2026-06-04 01:59:09 +02:00
-
7d6f874ae7
feat: activity feed accepts sort_by param
Gabriel Kaszewski
2026-06-04 01:35:45 +02:00
-
4206bb4b06
fix: diary sort_by rating_desc/rating_asc in all/movie queries
Gabriel Kaszewski
2026-06-04 01:28:35 +02:00
-
004243dcbb
fix: use embed=true for serde bool compat
Gabriel Kaszewski
2026-06-03 10:17:43 +02:00
-
c798b851dc
fmt
Gabriel Kaszewski
2026-06-03 10:14:53 +02:00
-
c18d4eebc1
fix: use array instead of vec for clippy
Gabriel Kaszewski
2026-06-03 10:14:20 +02:00
-
3f6e01ed65
feat: add embed snippet to profile settings
Gabriel Kaszewski
2026-06-03 10:09:38 +02:00
-
19642175eb
feat: wire embed param to EmbedProfileTemplate
Gabriel Kaszewski
2026-06-03 10:08:51 +02:00
-
8ca378b25f
feat: add embed.css standalone stylesheet
Gabriel Kaszewski
2026-06-03 10:07:46 +02:00
-
fad73a9fab
feat: add embed_profile.html template
Gabriel Kaszewski
2026-06-03 10:07:45 +02:00
-
627db45a56
feat: add embed_base.html template shell
Gabriel Kaszewski
2026-06-03 10:07:43 +02:00
-
976d872eed
feat: add EmbedProfileTemplate struct
Gabriel Kaszewski
2026-06-03 10:07:41 +02:00
-
6c7ce24e1f
feat: add embed param to ProfileQueryParams
Gabriel Kaszewski
2026-06-03 10:07:39 +02:00
-
6668ba511c
fmt
Gabriel Kaszewski
2026-06-03 01:38:25 +02:00
-
430fbb21ea
refactor: rename image-storage crate to object-storage
Gabriel Kaszewski
2026-06-03 01:37:14 +02:00
-
f262417971
refactor: rename ImageStorage → ObjectStorage
Gabriel Kaszewski
2026-06-03 01:33:08 +02:00
-
d94ccbe057
refactor: store typed WrapUpReport in domain, serialize in adapters
Gabriel Kaszewski
2026-06-03 01:24:02 +02:00
-
e4b8ba550e
refactor: extract storage key conventions into WrapUpStorage
Gabriel Kaszewski
2026-06-03 01:20:51 +02:00
-
3cec726e3d
refactor: move VideoRenderConfig from domain to adapter, inject at construction
Gabriel Kaszewski
2026-06-03 01:18:52 +02:00
-
e8e83d3f16
assets + fmt
Gabriel Kaszewski
2026-06-03 01:13:06 +02:00
-
8cabc6af70
fix: clippy — redundant closure in AdminApiUser
Gabriel Kaszewski
2026-06-03 01:12:36 +02:00
-
e378191045
fix: clippy — collapse nested if in cast photo store
Gabriel Kaszewski
2026-06-03 01:12:07 +02:00
-
bca07b7824
fix: clippy — collapse nested ifs, use div_ceil
Gabriel Kaszewski
2026-06-03 01:11:17 +02:00
-
857896f057
feat: add video download link to wrapup HTML page
Gabriel Kaszewski
2026-06-03 01:06:11 +02:00
-
e905842b62
fix: idempotency guard on wrapup handler to prevent duplicate processing
Gabriel Kaszewski
2026-06-03 01:01:50 +02:00
-
83103e5eb5
feat: redesign wrapup HTML with glass cards, ranked lists, better layout
Gabriel Kaszewski
2026-06-03 01:00:50 +02:00
-
fc086de7f7
refactor: move DateRange validation to value object, add delete/cleanup
Gabriel Kaszewski
2026-06-03 00:58:07 +02:00
-
3a66f89609
fix: reverse rating bar order to 5★→1★ in video slides
Gabriel Kaszewski
2026-06-03 00:55:43 +02:00
-
45d6183ea4
fix: reverse rating bar order to 5★→1★
Gabriel Kaszewski
2026-06-03 00:54:59 +02:00
-
241063c914
feat: wrapup date validation, delete endpoint, failed record cleanup
Gabriel Kaszewski
2026-06-03 00:54:08 +02:00
-
3f483f8f81
fix: alpha-blend glass panels instead of opaque overwrite
Gabriel Kaszewski
2026-06-03 00:46:09 +02:00
-
c842ad6a55
feat: download top-5 cast photos during TMDb enrichment
Gabriel Kaszewski
2026-06-03 00:42:25 +02:00
-
a5cf62e281
fix: cover-fill backgrounds, bigger highlight posters
Gabriel Kaszewski
2026-06-03 00:40:35 +02:00
-
6fb00f9205
docs: add WRAPUP_BG_DIR to env/readme
Gabriel Kaszewski
2026-06-03 00:35:15 +02:00
-
d52120d6a9
feat: frutiger aero visual overhaul — backgrounds, glass panels, cast photos, full mosaic
Gabriel Kaszewski
2026-06-03 00:34:13 +02:00
-
e57ddd78ac
feat: frutiger aero visual overhaul for wrapup video slides
Gabriel Kaszewski
2026-06-03 00:32:39 +02:00
-
0d02f23f4f
fix: decode AVIF posters via ffmpeg fallback for mosaic slide
Gabriel Kaszewski
2026-06-03 00:23:39 +02:00
-
86639853d2
fix: render genres via SlideRenderer, enable AVIF decoding, add poster fetch logging
Gabriel Kaszewski
2026-06-03 00:19:18 +02:00
-
7155bea78e
fix: disable plotters axis labels to avoid system font lookup
Gabriel Kaszewski
2026-06-03 00:10:56 +02:00
-
8429d13db0
fix: enable ab_glyph font backend for plotters
Gabriel Kaszewski
2026-06-03 00:09:10 +02:00
-
cb611bcc7d
fix: wire FfmpegWrapUpRenderer into worker when ffmpeg available
Gabriel Kaszewski
2026-06-03 00:06:04 +02:00
-
bb503f3ce8
feat: AdminApiUser extractor for Bearer-token admin endpoints
Gabriel Kaszewski
2026-06-03 00:00:45 +02:00
-
bf0350c87a
fmt
Gabriel Kaszewski
2026-06-02 23:50:20 +02:00
-
9e13f04e9c
fix: clippy warnings in wrapup compute + renderer
Gabriel Kaszewski
2026-06-02 23:49:39 +02:00
-
e69f77a99f
docs: add wrap-up to Dockerfile, .env.example, README
Gabriel Kaszewski
2026-06-02 23:47:21 +02:00
-
1e063b6580
feat: streaming video download via ImageStorage::get_stream
Gabriel Kaszewski
2026-06-02 23:45:31 +02:00
-
f160adcd1c
feat: wrapup env vars + render concurrency semaphore
Gabriel Kaszewski
2026-06-02 23:41:08 +02:00
-
efd1214a4c
feat: font rendering + logo branding on wrapup slides
Gabriel Kaszewski
2026-06-02 23:16:55 +02:00
-
21c33b169e
feat: gate wrapup generate behind admin role
Gabriel Kaszewski
2026-06-02 23:14:06 +02:00
-
490bd97a40
feat: wire video renderer pipeline + download endpoint
Gabriel Kaszewski
2026-06-02 22:34:55 +02:00
-
d45d8aa913
feat: video renderer adapter w/ slides + charts + ffmpeg
Gabriel Kaszewski
2026-06-02 22:31:45 +02:00
-
f00a2cbbb8
feat: HTML wrap-up page with Askama template
Gabriel Kaszewski
2026-06-02 22:28:28 +02:00
-
c0b3fb6940
fix: collapse nested if in wrapup generate
Gabriel Kaszewski
2026-06-02 22:20:29 +02:00
-
ea43911984
feat: wire real wrapup adapters into presentation + worker
Gabriel Kaszewski
2026-06-02 22:19:29 +02:00
-
5a15bea3d4
feat: wrap-up REST API endpoints
Gabriel Kaszewski
2026-06-02 22:17:11 +02:00
-
5e740ba2a1
fix: add async_trait + exhaustive match for wrapup events in tests
Gabriel Kaszewski
2026-06-02 22:14:50 +02:00
-
7ef8912d69
feat: wrapup worker handler + auto-generate job
Gabriel Kaszewski
2026-06-02 22:13:08 +02:00
-
ac05cdfeaf
fix: add WrapUp events to NATS subject mapping
Gabriel Kaszewski
2026-06-02 22:09:57 +02:00
-
b171d2d1e2
feat(application): wrapup generate/get/list use cases
Gabriel Kaszewski
2026-06-02 22:09:08 +02:00
-
59b42ce810
feat: add WrapUpRequested/Completed domain events
Gabriel Kaszewski
2026-06-02 22:06:06 +02:00
-
5a6abdcc23
feat(adapters): WrapUpStatsQuery + WrapUpRepository for postgres/sqlite
Gabriel Kaszewski
2026-06-02 22:04:46 +02:00
-
a95d831fd1
feat(domain): add WrapUpRecord, WrapUpRepository port
Gabriel Kaszewski
2026-06-02 21:59:47 +02:00
-
4c75113c4f
chore: wire WrapUpStatsQuery panic stub into binaries
Gabriel Kaszewski
2026-06-02 21:49:54 +02:00
-
8fec989dc6
test(wrapup): unit tests for stats computation
Gabriel Kaszewski
2026-06-02 21:46:51 +02:00
-
8c31a2b829
feat(application): add wrapup stats computation engine
Gabriel Kaszewski
2026-06-02 21:44:46 +02:00
-
4df78221a8
feat(domain): add WrapUpStatsQuery port and in-memory fake
Gabriel Kaszewski
2026-06-02 21:42:15 +02:00
-
e8b2d4f7ee
feat(domain): add WrapUpReport model and supporting types
Gabriel Kaszewski
2026-06-02 21:40:43 +02:00
-
c878c0358f
fix: add 403 response to confirm/dismiss OpenAPI annotations
Gabriel Kaszewski
2026-06-02 21:06:22 +02:00
-
4067dedb28
refactor: add DomainError::Forbidden + centralize error-to-HTTP mapping
Gabriel Kaszewski
2026-06-02 21:00:22 +02:00
-
28170c95d4
chore: fmt + remove dead federation module
Gabriel Kaszewski
2026-06-02 20:44:08 +02:00
-
62fd6682c6
refactor: extract view-model mappers from presentation handlers
Gabriel Kaszewski
2026-06-02 20:43:33 +02:00
-
b9210b6c4e
fix: batch N+1 queries in import duplicate check and watch event dismiss
Gabriel Kaszewski
2026-06-02 20:05:15 +02:00
-
ac7edd6953
WIP: federation + integrations
Gabriel Kaszewski
2026-06-02 19:50:19 +02:00
-
dcc9244d4e
refactor: group use cases into DDD bounded contexts
Gabriel Kaszewski
2026-06-02 19:49:09 +02:00
-
aadad3cfb0
feat: Jellyfin/Plex auto-import via watch queue
Gabriel Kaszewski
2026-06-02 17:34:16 +02:00
-
6bd728fd50
feat: replace instance actor decorator with real DB row
Gabriel Kaszewski
2026-05-30 03:16:03 +02:00
-
1b9a6617f3
feat: add instance actor for signed fetch (Secure Mode support)
Gabriel Kaszewski
2026-05-30 03:11:16 +02:00
-
14066ea469
chore: upgrade k-ap to 0.4.0
Gabriel Kaszewski
2026-05-30 03:00:44 +02:00
-
7456a18fc9
ci: add clippy component to toolchain
Gabriel Kaszewski
2026-05-30 02:29:14 +02:00
-
c2985dd579
ci: drop release-build, add clippy
Gabriel Kaszewski
2026-05-30 02:24:05 +02:00
-
84ddf04d28
harden federation: sanitize incoming AP content, fix error handling, tighten rate limits
Gabriel Kaszewski
2026-05-29 12:23:29 +02:00
-
d1f9f55d4f
fix: wire DeliveryRequested federation events — outbound AP delivery was broken
Gabriel Kaszewski
2026-05-29 12:09:02 +02:00
-
62ddb014d2
feat: add Gitea registry configuration to Cargo
Gabriel Kaszewski
2026-05-29 11:49:57 +02:00
-
5b8f255607
docs: update README — add watchlist/profiles, fix architecture, add make targets
Gabriel Kaszewski
2026-05-29 11:48:05 +02:00
-
c3b89f6dc6
refactor: extract business logic from handlers to application layer
Gabriel Kaszewski
2026-05-29 11:41:16 +02:00
-
2355f89bed
refactor: fix all clippy warnings properly
Gabriel Kaszewski
2026-05-29 11:19:02 +02:00
-
68a939f6c4
Refactor code for improved readability and consistency
Gabriel Kaszewski
2026-05-29 10:58:44 +02:00
-
412ab12695
feat: add Makefile for local development checks and formatting
Gabriel Kaszewski
2026-05-29 10:58:20 +02:00
-
36d15e1344
fix: AP bugs — backfill mapping, review activity type, also_known_as parse
Gabriel Kaszewski
2026-05-29 10:54:11 +02:00
-
624cfe5799
feat: migrate k-ap 0.1.10→0.3.1, fix AP gaps
Gabriel Kaszewski
2026-05-29 10:42:53 +02:00