306f4489fd
fix: hoist TooltipProvider to app root, remove per-component instances
2026-07-10 00:25:04 +02:00
5d4622e046
feat: tooltip with concrete date on relative timestamps in SPA
2026-07-10 00:22:14 +02:00
2e2adef5e0
fix: profile shows only own reviews, federation display name in community
...
- diary API accepts user_id filter, profile page passes it
- movie social feed joins ap_remote_actors for handle resolution
- COALESCE prefers actor handle for remote reviews, email for local
2026-07-10 00:19:23 +02:00
206ad44e82
fix: auto-set WatchMedium::MediaServer on webhook watch confirms
2026-07-10 00:07:52 +02:00
8eecd06fb8
docs: update README + architecture for WatchMedium and review editing
2026-07-10 00:05:36 +02:00
29cc68b07c
feat: add WatchMedium field, general review editing, configurable deploy
...
CI / Check / Test (push) Failing after 27m0s
- WatchMedium enum (cinema/streaming/tv/physical_media/download/media_server/other)
- PATCH /api/v1/reviews/:id partial update (rating, comment, watched_at, watch_medium)
- edit_review use case w/ ownership + remote review guard, best-effort AP Update broadcast
- SPA: icon picker, edit sheet (long-press mobile / pencil desktop), watch medium badge
- shared ReviewFormFields, EditableContextMenu, parse_watched_at/format_watched_at
- deploy.sh parameterized (--features, --tag), CORS allows PATCH
- CONTEXT.md glossary, ADR-0001 general review editing
2026-07-10 00:01:14 +02:00
9794babe06
feat: implement federated profile handling with support for remote actor URLs across multiple components
CI / Check / Test (push) Successful in 1h7m53s
2026-07-01 00:13:28 +02:00
d7fbf8d9e2
feat: enhance review handling by adding actor URL support across multiple components
CI / Check / Test (push) Successful in 1h3m53s
2026-06-30 03:34:52 +02:00
9f6ba55afc
fix: update SQL queries to filter reviews with null remote_actor_url
2026-06-30 02:57:58 +02:00
10c811d9a7
docs: update README and architecture diagrams to reflect new ActivityPub features and user account management
CI / Check / Test (push) Has been cancelled
2026-06-30 02:31:40 +02:00
5ae38c834a
making it AP complaint
CI / Check / Test (push) Has been cancelled
2026-06-30 02:25:42 +02:00
943a0abe54
refactor: reorganize HtmlPageContext and update imports across modules
CI / Check / Test (push) Failing after 46m33s
2026-06-30 00:07:20 +02:00
9c06fbd33e
refactor
2026-06-29 23:54:59 +02:00
bb17beb80d
restructure
2026-06-29 23:38:53 +02:00
7faf14fb2f
docs: update project description to reflect current scope
CI / Check / Test (push) Successful in 43m3s
2026-06-12 12:53:15 +02:00
ddb5966c9b
docs: mention Insomnia collection in API section
CI / Check / Test (push) Has been cancelled
2026-06-12 12:51:24 +02:00
4ec231017e
docs: badges, TOC, quick start, env var table, screenshots
CI / Check / Test (push) Has been cancelled
2026-06-12 12:46:31 +02:00
fab236688b
screenshots
CI / Check / Test (push) Has been cancelled
2026-06-12 12:31:13 +02:00
4683a408d7
fix(spa): use import type for UpdateUserSettingsRequest
CI / Check / Test (push) Successful in 38m33s
2026-06-12 02:29:50 +02:00
6d4c70553a
fix: remove unused UserFederationSettingsQuery import in worker/db.rs
2026-06-12 02:28:02 +02:00
ca7ca51949
feat: per-entity federation privacy toggles for reviews and watchlist
...
- add federate_reviews + federate_watchlist to UserSettings (default true)
- new UserFederationSettingsQuery port with FederationFlags struct
- remove get_user_federate_goals from LocalApContentQuery
- gate ReviewLogged, ReviewUpdated, WatchlistEntryAdded, on_poster_synced on flags
- goals gating migrated to UserFederationSettingsQuery
- ReviewDeleted and WatchlistEntryRemoved ungated (tombstones always fire)
- sqlite + postgres migrations and adapter impls
- settings API and SPA toggles
2026-06-12 02:26:01 +02:00
33aa5bdab3
fmt
CI / Check / Test (push) Successful in 38m21s
2026-06-12 01:46:16 +02:00
b844339795
fix(domain): ImportSession::new() generates own ID, add from_persistence()
2026-06-12 01:41:03 +02:00
cedb13d7a8
fix(domain): typed VOs in MovieEnrichmentRequested and PersonEnrichmentRequested
2026-06-12 01:34:47 +02:00
aec5f6b058
feat(dependencies): add async-stream and bytes to Cargo.toml and Cargo.lock
...
CI / Check / Test (push) Has been cancelled
refactor(adapters): update diary.rs to use BoxStream from futures
2026-06-12 01:20:45 +02:00
d9234ecd11
fix(presentation): log errors in diary export stream
2026-06-12 01:18:54 +02:00
010ee404c8
feat(presentation): pipe diary export stream to Body::from_stream
2026-06-12 01:15:23 +02:00
d4c42f8567
feat(application): export_diary::execute returns BoxStream<Bytes>
2026-06-12 01:11:36 +02:00
9c44330f14
feat(adapters): stream_user_history in SQLite and Postgres diary adapters
2026-06-12 01:10:21 +02:00
2fa118570f
feat(export): stream_entries — CSV/JSON streaming via BoxStream<Bytes>
2026-06-12 01:08:11 +02:00
ded7517a8a
feat(domain): DiaryRepository::stream_user_history, DiaryExporter::stream_entries
2026-06-12 01:05:32 +02:00
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