Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
- Added a "Download Version" entry to the split-button caret on the game detail page, beside "Manual Install". It opens the same downloads modal the UPDATE button does, listing every build and mirror the thread offers, so a different version can be fetched over one already installed. Previously an installed title with no pending update had no route to that modal at all: the primary button becomes PLAY once a version is installed, and the UPDATE button only renders when an update is flagged. The entry goes straight to the downloads modal rather than through the source picker, and is shown disabled with a reason for titles with no F95zone thread linked.

### Fixed
- Fixed MEGA v1 test timeout — legacy key derivation is intentionally slow and needed a longer test timeout.
- Fixed `hasLocalPreviews` and `hasLocalBanners` missing already-downloaded assets, so a `missingOnly` media refresh re-downloaded images that were already on disk. Both now query `media_assets` and the `previews`/`banners` tables, which is what the delete paths already did.
- Custom preview uploads now accept images only. The file picker filters to image types, the drop zone rejects anything else with a message, and the main process re-checks the extension before copying -- neither of the first two is a guarantee, and an unrecognised file copied into `data/images` became a preview tile that could never render. URL fetches are restricted to http(s), capped at 64 MB, throttle their progress events, and clean up the partial file if the download fails.
- Fixed the Downloads and Collections pages being clipped to one screenful. Both are mounted in a shared pane that is `overflow-hidden` for every non-detail view, and neither carried a scroll container of its own -- a stale comment claimed `#gameGrid` scrolled them, but it is not in that path at all, so entries below the fold could not be reached. Downloads is now a flex column with a pinned header above a single scrolling list; Collections scrolls its grid. On Downloads the scrollbar stays hidden until you scroll or move near the right edge, driven by a class rather than a CSS `:hover` rule so it does not appear anywhere over the list. Scoped to those pages; other scrollbars are unaffected.
Expand Down
4 changes: 2 additions & 2 deletions tests/mega-host.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -395,15 +395,15 @@ describe('MEGA account crypto', () => {
expect(account.deriveKeyV2('pw', '')).toBeNull()
})

it('derives a v1 key deterministically', () => {
it('derives a v1 key deterministically', { timeout: 30000 }, () => {
// Legacy accounts cannot be migrated from the client, so this path stays.
const key = account.prepareKeyV1('hunter2')
expect(key.length).toBe(16)
expect(account.prepareKeyV1('hunter2').equals(key)).toBe(true)
expect(account.prepareKeyV1('hunter3').equals(key)).toBe(false)
})

it('produces an 8-byte v1 password hash', () => {
it('produces an 8-byte v1 password hash', { timeout: 15000 }, () => {
const key = account.prepareKeyV1('pw')
const hash = account.stringHashV1('USER@example.com', key)
expect(hash.length).toBe(8)
Expand Down
Loading