Skip to content

Conversation

ebkr
Copy link
Owner

@ebkr ebkr commented Sep 19, 2025

No description provided.

arrowmaster and others added 30 commits July 3, 2025 06:57
- Len's Island
- Ostranauts
- Patapon 1+2 Replay
Add custom mod loader package support for three games
Fix posix scripts to preserve arguments with spaces
Platform selection radio now persists last selected option
* PAC-MAN WORLD Re-PAC
* Darkwater
* Calculate the total file size when initializing the download
* Calculate amount of downloaded bytes
* Calculate the progress percentage based on the aforementioned values
* Save the values to the local store in the callback
  * (Downloading via importing a profile uses the callback values
  without saving the progress to the store)
* Display the progress (percentage), current progress (file size)
 and total file size to be downloaded in DownloadMonitor,
 DownloadProgressModal and ImportProfileModal
Axios reports download progress in bytes. Previously this was casted to
percentages to report the download progress outside the download
provider. Now download provider also reports the progress in bytes and
lets UI handle casting to percentages if it so chooses. This lead into
a situation where the download provider unnecessarily casts the bytes
to percentages to bytes again.
Updating it afterwards makes little sense as it doesn't change during
the download.
- Clamp also to 100% boundary instead of just the 0% boundary
- Calculate percentage in a separate step to improve readability
- Explain why target progress can be zero
- Attempt to improve comments and the error message, although this is a
  bit objective
…eading situation

* Use the format "50% of 1.2 GB" instead of "50% (600 MB / 1.2 GB)
* The situation was that for example 1.15GB rounded to 1.2GB.
 This was misleading as the percentage could be 97% and the file size already looks like completed
Get rid of awkward "x% completed of y MB". Considered "x% of y MB
completed" but I deemed the "completed" unnecessary given the context.

Also remove the progress percentage clamping from download monitor
since the percentage in the download tracking object is already
clamped.
This prevents a previous "current" download flashing shortly on the
screen.
Calculate and display the download progress based on the file size
Using Promise.all rather than checking for cached versions of the mods
in a loop reduces execution time roughly from 50% to 80%. Granted, we
were talking about tens of milliseconds to begin with even for large
mod packs, but faster is faster.
This is to shed some light to the error "Failed to execute 'put' on
'IDBObjectStore': Evaluating the object store's key path yielded a
value that is not a valid key." that's seen in production.

The problem might be related to changes done when the mod manager was
changed to read the game configs from Thunderstore ecosystem schema.
Or it might be caused by users who mess up their Vuex store state by
using mouse to navigate back in history, although I think that should
cause a different error, but it might be eater up by IndexedDB.
ebkr and others added 28 commits September 12, 2025 11:40
- Refactored stub providers from Jest to Vitest
- DownloadModule.ts duplicate action

- Splash.vue formatting

- Profiles.vue unused imports
- Moved recently added game_selection images to new location

- Removed old game images

- Updated documentation

- Funky mode and game image on Manager screen now pull from the correct place in both dev and prod
Added if condition to donate icon button
@ebkr ebkr merged commit ec2c9bf into master Sep 19, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants