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
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
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
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
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
517a18da8a
db: person enrichment migrations + adapter updates
2026-06-11 13:34:10 +02:00
7df24a19ee
domain: add person enrichment fields, event, port
2026-06-11 13:30:19 +02:00
5dc90724d3
feat: JSON import + mapping presets in SPA
...
- Accept .json files in import upload, send format to backend
- Backend endpoint PUT /import/sessions/{id}/profile/{profile_id}
- Load saved presets on mapping step, auto-apply and skip to preview
- Save current mapping as preset on confirm step
- Delete presets from mapping step
2026-06-11 12:58:08 +02:00
f10b114e83
feat: expose search param on user profile API endpoint
2026-06-11 12:37:20 +02:00
87fcdc12ca
clean up
CI / Check / Test (push) Successful in 37m41s
2026-06-10 11:02:18 +02:00
6e21ec115d
fmt
CI / Check / Test (push) Has been cancelled
2026-06-10 03:24:17 +02:00
deae83cfd1
fix: Password uses char count not byte length, redact Debug output, tighten test assertion
CI / Check / Test (push) Failing after 49s
2026-06-10 03:23:23 +02:00
c4d6b68ef9
refactor: enforce password min-length via domain Password value object
CI / Check / Test (push) Failing after 49s
2026-06-10 03:15:43 +02:00
d8cff33679
refactor: move profile-field count validation into domain UserProfile
2026-06-10 03:13:19 +02:00
e9aa6131ae
refactor: extract wrapup analytics into domain::services::wrapup_analyzer
2026-06-10 03:10:44 +02:00
43f6c5679d
fmt
CI / Check / Test (push) Successful in 15m39s
2026-06-10 02:56:56 +02:00
956e51530e
refactor: move domain inline tests to separate files under tests/
...
CI / Check / Test (push) Failing after 44s
Match the application crate convention: each source file references its
tests via #[cfg(test)] #[path = "tests/filename.rs"] mod tests; with
the test code in a sibling tests/ directory.
- events.rs -> tests/events.rs
- value_objects.rs -> tests/value_objects.rs
- models/mod.rs -> models/tests/mod.rs (renamed from tests.rs)
- models/person.rs -> models/tests/person.rs
- models/goal.rs -> models/tests/goal.rs
- models/watch_event.rs -> models/tests/watch_event.rs
- services/review_history.rs -> services/tests/review_history.rs
2026-06-10 02:55:47 +02:00
d389e26e39
fix: broadcast goal progress on review log, fix goal handler security gaps
...
CI / Check / Test (push) Has been cancelled
- Broadcast GoalUpdated AP note after ReviewLogged so federated goal
progress reflects the new review count without requiring a manual goal edit
- Add attribution check in GoalObjectHandler::on_update (mirrors
review_handler) to prevent any remote actor from overwriting another's goal
- Implement on_actor_removed in GoalObjectHandler via new
RemoteGoalRepository::remove_all_by_actor — remote goals were never
cleaned up when an actor unfollowed or was deleted
- Add remove_all_by_actor to SQLite, Postgres, Noop, and test Panic impls
2026-06-10 02:40:25 +02:00