|
|
bf272bf8d9
|
perf(import): parallelize row processing with JoinSet + Semaphore (limit 10)
CI / Check / Test (push) Has been cancelled
|
2026-06-12 00:40:27 +02:00 |
|
|
|
6f34b7b5ec
|
fix(worker): nack on transient handler failures, ack on permanent
CI / Check / Test (push) Has been cancelled
|
2026-06-12 00:30:06 +02:00 |
|
|
|
17d4de461b
|
feat(domain): DomainError::is_transient() for retry classification
|
2026-06-12 00:27:16 +02:00 |
|
|
|
40cb15e7cb
|
refactor(postgres): split fat PostgresRepository into per-port structs
CI / Check / Test (push) Has been cancelled
|
2026-06-12 00:00:15 +02:00 |
|
|
|
c80287bb9e
|
refactor(presentation): use split sqlite repos in api_test
|
2026-06-11 23:52:14 +02:00 |
|
|
|
06ab5c8df1
|
refactor(sqlite): split fat SqliteMovieRepository into per-port structs
|
2026-06-11 23:49:55 +02:00 |
|
|
|
57520c00f3
|
refactor: move AppContext to presentation crate, structurally enforce boundary
CI / Check / Test (push) Successful in 39m33s
|
2026-06-11 23:18:28 +02:00 |
|
|
|
b5cc7f8371
|
refactor(search): fix test to not use AppContext
|
2026-06-11 23:00:01 +02:00 |
|
|
|
9ca5ada924
|
refactor(auth): LoginDeps, RegisterDeps, RefreshDeps, RegisterAndLoginDeps, RefreshSessionCleanupJob
|
2026-06-11 22:58:42 +02:00 |
|
|
|
70d1f10e3d
|
refactor(users): fix test files to not use AppContext
|
2026-06-11 22:49:44 +02:00 |
|
|
|
61980b0cfb
|
refactor(users): GetProfileDeps, UpdateProfileDeps, scoped Arc deps
|
2026-06-11 22:47:17 +02:00 |
|
|
|
7bf5c47f5b
|
refactor(diary): DeleteReviewDeps, GetMovieSocialPageDeps, GetActivityFeedDeps
|
2026-06-11 22:37:35 +02:00 |
|
|
|
ddf100cfc2
|
refactor(wrapup): scoped deps — HandleWrapUpRequestedDeps, flat-Arc jobs
|
2026-06-11 22:29:30 +02:00 |
|
|
|
cdff0de53d
|
refactor(movies): collapse single-field deps structs to Arc params
|
2026-06-11 22:17:09 +02:00 |
|
|
|
1e62f12903
|
refactor(movies): EnrichMovieDeps, ReindexSearchDeps, SyncPosterDeps, SearchReindexHandler, EnrichmentStalenessJob
|
2026-06-11 22:13:25 +02:00 |
|
|
|
66bd138927
|
refactor(person): EnrichPersonDeps + GetPersonDeps, PersonEnrichmentHandler
|
2026-06-11 22:05:38 +02:00 |
|
|
|
b29f3020e6
|
refactor(integrations): IngestWatchEventDeps, scoped Arc deps, WatchEventCleanupJob
|
2026-06-11 22:01:15 +02:00 |
|
|
|
76edd52bb0
|
refactor(import): fix test files to not use AppContext
|
2026-06-11 21:51:24 +02:00 |
|
|
|
b5ff43d9dc
|
refactor(import): scoped Arc deps, ImportSessionCleanupJob
|
2026-06-11 21:49:15 +02:00 |
|
|
|
b552c1d156
|
refactor(watchlist): WatchlistAddDeps, scoped Arc deps
|
2026-06-11 21:40:48 +02:00 |
|
|
|
f006ba00a8
|
refactor(goals): scoped Arc deps instead of AppContext
|
2026-06-11 21:36:11 +02:00 |
|
|
|
2b295e10ba
|
refactor(search): scoped Arc dep instead of AppContext
|
2026-06-11 21:32:19 +02:00 |
|
|
|
20ac0d3adf
|
fmt
CI / Check / Test (push) Successful in 38m10s
|
2026-06-11 14:44:53 +02:00 |
|
|
|
8ac87a3735
|
refactor: split jobs.rs into per-context modules
|
2026-06-11 14:44:23 +02:00 |
|
|
|
4f0f44dec3
|
test: refresh token rotation, logout revocation, login refresh token
|
2026-06-11 14:42:39 +02:00 |
|
|
|
96c753c2c6
|
spa: silent refresh on 401, persistent login
|
2026-06-11 14:39:10 +02:00 |
|
|
|
822f3f9d9c
|
api: refresh + logout endpoints, update login response
|
2026-06-11 14:37:09 +02:00 |
|
|
|
55feaa353f
|
app: refresh/logout use cases, update login with refresh token
|
2026-06-11 14:35:53 +02:00 |
|
|
|
3a3f3b3889
|
db: refresh_sessions migration + SQLite/Postgres adapters
|
2026-06-11 14:31:46 +02:00 |
|
|
|
ef9ecbae06
|
domain: add RefreshSession model + repository port
|
2026-06-11 14:29:43 +02:00 |
|
|
|
db285b513b
|
fix: swap import/export icons
|
2026-06-11 14:13:51 +02:00 |
|
|
|
2617c77b42
|
feat: add arrow navigation to horizontal scroll strips
|
2026-06-11 14:12:42 +02:00 |
|
|
|
e618e1aa84
|
feat: horizontal poster strip for person filmography
|
2026-06-11 14:10:20 +02:00 |
|
|
|
7dc372a7b6
|
feat: redesign person page with Cards, SwipeTabs, collapsible bio
|
2026-06-11 14:07:27 +02:00 |
|
|
|
e39fcf6802
|
feat: show person age calculated from birthday
|
2026-06-11 14:04:52 +02:00 |
|
|
|
b09ef4686a
|
fmt
|
2026-06-11 14:03:05 +02:00 |
|
|
|
2074a2244e
|
refactor: move person enrichment staleness check to application layer
|
2026-06-11 14:01:44 +02:00 |
|
|
|
338ecb71c8
|
perf: reduce worker concurrency to 4 to ease SQLite write contention
|
2026-06-11 13:55:48 +02:00 |
|
|
|
8cb90b256c
|
fix: guard also_known_as access when undefined
|
2026-06-11 13:52:44 +02:00 |
|
|
|
c05087a6c7
|
fmt
|
2026-06-11 13:51:33 +02:00 |
|
|
|
0fdc79af23
|
fix: add enrichment columns to test schema
|
2026-06-11 13:51:14 +02:00 |
|
|
|
262ba5ca39
|
fix: collapse nested if per clippy
|
2026-06-11 13:48:08 +02:00 |
|
|
|
57c720b22f
|
fix: collapse nested if per clippy
|
2026-06-11 13:47:32 +02:00 |
|
|
|
53b7f730cb
|
refactor: drop EnrichmentHandler alias, use MovieEnrichmentHandler directly
|
2026-06-11 13:46:30 +02:00 |
|
|
|
e8fa24bf9b
|
refactor: split tmdb-enrichment into client, movie_handler, person_handler
|
2026-06-11 13:46:00 +02:00 |
|
|
|
7437ed89ad
|
fix: handle PersonEnrichmentRequested in test fakes
|
2026-06-11 13:43:37 +02:00 |
|
|
|
b2a41db290
|
feat: rich person detail page with bio, dates, links
|
2026-06-11 13:42:04 +02:00 |
|
|
|
9b932cde8e
|
feat: wire person enrichment handler, update API DTOs
|
2026-06-11 13:40:16 +02:00 |
|
|
|
a68e19aad7
|
feat: TMDB person enrichment client + event handler
|
2026-06-11 13:38:07 +02:00 |
|
|
|
371a3cdc46
|
app: person enrichment use case + staleness checks
|
2026-06-11 13:36:43 +02:00 |
|