Commit graph

8133 commits

Author SHA1 Message Date
Murilo Scolari
85af24489c fix(ui): improve debrid cloud caching visual feedback and disable premature resume
Some checks are pending
Build / build (ubuntu-latest) (push) Waiting to run
Build / build (windows-2022) (push) Waiting to run
Build / build-production (ubuntu-latest) (push) Waiting to run
Build / build-production (windows-2022) (push) Waiting to run
Text Integrity / text-integrity (push) Waiting to run
2026-11-01 05:56:09 -03:00
Murilo Scolari
70cfda9a0e fix(torbox): handle uncached web downloads and track cloud caching progress 2026-11-01 05:28:11 -03:00
Murilo Scolari
18c00730d4 ci: register fork sync workflow 2026-11-01 05:07:04 -03:00
Murilo Scolari
837b482ac8 chore: configure fork publish target and automated upstream sync workflow 2026-11-01 04:49:18 -03:00
Murilo Scolari
64ac69a37b Merge branch 'feat/torbox-web-downloads' 2026-11-01 04:45:00 -03:00
Murilo Scolari
d8ea5117f0 feat: add TorBox web download support for supported HTTP hosters 2026-11-01 04:43:53 -03:00
Murilo Scolari
b2a2feea1b feat(big-picture): add in-place archive extraction toggle in UI 2026-11-01 04:01:52 -03:00
Murilo Scolari
6189bf5373 feat(renderer): add in-place archive extraction toggle in UI 2026-11-01 04:01:52 -03:00
Murilo Scolari
ba5bb0f688 feat(i18n): add translations for in-place archive extraction 2026-11-01 04:01:52 -03:00
Murilo Scolari
993852a96e feat(main): respect user preference for in-place archive extraction 2026-11-01 04:01:52 -03:00
Murilo Scolari
6e70dc3f39 feat(types): add in-place archive extraction preference and option 2026-11-01 04:01:52 -03:00
Eight
17158ab3e3
Merge pull request #3025 from hydralauncher/fix/global-leaderboards-flag
fix(leaderboards): hide all leaderboard UI when GLOBAL_LEADERBOARDS is off
2026-10-30 20:02:34 -03:00
Moyasee
1da653ab9e style: format leaderboard files that came in from main 2026-10-31 00:46:31 +02:00
Moyasee
73561fe05a Merge branch 'main' of https://github.com/hydralauncher/hydra into fix/global-leaderboards-flag
# Conflicts:
#	src/renderer/src/pages/game-details/leaderboard/leaderboard-section.tsx
2026-10-31 00:44:09 +02:00
Eight
dd73c0cf89
Merge pull request #3022 from hydralauncher/feature/lbx-1360
feat(leaderboards): polish the Rankings page and the game page card (LBX-1360)
2026-10-30 19:42:18 -03:00
eightlindao
1dbc26b4e4 Revert "feat(leaderboards): hide the game page ranking behind the rankings flag (LBX-1360)"
hydralauncher/hydra#3025 already covers this, along with the other leaderboard surfaces.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 19:30:16 -03:00
eightlindao
9193a38776 feat(leaderboards): hide the game page ranking behind the rankings flag (LBX-1360)
The card rendered for everyone. It now follows GLOBAL_LEADERBOARDS, like the
Rankings page, so nothing shows or loads until the feature is released.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 19:27:46 -03:00
Moyasee
c49b4898d5 fix(leaderboards): keep mark all as read usable and cancel the flag request
When every loaded notification is filtered out by a feature flag, the
sidebar still shows the server's unread count, but both bulk actions were
disabled. Mark all as read now stays enabled while any loaded API
notification is unread, so that count can be cleared.

The /features request in publishLeaderboardNotifications now takes the
resync abort signal, so a canceled refresh does not hold up the next batch.
2026-10-31 00:25:48 +02:00
Moyasee
ffff3f8548 fix(leaderboards): hide all leaderboard UI when GLOBAL_LEADERBOARDS is off
The sidebar entry and the /leaderboards route already respected the flag,
but the game page Ranking section, leaderboard notifications and their
settings did not. The game page section is now only mounted with the flag
on, the main process skips publishing leaderboard push and in-app
notifications when /features does not list it, the Notifications page
filters out leaderboard notification types, and the leaderboard group in
notification settings is hidden.
2026-10-31 00:19:54 +02:00
Eight
8af2b0d8a8
Merge branch 'main' into feature/lbx-1360 2026-10-30 17:39:24 -03:00
eightlindao
b9b91da351 feat(notifications): match ranking notifications to the others (LBX-1360)
They use the same picture frame, the rank change sits next to the title, and
the colored arrow is gone from the icon.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 17:35:51 -03:00
eightlindao
9587a6b90c feat(leaderboards): turn the review date and game into chips and add read more (LBX-1360)
The highlighted review shows up to five lines, with a button to read the rest,
and keeps any line breaks the API sends.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 17:35:51 -03:00
eightlindao
00853406e5 fix(leaderboards): center a podium with fewer than three players (LBX-1360)
Those cards were also capped at a narrow width, which made them too tall.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 17:13:20 -03:00
eightlindao
534f6bf140 feat(leaderboards): fit the activity graph to its card (LBX-1360)
The cells grow to fill the card, and a narrow card shows fewer weeks instead of
scrolling. Also removes the streak flame from the card.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 17:07:12 -03:00
eightlindao
157af70bf0 fix(leaderboards): hide the viewer from friend streaks and use one row control (LBX-1360)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 16:59:05 -03:00
eightlindao
8d1ad603d5 feat(leaderboards): remove the change column from the stats table (LBX-1360)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 16:55:21 -03:00
eightlindao
2ac610f64e fix(leaderboards): drop the link's filters when leaving a linked game (LBX-1360)
They stayed in the URL and were applied again on the next navigation, undoing
the period or scope the viewer had just chosen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 16:53:18 -03:00
eightlindao
3aea23441f feat(leaderboards): scale the Rankings layout on large screens (LBX-1360)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 16:46:18 -03:00
eightlindao
038428b522 feat(leaderboards): use one page scroll and split the sidebar into tabs (LBX-1360)
The app's scroll now moves the whole Rankings page. Categories and By game
become tabs, so neither list pushes the other down the sidebar.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 16:41:12 -03:00
Moyase
05e2d33112
Merge pull request #3017 from hydralauncher/fix/lightbox-window-drag
feat(screenshots): lightbox polish, comments redesign and upload quality
2026-10-30 21:35:59 +02:00
Moyasee
f9d056f336 Merge remote-tracking branch 'origin/fix/lightbox-window-drag' into fix/lightbox-window-drag 2026-10-30 21:20:46 +02:00
Moyasee
8a8b7f8027 fix(screenshots): only keep 720p on retry when the size fallback set it
Retrying any failed STANDARD upload kept 720p, so a user who subscribed
after a network failure still retried at 720p. The retry policy now marks
uploads it drops to STANDARD with uploadQualityFallback, and only those keep
720p on a manual retry.
2026-10-30 21:17:49 +02:00
eightlindao
e8f2782d74 fix(leaderboards): keep display names intact in the board insight (LBX-1360)
Names with tags or symbols broke the sentence, so they are now escaped before
the tags are parsed. Metrics without their own unranked text get a generic one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 16:12:09 -03:00
Moyase
c6b802b5f0
Merge branch 'main' into fix/lightbox-window-drag 2026-10-30 21:11:48 +02:00
Moyasee
07c7fe9316 fix(big-picture): clear the new comment highlight when the sort changes
After a re-sort the posted comment remounted as new, scrolled into view and
highlighted again. Changing the sort now clears it, like desktop does in
its reload.
2026-10-30 21:00:31 +02:00
Moyasee
1c7666502c fix(screenshots): keep the standard fallback when retrying a failed upload
A Cloud upload that hit the oversize fallback is stored as STANDARD. A
manual retry reset it to CLOUD from the subscription and repeated the
oversize round trip with a new client id. Retrying a failed upload now
keeps a stored STANDARD quality.
2026-10-30 21:00:08 +02:00
eightlindao
e1aadbde75 refactor(leaderboards): name the sidebar skeleton count (LBX-1360)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 15:56:47 -03:00
eightlindao
ba4565feca Merge remote-tracking branch 'origin/main' into feature/lbx-1360
# Conflicts:
#	src/renderer/src/pages/game-details/leaderboard/game-leaderboard.ts
#	src/renderer/src/pages/game-details/leaderboard/leaderboard-section.tsx
2026-10-30 15:51:46 -03:00
eightlindao
663a9724fe fix(leaderboards): collapse the selectors to icons when space is short (LBX-1360)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 15:50:02 -03:00
Moyasee
8371e1ecba fix(big-picture): recheck the keyboard dock side on resize
Whether the keyboard docks left was only decided when the anchor changed.
It now also updates on window resize and when the composer changes size
while the keyboard is open.
2026-10-30 20:45:34 +02:00
Moyasee
28e3039bf4 fix(big-picture): give the sort segmented controls an accessible name
Moving the community sort and the comment sort to SegmentedControl dropped
the old aria label. SegmentedControl takes an ariaLabel for when there is
no visible label, and both sort controls pass one.
2026-10-30 20:45:10 +02:00
Moyasee
9a318dab42 fix(screenshots): skip commentsEnabled on upload when the comments flag is off
A draft unchecked while SCREENSHOT_COMMENTS was on kept its stored false
after the flag was turned off and still sent it on upload. Both upload
forms now send commentsEnabled as true unless the flag is on and the box
is unchecked, so the presign body only carries the field when the option
is actually visible.
2026-10-30 20:44:44 +02:00
eightlindao
2e43a4cb5c feat(leaderboards): redesign the Rankings board (LBX-1360)
The board gets a header with a description, an insight about the next
position, a podium with brushed metal plates and a table with column
headers. On a game, the icon and the title open the game page and the
metrics become tabs. The selected review moves below the podium as a
provisional design.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 15:37:51 -03:00
Moyasee
3829d8b626 feat(screenshots): show the Ctrl+Enter shortcut on the comment post button
Enter now inserts a new line, so the post button's tooltip tells people
Ctrl+Enter sends the comment.
2026-10-30 20:27:12 +02:00
Moyasee
46dfd295dd fix(screenshots): only send commentsEnabled when comments are turned off
The presign schema rejects unknown fields, so always sending the flag would
fail every upload until the API accepts it. Leaving it out when comments
stay on keeps the request body unchanged for the default case.
2026-10-30 20:26:48 +02:00
Moyasee
78f3a44b29 revert: keep the success toast for comments hidden by moderation
This reverts commit 7b18542ad. A comment that moderation hides should still
confirm with Comment posted or Comment updated, so the author is not told
about the hidden state through a toast.
2026-10-30 20:18:22 +02:00
Moyasee
9ddeacf9fa fix(screenshots): stop waiting on the upload state after a timeout
If a retried upload failed again before the renderer saw it queued, the
state never looked different and the button stayed busy. The wait now
clears itself after five seconds.
2026-10-30 20:16:36 +02:00
Moyasee
7b18542adc fix(screenshots): warn instead of confirming when a comment comes back hidden
Posting or editing a comment that moderation hides showed Comment posted
or Comment updated. Both desktop and big picture now show a warning that
the comment was hidden by moderation instead.
2026-10-30 20:16:12 +02:00
Moyasee
959b460802 fix(screenshots): hide allow comments when the comments flag is off
The upload review forms on desktop and in big picture now only show the
Allow comments option when SCREENSHOT_COMMENTS is enabled, the same way
the owner controls do. Big picture navigation skips the missing field.
2026-10-30 20:15:51 +02:00
Moyasee
dc0927479b fix(screenshots): stretch the retry button like the upload button
The retry action for a failed upload had no class, so it sat at its
natural width next to the delete button instead of filling the row.
2026-10-30 20:15:28 +02:00