9215f3db69
workspace deps hygiene: minimal features, default-members sans tui; drop utoipa-scalar + /scalar; ci test --workspace; .sqlx dockerignore
2026-10-26 04:25:43 +01:00
ec2760fd48
chore: drop unused deps
2026-10-25 23:19:19 +01:00
9bf9342fc0
refactor: bootstrap crate, thin server/worker binaries
2026-10-25 21:16:38 +01:00
18c179e14c
chore: gate test helpers, code style, stricter clippy
2026-10-25 20:26:50 +01:00
12da356a40
refactor: fix HIGH+MEDIUM architectural violations from code review
...
HIGH: fix watch_medium data-loss bug, standardize error handling on
ApiError, fix dep direction (rss/template-askama no longer dep on
application), extract ImageFetcher port (remove reqwest from app layer),
move event construction from save_review to use case, extract
infra-wiring crate (DbPool/EventBusBackend dedup), deduplicate
presentation helpers (encode_error, export streaming, multipart parsing)
MEDIUM: split LocalApContentQuery god-trait 10→3 methods, dedup movie
resolution orchestration, add RemoteActorDto/PersonDto mappers, move
AppConfig to infra-wiring, fix SocialQueryPort Uuid→UserId, replace
stringly-typed api-types with domain enums, move count_reviews_in_year
to StatsRepository, dedup event publisher cfg blocks, extract
should_enrich, move group_by_month to application, dedup
count_local_posts, add FederationFlags Default, TUI input helper +
ShowError rename + typed auth errors, api-types cleanup
(UserSettingsDto/UserProfileBase/PreviewRowData)
102 files changed, -681 lines net
2026-07-10 02:08:39 +02:00
9c06fbd33e
refactor
2026-06-29 23:54:59 +02:00
d4c42f8567
feat(application): export_diary::execute returns BoxStream<Bytes>
2026-06-12 01:11:36 +02:00
7ef8912d69
feat: wrapup worker handler + auto-generate job
2026-06-02 22:13:08 +02:00
aadad3cfb0
feat: Jellyfin/Plex auto-import via watch queue
...
CI / Check / Test (push) Failing after 6m5s
Webhook ingestion from media servers — movies land in a pending
watch queue, user rates and confirms to create diary entries.
- domain: WatchEvent, WebhookToken models, MediaServerParser port
- adapters: jellyfin + plex parser crates, SQLite + Postgres repos
- application: ingest/confirm/dismiss/cleanup use cases, token mgmt
- presentation: webhook endpoints (bearer + query param auth),
watch queue + integrations settings HTML pages, OpenAPI docs
- worker: WatchEventCleanupJob (daily, 30d retention)
Movie resolution deferred to confirm — single canonical path
through log_review for enrichment, poster fetch, federation.
2026-06-02 17:34:16 +02:00
edc1f6c850
feat: domain mocks, TestContextBuilder, use case tests, factory pattern
...
- Add test-helpers feature to domain crate with in-memory mocks and panic stubs for all ports
- Add TestContextBuilder to application crate for zero-database test setup
- Add unit tests for log_review, register, login, add_to_watchlist, delete_review use cases
- Extract DatabaseAdapters factory and build_* helpers into presentation/src/factory.rs
- Refactor wire_dependencies() in main.rs to use factory module
2026-05-14 00:41:25 +02:00
53df90ab1f
feat: MovieDto enrichment, movie detail page, PWA, watchlist, watchlist federation
2026-05-13 00:23:45 +02:00
b2a2aa4262
movie detail page + importer architecture fix
2026-05-10 23:59:26 +02:00
f2f1317660
importer feature
2026-05-10 21:23:56 +02:00
05b44e17a1
background worker
2026-05-10 11:12:52 +02:00
7e7c1ee1f4
Refactor movie review logging and resolution strategies
...
- Introduced `MovieResolver` and associated strategies for resolving movie data based on external metadata ID, manual title, or manual entry.
- Updated `log_review` use case to utilize the new `MovieResolver` for fetching movie details.
- Simplified the `LogReviewData` structure and its conversion to `LogReviewCommand`.
- Enhanced error handling for date parsing in review forms and requests.
- Updated dependencies in `Cargo.toml` and `Cargo.lock` to include necessary crates for async operations.
- Added tests for new functionality in `movie_resolver.rs` to ensure correct behavior of resolution strategies.
2026-05-04 15:08:04 +02:00
b026a184c2
application layer
2026-05-04 01:19:59 +02:00
810bad1126
init domain
2026-05-04 00:26:10 +02:00