Commit Graph
2190 Commits
Author SHA1 Message Date
Bergasha 6a76b9eafe Merge branch 'release/v2' into fix/v2-media-server-widget 2026-08-19 16:55:15 +10:00
Bergasha 76ba13fbad Address Codex review feedback on PR #6627
- Classify IPv4/IPv6 link-local addresses (169.254.0.0/16, fe80::/10) as
  LAN in Jellyfin location parsing - they can't traverse a router, so a
  false WAN reading was possible for common autoconfig/link-local sessions.
- Fix portrait video resolution mislabeling - a 1080x1920 clip was
  classified off its long-axis height (1920) and showed as 1440p. Classify
  by the short axis instead so orientation doesn't flip the result.
- Raise the compact-mode status column breakpoint from 420 to 540px - at
  420 the fixed-width user (200px) and status (190px) columns left almost
  no room for the currentlyPlaying column, the widget's primary content.
- Document the new resolution indicator in the media-server widget docs.
2026-08-19 16:45:09 +10:00
Thomas 150d38be62 feat(docker): add endpoint filtering and streamline setup assistant (#6625)
* feat(docker): add endpoint filtering and setup assistant

* fix(docker): simplify environment setup

* test(docker): cover demo endpoint filtering

* refactor(docker): use accordion for setup suggestions

* fix(docker): use docker icon for setup assistant

* refactor(docker): simplify assisted service setup

* refactor(docker): reuse shared translations

* fix(docker): address review feedback
2026-08-19 08:45:07 +02:00
Thomas e842177d9b feat: port release-v2 experience improvements from #6582 (audited subset) (#6609) 2026-08-18 09:40:02 +02:00
Thomas Camlong 38fc5dd582 feat(custom-widgets): configure missing credentials 2026-08-17 15:47:42 +02:00
Thomas Camlong bd171bf73b fix(custom-widgets): reduce action menu file below architecture line limit 2026-08-17 08:39:29 +02:00
Thomas Camlong c53852fdb6 refactor(ui): adopt Mantine Marquee and drop mount guards
Rebuild the integration marquee on Mantine's Marquee, SimpleGrid and
ThemeIcon instead of the hand-rolled grid, track and keyframes, and
reduce the stylesheet to the mask and reduced-motion rule.

Drop the useMounted guards from the login form and let the buttons rely
on the pending state alone, and use Group for the restore flow's file
summary.
2026-08-17 01:15:45 +02:00
Thomas Camlong 206905ea2d feat(workshop): rebuild install and publish as pages
Replace the stacked install modals (browse -> details -> import review)
with page-based flows so the primary action is always reachable:

- /manage/custom-widgets/workshop browses submissions as a card grid
  with large previews, sitting in a tab next to the installed widgets
- /manage/custom-widgets/workshop/[id] merges the listing, security
  review and source setup onto one page with a sticky install footer
- /manage/custom-widgets/publish/[id] replaces the publish modal
- /manage/workshop redirects; its navbar entry is gone
- the Custom CSS picker collapses from three modals to one

Extract useCustomWidgetImport and ImportReviewContent so the Workshop
page and the file/clipboard dialog share one import pipeline.

Votes now show the viewer's own choice filled Reddit-style, backed by a
new user-votes query, and screenshots get a zoomable lightbox.

Rework the installed list onto ManageCollectionItem: show the widget
description, replace the cryptic "JSX - 2" badge with plain request and
origin facts, and swap the toggle and bare pencil for a status badge,
a labelled Edit button and a menu entry for enable/disable.

Fixes found while reviewing:

- importing could run twice and duplicate a widget; guard on pending and
  succeeded, and return to the installed list instead of the heavy edit
  form
- a background refetch of the submission (window focus, or the
  invalidation a vote triggers) reset the source setup and silently wiped
  part-typed credentials; key the reset on the sources, not the object
- breadcrumbs raised MISSING_MESSAGE for unmapped dynamic segments; fall
  back to the raw segment via t.has
- publishing had no in-flight guard and could post duplicate listings
- tooltips on disabled vote and report controls never fired, making the
  sign-in hint unreachable
2026-08-17 01:14:38 +02:00
Thomas Camlong 50537d077c feat(custom-widgets): export legacy definitions 2026-08-16 23:33:07 +02:00
Thomas Camlong 229a559aff fix: replace Workshop detail with import review 2026-08-16 23:16:29 +02:00
Thomas Camlong 4e514ab151 fix: show Workshop voting as net score 2026-08-16 23:15:09 +02:00
Thomas Camlong 960551f573 feat: simplify Workshop widget installation 2026-08-16 23:11:52 +02:00
Thomas Camlong 304ea089a2 fix: resolve backup migrations in development 2026-08-16 22:32:05 +02:00
Thomas Camlong 199f6ffc3b fix: run custom migrations on backup restore 2026-08-16 22:25:15 +02:00
Thomas Camlong 7e569bff4c fix: skip restore confirmation during onboarding 2026-08-16 22:10:12 +02:00
ajnart 3237d5953f fix(board): render widget options above grid resize handles
The widget options ActionIcon rendered inside the widget Card, whose
containerType: size creates a stacking context, trapping its zIndex and
letting the dnd-kit resize handles paint over and block it.

Hoist BoardItemMenu out of the Card to the item root (same layer as the
title badge) and raise it to zIndex 30, above the handles (20). Error
recovery after edits is preserved via resetKeys=[item], which replaces
the resetErrorBoundary prop the in-card menu used to receive.
2026-08-16 14:15:14 +02:00
Thomas 4505ce96c9 fix: refine dashboard interactions and widget options (#6597)
* fix: refine dashboard item interactions

* fix board interactions and widget options

* feat: improve bookmark selection

* fix: address dashboard review feedback
2026-08-15 10:44:37 +02:00
Thomas Camlong b491d45fdc feat: improve workshop publishing flow 2026-08-14 23:16:39 +02:00
Thomas Camlong 168091134d fix: bound preview query context 2026-08-14 22:46:15 +02:00
Thomas Camlong 28e58a5a5c fix: expose assistant provider errors 2026-08-14 22:37:28 +02:00
Thomas Camlong 3c533f2d96 fix: isolate downloads stats state 2026-08-14 22:07:12 +02:00
Thomas Camlong 2e3e654748 fix: improve auth form semantics 2026-08-14 21:22:14 +02:00
Thomas Camlong 409e8ed71a feat: unify authentication pages 2026-08-14 21:18:06 +02:00
Thomas Camlong 95489b692c fix: derive workshop web url 2026-08-14 21:10:34 +02:00
Thomas Camlong b8c06a8622 feat(dev): support direct environment overrides 2026-08-14 21:09:41 +02:00
Thomas Camlong 498d781e19 fix: isolate node instrumentation 2026-08-14 20:16:34 +02:00
ajnart fe41382074 test: remove obsolete advanced focus assertion 2026-08-14 14:47:02 +02:00
Thomas Camlong c851609041 fix: stabilize media streams and edit hover 2026-08-14 14:33:02 +02:00
ajnart 03338b1755 revert: remove advanced mode from compact widgets 2026-08-14 13:30:10 +02:00
ajnart 8a44451c72 docs: simplify advanced view guidance 2026-08-14 12:11:33 +02:00
ajnart c4f6d98300 fix: stabilize release e2e flows 2026-08-14 12:11:33 +02:00
ajnart 4e193da3a4 fix: preserve release advanced widget support 2026-08-14 12:11:33 +02:00
Thomas Camlong 8775597d5a feat: expand advanced widget experiences 2026-08-14 12:11:33 +02:00
ajnart 339a0d8e2b docs: simplify assistant guide 2026-08-14 12:11:33 +02:00
Thomas 42bf55641b docs: align v2 stack documentation (#6564) 2026-08-14 12:11:33 +02:00
ajnart 741e641bd2 fix: address onboarding review findings 2026-08-14 11:32:13 +02:00
Thomas Camlong a11c53ebf7 fix(boards): preview container contents 2026-08-14 11:32:13 +02:00
ajnart e55def9b60 style: format restored board creator 2026-08-14 11:32:13 +02:00
Thomas Camlong fc66211dd2 fix(onboarding): preserve restored board login target 2026-08-14 11:32:13 +02:00
Thomas Camlong 174e0a7606 fix(onboarding): streamline backup restore 2026-08-14 11:32:13 +02:00
Thomas Camlong f1ce0fffad fix(onboarding): accept self-hosted addresses 2026-08-14 11:32:13 +02:00
Thomas Camlong 9c5ab62b3a fix(onboarding): simplify detected app cards 2026-08-14 11:32:13 +02:00
ajnart f7d5fde8a9 style(docs): format Docker labels guide 2026-08-14 11:32:13 +02:00
ajnart e1280f311c fix(onboarding): restore e2e flow 2026-08-14 11:32:13 +02:00
Thomas Camlong cca6de2b86 fix(onboarding): align detected app setup 2026-08-14 11:32:12 +02:00
Thomas Camlong c24ccde404 fix(onboarding): highlight detected apps 2026-08-14 11:32:12 +02:00
Thomas Camlong d28dd380e5 docs(onboarding): document Docker label discovery 2026-08-14 11:32:12 +02:00
Thomas Camlong 7b1a801ab8 feat: consolidate onboarding 2026-08-14 11:32:12 +02:00
Thomas Camlong 8239a631f2 feat: consolidate onboarding 2026-08-14 11:32:12 +02:00
Thomas Camlong 775ae0147c feat: enhance onboarding 2026-08-14 11:32:12 +02:00