Depends on #549. Only the feat(web): … commit is new here; the other commits are #549.
This adds a UI for the grouped client ordering in #549. Before I polish it I'd like your take on the UX.
What it does
The Library gets a Client order sort mode that previews exactly what /applist sends:
- Custom apps (Desktop, Steam Big Picture, …) reorder by drag or up/down buttons, using the existing
/api/apps/reorderendpoint. - Groups move up and down, and each integration has a sort picker: name, recently played, or most played.
- A banner offers to turn on legacy ordering, since Moonlight otherwise sorts A to Z.
/api/appsgains aclient_orderfield so the preview never disagrees with the host.
| Grouped, Steam by most played | Grouping off |
|---|---|
| Steam by recently played | Dark | Mobile (390px) |
|---|---|---|
Screenshots are from the Vite dev server with a mocked API. Manual testing on a real host shortly.
Questions
- Placement: is a sort mode in the Library the right home, or would you rather have a separate section, e.g. under Integrations or Settings?
- Per-integration sort: in the Library group header (as here) or on each provider's Integrations card?
- Legacy ordering: is it OK for the Library to flip the global
legacy_orderingsetting with a "Turn on" button, or should it only link to Settings? - Anything you'd cut, to keep the Library simpler?
e2e coverage is in e2e/ui.spec.ts (library client order groups sources and saves the custom order).
🤖 Generated with Claude Code
Activity
14The Arch Linux CI failure isn't from this PR. The job never starts: .github/workflows/ci-archlinux.yml asks Docker for --cpus 8 --memory 16g, but the runner only has 4 CPUs (range of CPUs is from 0.01 to 4.00, as there are only 4 CPUs available). It fails the same way on #555. Changing it to --cpus 4, or giving the runner more CPUs, should fix it.
(Diagnosed with Claude Code.)
This pull request is a draft
Merging is unavailable until it is marked ready for review.
obviously claude generated so lmk if issues. Know its a big one