8aa64ab174
fix: restrict swipe-tabs drag to touch-only, prevent ghost swipe after drawer close
CI / Check / Test (push) Failing after 8m25s
2026-07-10 22:52:50 +02:00
d84c54bb30
feat: page transitions, poster hover, star bounce, reveal scale-up
2026-07-10 22:51:09 +02:00
41bed3583d
feat: calendar diary view on profile ( #15 )
CI / Check / Test (push) Failing after 8m29s
2026-07-10 22:32:47 +02:00
0a8b52514d
feat: calendar diary view on profile ( #15 )
2026-07-10 22:22:13 +02:00
a0c0ba1c5d
rename profile Trends tab to Stats
CI / Check / Test (push) Failing after 8m35s
2026-07-10 22:01:56 +02:00
94cab1ea7c
fix: lock body scroll + remove scrollbar on wrapup share card
CI / Check / Test (push) Has been cancelled
2026-07-10 21:58:38 +02:00
1c81d7768c
fix: duplicate count in wrapup watch medium display
2026-07-10 21:53:21 +02:00
07df6fe207
review detail sheet on diary/profile/community, wrapup period presets
2026-07-10 21:51:42 +02:00
587dcc04de
feat: richer profile stats, wrapup min-count filter, watch medium distribution
...
CI / Check / Test (push) Has been cancelled
- filter wrapup top directors/actors with count < 2
- add watch_medium to wrapup report + adapters
- profile trends: genre breakdown, rating histogram, watch medium dist
- fix unused StarDisplay import in movie detail
2026-07-10 21:38:08 +02:00
498f3b1818
edit sheet delete btn, fix medium icons, 44px touch targets, fix drag leak on drawer close
CI / Check / Test (push) Failing after 8m44s
2026-07-10 17:46:56 +02:00
0ee2e04fe5
refactor(spa): collapse api/hooks telescope, merge review sheets, extract tab+list modules
...
- merge lib/api/* + hooks/use-* → features/* domain modules
- log-sheet + edit-review-sheet → review-sheet with mode discriminant
- index.tsx → feed-tab, watchlist-tab, queue-tab
- social actor-list pattern → ActorList component
- movie detail inline sections → community-reviews, viewing-history
2026-07-10 17:38:58 +02:00
f584bcd724
fix: diary page filters by authenticated user, excludes federated reviews
2026-07-10 00:35:51 +02:00
925f74bb3d
feat: auto-grow comment textarea, review detail sheet for full text
...
- textarea grows as you type instead of fixed 3 rows
- tap truncated comment to open detail sheet with full selectable text
- review detail sheet shows poster, rating, medium, date, full comment
2026-07-10 00:33:49 +02:00
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
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
4683a408d7
fix(spa): use import type for UpdateUserSettingsRequest
CI / Check / Test (push) Successful in 38m33s
2026-06-12 02:29:50 +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
96c753c2c6
spa: silent refresh on 401, persistent login
2026-06-11 14:39:10 +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
8cb90b256c
fix: guard also_known_as access when undefined
2026-06-11 13:52:44 +02:00
b2a41db290
feat: rich person detail page with bio, dates, links
2026-06-11 13:42:04 +02:00
549923b92e
feat: show relative watched date and comment preview in profile entries
2026-06-11 13:03:49 +02:00
3cbb406ea7
feat: add export route to settings in route tree
2026-06-11 13:01:12 +02:00
21cc6ed437
fix: move useDocumentTitle before early returns (Rules of Hooks)
2026-06-11 12:59:13 +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
9a894c3a95
refactor: move export to its own settings page under Data group
2026-06-11 12:46:46 +02:00
acc20d2f43
feat: dynamic page titles across SPA
...
useDocumentTitle hook sets document.title per page.
Dynamic: movie name, person name, username, wrapup year.
Static: diary, profile, search, social, all settings pages.
2026-06-11 12:45:01 +02:00
a95be0b131
feat: add search input on user profile pages
2026-06-11 12:39:14 +02:00
c020135cd1
feat: move diary export to settings page with CSV/JSON options
2026-06-11 12:36:03 +02:00
ad55897871
i18n: add export and profile search translations
2026-06-11 12:34:29 +02:00
b882569ee1
fix: use correct i18n key for comment placeholder in queue tab
CI / Check / Test (push) Has been cancelled
2026-06-10 02:47:04 +02:00
988e15eac6
fix: add missing common.edit i18n key
CI / Check / Test (push) Successful in 18m44s
2026-06-08 22:38:54 +02:00
fff5f4af2f
feat: goals — "watch N movies in YEAR" with progress bar
...
Domain: Goal entity, UserSettings (federation toggle), RemoteGoalEntry.
Ports: GoalRepository, UserSettingsRepository, RemoteGoalRepository.
Adapters: sqlite + postgres repos, migrations, AP content query extensions.
Application: CRUD use cases (create/update/delete/get/list), settings use cases.
API: 7 endpoints (/goals CRUD, /users/{id}/goals, /settings) with utoipa docs.
Federation: GoalObject (Note + goal discriminator), outbound broadcast with
per-user toggle, inbound GoalObjectHandler in CompositeObjectHandler.
SPA: API client + hooks, GoalCard (shadcn Card+Progress+DropdownMenu),
GoalSheet (Drawer), profile integration (editable own, read-only others),
federation toggle in settings (Switch).
Classic HTML: glassmorphic goal card on profile, Frutiger Aero styling.
Progress computed from existing reviews — backwards compatible.
2026-06-08 22:37:52 +02:00
213f9a2433
Remove backdrop filter from input slot in aero-theme.css for improved performance
CI / Check / Test (push) Successful in 17m46s
2026-06-08 21:05:16 +02:00
6a10ba15c1
feat(spa): comment field in queue review, date picker in log sheet
CI / Check / Test (push) Successful in 17m20s
2026-06-04 22:35:30 +02:00
4bd8dcbf05
feat: wrapup wow — animated counters, scroll-reveal, fun facts, component split, budget formatting
CI / Check / Test (push) Failing after 6m25s
2026-06-04 17:15:35 +02:00
ebf9a9f4a8
feat: replace CSS bar charts with recharts, fix label readability
CI / Check / Test (push) Failing after 6m20s
2026-06-04 17:04:29 +02:00
a76386345f
feat: SPA polish — wrapup sections, shareable card, webhook instructions, blocked merge
CI / Check / Test (push) Failing after 6m35s
2026-06-04 16:56:09 +02:00
81a377cbb2
docs: proper SPA readme
CI / Check / Test (push) Failing after 6m21s
2026-06-04 15:58:03 +02:00
5e6bc93a6a
feat: SPA quick wins — refresh, back nav, watchlist add, dates, haptics, export
...
CI / Check / Test (push) Failing after 7m1s
- feed refresh button with spinning icon
- BackButton component using history.back()
- watchlist bookmark icon on search results
- timeAgo/shortDate date formatting (date-fns)
- haptic feedback on star rating, swipe-to-delete, review log
- global error toasts via QueryClient mutation defaults
- diary CSV export button
2026-06-04 15:45:31 +02:00
4a3a99c6d2
fix: disable vaul repositionInputs to fix iOS keyboard in drawers
CI / Check / Test (push) Failing after 6m35s
2026-06-04 15:35:00 +02:00