-
b29f3020e6
refactor(integrations): IngestWatchEventDeps, scoped Arc deps, WatchEventCleanupJob
Gabriel Kaszewski
2026-06-11 22:01:15 +02:00
-
76edd52bb0
refactor(import): fix test files to not use AppContext
Gabriel Kaszewski
2026-06-11 21:51:24 +02:00
-
b5ff43d9dc
refactor(import): scoped Arc deps, ImportSessionCleanupJob
Gabriel Kaszewski
2026-06-11 21:49:15 +02:00
-
b552c1d156
refactor(watchlist): WatchlistAddDeps, scoped Arc deps
Gabriel Kaszewski
2026-06-11 21:40:48 +02:00
-
f006ba00a8
refactor(goals): scoped Arc deps instead of AppContext
Gabriel Kaszewski
2026-06-11 21:36:11 +02:00
-
2b295e10ba
refactor(search): scoped Arc dep instead of AppContext
Gabriel Kaszewski
2026-06-11 21:32:19 +02:00
-
20ac0d3adf
fmt
Gabriel Kaszewski
2026-06-11 14:44:53 +02:00
-
8ac87a3735
refactor: split jobs.rs into per-context modules
Gabriel Kaszewski
2026-06-11 14:44:23 +02:00
-
4f0f44dec3
test: refresh token rotation, logout revocation, login refresh token
Gabriel Kaszewski
2026-06-11 14:42:39 +02:00
-
96c753c2c6
spa: silent refresh on 401, persistent login
Gabriel Kaszewski
2026-06-11 14:39:10 +02:00
-
822f3f9d9c
api: refresh + logout endpoints, update login response
Gabriel Kaszewski
2026-06-11 14:37:09 +02:00
-
55feaa353f
app: refresh/logout use cases, update login with refresh token
Gabriel Kaszewski
2026-06-11 14:35:53 +02:00
-
3a3f3b3889
db: refresh_sessions migration + SQLite/Postgres adapters
Gabriel Kaszewski
2026-06-11 14:31:46 +02:00
-
ef9ecbae06
domain: add RefreshSession model + repository port
Gabriel Kaszewski
2026-06-11 14:29:43 +02:00
-
db285b513b
fix: swap import/export icons
Gabriel Kaszewski
2026-06-11 14:13:51 +02:00
-
2617c77b42
feat: add arrow navigation to horizontal scroll strips
Gabriel Kaszewski
2026-06-11 14:12:42 +02:00
-
e618e1aa84
feat: horizontal poster strip for person filmography
Gabriel Kaszewski
2026-06-11 14:10:20 +02:00
-
7dc372a7b6
feat: redesign person page with Cards, SwipeTabs, collapsible bio
Gabriel Kaszewski
2026-06-11 14:07:27 +02:00
-
e39fcf6802
feat: show person age calculated from birthday
Gabriel Kaszewski
2026-06-11 14:04:52 +02:00
-
b09ef4686a
fmt
Gabriel Kaszewski
2026-06-11 14:03:05 +02:00
-
2074a2244e
refactor: move person enrichment staleness check to application layer
Gabriel Kaszewski
2026-06-11 14:01:44 +02:00
-
338ecb71c8
perf: reduce worker concurrency to 4 to ease SQLite write contention
Gabriel Kaszewski
2026-06-11 13:55:48 +02:00
-
8cb90b256c
fix: guard also_known_as access when undefined
Gabriel Kaszewski
2026-06-11 13:52:44 +02:00
-
c05087a6c7
fmt
Gabriel Kaszewski
2026-06-11 13:51:33 +02:00
-
0fdc79af23
fix: add enrichment columns to test schema
Gabriel Kaszewski
2026-06-11 13:51:14 +02:00
-
262ba5ca39
fix: collapse nested if per clippy
Gabriel Kaszewski
2026-06-11 13:48:08 +02:00
-
57c720b22f
fix: collapse nested if per clippy
Gabriel Kaszewski
2026-06-11 13:47:32 +02:00
-
53b7f730cb
refactor: drop EnrichmentHandler alias, use MovieEnrichmentHandler directly
Gabriel Kaszewski
2026-06-11 13:46:30 +02:00
-
e8fa24bf9b
refactor: split tmdb-enrichment into client, movie_handler, person_handler
Gabriel Kaszewski
2026-06-11 13:46:00 +02:00
-
7437ed89ad
fix: handle PersonEnrichmentRequested in test fakes
Gabriel Kaszewski
2026-06-11 13:43:37 +02:00
-
b2a41db290
feat: rich person detail page with bio, dates, links
Gabriel Kaszewski
2026-06-11 13:42:04 +02:00
-
9b932cde8e
feat: wire person enrichment handler, update API DTOs
Gabriel Kaszewski
2026-06-11 13:40:16 +02:00
-
a68e19aad7
feat: TMDB person enrichment client + event handler
Gabriel Kaszewski
2026-06-11 13:38:07 +02:00
-
371a3cdc46
app: person enrichment use case + staleness checks
Gabriel Kaszewski
2026-06-11 13:36:43 +02:00
-
517a18da8a
db: person enrichment migrations + adapter updates
Gabriel Kaszewski
2026-06-11 13:34:10 +02:00
-
7df24a19ee
domain: add person enrichment fields, event, port
Gabriel Kaszewski
2026-06-11 13:30:19 +02:00
-
549923b92e
feat: show relative watched date and comment preview in profile entries
Gabriel Kaszewski
2026-06-11 13:03:49 +02:00
-
3cbb406ea7
feat: add export route to settings in route tree
Gabriel Kaszewski
2026-06-11 13:01:12 +02:00
-
21cc6ed437
fix: move useDocumentTitle before early returns (Rules of Hooks)
Gabriel Kaszewski
2026-06-11 12:59:13 +02:00
-
5dc90724d3
feat: JSON import + mapping presets in SPA
Gabriel Kaszewski
2026-06-11 12:58:08 +02:00
-
9a894c3a95
refactor: move export to its own settings page under Data group
Gabriel Kaszewski
2026-06-11 12:46:46 +02:00
-
acc20d2f43
feat: dynamic page titles across SPA
Gabriel Kaszewski
2026-06-11 12:45:01 +02:00
-
a95be0b131
feat: add search input on user profile pages
Gabriel Kaszewski
2026-06-11 12:39:14 +02:00
-
f10b114e83
feat: expose search param on user profile API endpoint
Gabriel Kaszewski
2026-06-11 12:37:20 +02:00
-
c020135cd1
feat: move diary export to settings page with CSV/JSON options
Gabriel Kaszewski
2026-06-11 12:36:03 +02:00
-
ad55897871
i18n: add export and profile search translations
Gabriel Kaszewski
2026-06-11 12:34:29 +02:00
-
87fcdc12ca
clean up
Gabriel Kaszewski
2026-06-10 11:02:18 +02:00
-
d14199813f
perf: optimize compile times
Gabriel Kaszewski
2026-06-10 03:33:48 +02:00
-
f52219b2b7
docs: update architecture diagram — add domain services, Password VO
Gabriel Kaszewski
2026-06-10 03:25:14 +02:00
-
6e21ec115d
fmt
Gabriel Kaszewski
2026-06-10 03:24:17 +02:00
-
deae83cfd1
fix: Password uses char count not byte length, redact Debug output, tighten test assertion
Gabriel Kaszewski
2026-06-10 03:23:23 +02:00
-
c4d6b68ef9
refactor: enforce password min-length via domain Password value object
Gabriel Kaszewski
2026-06-10 03:15:43 +02:00
-
d8cff33679
refactor: move profile-field count validation into domain UserProfile
Gabriel Kaszewski
2026-06-10 03:13:19 +02:00
-
e9aa6131ae
refactor: extract wrapup analytics into domain::services::wrapup_analyzer
Gabriel Kaszewski
2026-06-10 03:10:44 +02:00
-
43f6c5679d
fmt
Gabriel Kaszewski
2026-06-10 02:56:56 +02:00
-
956e51530e
refactor: move domain inline tests to separate files under tests/
Gabriel Kaszewski
2026-06-10 02:55:47 +02:00
-
b882569ee1
fix: use correct i18n key for comment placeholder in queue tab
Gabriel Kaszewski
2026-06-10 02:47:04 +02:00
-
5dbc02b58f
fix: remove .sqlx copy from Dockerfile
Gabriel Kaszewski
2026-06-10 02:41:59 +02:00
-
d389e26e39
fix: broadcast goal progress on review log, fix goal handler security gaps
Gabriel Kaszewski
2026-06-10 02:40:25 +02:00
-
05d062f4e0
fmt
Gabriel Kaszewski
2026-06-09 02:31:02 +02:00
-
70b3ca0f5c
refactor: split domain models, move presentation logic out of app layer
Gabriel Kaszewski
2026-06-09 02:29:11 +02:00
-
ac03182aa6
docs: add ReviewLogger to architecture diagram
Gabriel Kaszewski
2026-06-09 02:17:49 +02:00
-
6d3182525f
fmt
Gabriel Kaszewski
2026-06-09 02:16:18 +02:00
-
7bcbc59587
fix: implement get_all_reviews_for_user, add crate metadata
Gabriel Kaszewski
2026-06-09 02:12:35 +02:00
-
d867a14b28
add 400+ unit tests for domain and application layers
Gabriel Kaszewski
2026-06-09 02:07:26 +02:00
-
30a6200b5b
remove wrapup video rendering (ffmpeg)
Gabriel Kaszewski
2026-06-09 00:36:44 +02:00
-
f4fd915e35
refactor: replace sqlx compile-time macros with runtime queries
Gabriel Kaszewski
2026-06-09 00:19:02 +02:00
-
f3eee9131b
chore: remove stale .sqlx cache, add to gitignore
Gabriel Kaszewski
2026-06-09 00:09:30 +02:00
-
9e4370b068
fix: register goal + settings endpoints in OpenAPI spec
Gabriel Kaszewski
2026-06-09 00:07:29 +02:00
-
37ab24be74
docs: npm → bun
Gabriel Kaszewski
2026-06-09 00:06:22 +02:00
-
307113381f
docs: add CONTRIBUTING.md with setup, architecture, PR guidelines
Gabriel Kaszewski
2026-06-09 00:04:30 +02:00
-
6d238b6c3d
docs: mark TUI as deprecated experiment
Gabriel Kaszewski
2026-06-09 00:02:20 +02:00
-
a7a11dde08
refactor: split monolithic handlers + testing into domain-grouped modules
Gabriel Kaszewski
2026-06-08 23:59:23 +02:00
-
988e15eac6
fix: add missing common.edit i18n key
Gabriel Kaszewski
2026-06-08 22:38:54 +02:00
-
fff5f4af2f
feat: goals — "watch N movies in YEAR" with progress bar
Gabriel Kaszewski
2026-06-08 22:37:52 +02:00
-
213f9a2433
Remove backdrop filter from input slot in aero-theme.css for improved performance
Gabriel Kaszewski
2026-06-08 21:05:16 +02:00
-
4dacbbfded
fix: update poster_url on remote review Update activity
Gabriel Kaszewski
2026-06-04 23:21:19 +02:00
-
886f26c7dc
fix: broadcast AP Update after poster sync to fix missing posters on remote instances
Gabriel Kaszewski
2026-06-04 23:12:27 +02:00
-
6a10ba15c1
feat(spa): comment field in queue review, date picker in log sheet
Gabriel Kaszewski
2026-06-04 22:35:30 +02:00
-
237f1e7d32
style: fmt persons test
Gabriel Kaszewski
2026-06-04 17:59:05 +02:00
-
c647f4c13b
fix: clippy 1.96 lints — map_or, duplicate_mod, needless_borrows, slice_refs
Gabriel Kaszewski
2026-06-04 17:58:01 +02:00
-
3bb2dbee19
ci: split workflows — Gitea tests only, GitHub tests + Docker push
Gabriel Kaszewski
2026-06-04 17:48:37 +02:00
-
b0bfc149e1
ci: build + push Docker image to ghcr.io on master/tags
Gabriel Kaszewski
2026-06-04 17:47:04 +02:00
-
7e8a1b8379
feat: batteries-included deployment — compose, .env.example, sane defaults
Gabriel Kaszewski
2026-06-04 17:32:34 +02:00
-
4bd8dcbf05
feat: wrapup wow — animated counters, scroll-reveal, fun facts, component split, budget formatting
Gabriel Kaszewski
2026-06-04 17:15:35 +02:00
-
ebf9a9f4a8
feat: replace CSS bar charts with recharts, fix label readability
Gabriel Kaszewski
2026-06-04 17:04:29 +02:00
-
a76386345f
feat: SPA polish — wrapup sections, shareable card, webhook instructions, blocked merge
Gabriel Kaszewski
2026-06-04 16:56:09 +02:00
-
49728f8cd7
fix: fall back to converted extensions in object storage get
Gabriel Kaszewski
2026-06-04 16:22:57 +02:00
-
5334312d64
refactor: extract reindex + enrichment logic from handlers into use cases
Gabriel Kaszewski
2026-06-04 16:09:35 +02:00
-
81a377cbb2
docs: proper SPA readme
Gabriel Kaszewski
2026-06-04 15:58:03 +02:00
-
689c8a9ac3
docs: add hexagonal architecture mermaid diagram
Gabriel Kaszewski
2026-06-04 15:52:38 +02:00
-
5e6bc93a6a
feat: SPA quick wins — refresh, back nav, watchlist add, dates, haptics, export
Gabriel Kaszewski
2026-06-04 15:45:31 +02:00
-
4a3a99c6d2
fix: disable vaul repositionInputs to fix iOS keyboard in drawers
Gabriel Kaszewski
2026-06-04 15:11:16 +02:00
-
dacc057af6
fix: lazy-load wrapup backgrounds, cap sqlite pool to 4 connections
Gabriel Kaszewski
2026-06-04 14:57:47 +02:00
-
01c1082290
feat: SPA bug fixes, interactivity, federation badges, admin reindex
Gabriel Kaszewski
2026-06-04 14:43:41 +02:00
-
bd7dc648c4
feat: search reindex, worker improvements, person IDs, user display names
Gabriel Kaszewski
2026-06-04 14:43:28 +02:00
-
af8e58aeb8
fix: use avatar/banner URLs directly, not through posterUrl()
Gabriel Kaszewski
2026-06-04 04:30:38 +02:00
-
fd9a053702
fix: exclude spa/.env from docker build to prevent baked localhost URLs
Gabriel Kaszewski
2026-06-04 04:27:02 +02:00
-
092e769641
fix: 401 redirect uses /app/login instead of /login
Gabriel Kaszewski
2026-06-04 04:22:20 +02:00
-
b20d23fbb3
fix: exclude spa/node_modules and spa/dist from docker context
Gabriel Kaszewski
2026-06-04 04:21:25 +02:00