Changelog
0.0.1-alpha.17 (WIP)
Privacy and data changes
This update adds the group names to the live sessions.
The Privacy and data considerations are being updated to reflect this.
In addition, a line has been added to clarify that API requests and responses are processed directly from your machine; this does not describe a change in behavior.
- In "What is the nature of the requests to those servers?", add to the "The following requests are for live monitoring" section:
- Get the group name of a session.
- In What servers are called?, add:
- Requests are sent directly to the social VR applications from your machine, and the responses are processed exclusively on your machine.
Application changes
Important:
- The application now requires .NET 10 (instead of .NET 9).
Features:
- Current progress is now displayed on the data collection button, contributed by @art0007i.
- Group names of VRChat live sessions are now shown under the user count.
- Session names (typically, world names) that match certain strings can be pushed to the bottom of the live sessions list, from the settings page (Deprioritized Virtual Spaces).
- Third-party acknowledgements are now visible from inside the built application, in the Settings page.
Fixes:
- Fix Booth.pm wishlist URLs are no longer displayed as being an account name.
- Fix some profile links to Patreon service starting containing patreon.com/c/ were incorrectly displayed.
- Fix log file was previously truncated or had missing lines, if it was opened by an external program while XYVR is running.
- Fix pressing the log out button on a Resonite connection with an expired token should no longer trigger an error.
- Fix sqlite initialization on Linux, contributed by @art0007i.
- Fix VRChat login should now function on Linux/Photino, contributed by @art0007i.
- Attempt to fix a multithreading issue related to live session monitoring, which may have led to failing to list all sessions.
- If the individuals.json file gets corrupted, it should now recover from this.
- Fix reading an empty string was previously treated as a success instead of a failure to deserialize.
- Fix data_individuals table was previously not written to for recovery.
- Fix data_individuals table was previously written to when saving preferences.
Changes:
- The Show/Hide portraits" button is now next to the "Light/Dark mode" button.
- All other buttons are now only shown when a search is being made, as those buttons only have an effect during searches.
- The thumbnail cache is now cleared when the application starts, as the storage could grow out of control.
- If the ui-preferences.json file gets corrupted, we will try now try to recover from this.
Internal changes:
- Log when worlds are removed from the cache.
- If an API repeatedly returns a server error, we may wait for even longer periods before retrying.
- Previously, the maximum delay was 80 seconds; it could now last 5 minutes.
- Public Resonite sessions are no longer printed into the logs.
- Builds are now output by default to the build/ and build-photino/ folder, contributed by @art0007i.
0.0.1-alpha.16
Privacy and data changes
This update adds internal handling to support another social VR platform: Cluster (cluster.mu).
The Privacy and data considerations are being updated to reflect this.
If you only use Resonite, VRChat, or ChilloutVR accounts, this does not affect you.
- Add data considerations for the Cluster social VR application (cluster.mu):
- In What servers are called?, add the following:
- We only perform requests to the following URLs:
- for Cluster accounts:
https://api.cluster.mu/v1- We fetch thumbnails:
- for Cluster: only from URLs that start with
https://cluster-file-storage.imgix.net/.
- These new considerations only apply to accounts of type cluster.mu.
Application changes
Features:
- You may now assign a custom profile to your contacts. The UI is now designed around displaying profile pictures.
- You choose a profile picture by opening a users' account, and then drag and drop a picture into it.
- The 2D profile pictures from the various social VR apps are not used as a profile picture.
- The picture is stored with the XYVR database.
- If a session has five or more participants, that session is now shown full-width to accomodate the large size of the profile pictures.
- Resonite has an additional field to specify a 2FA code when logging in.
- Add partial implementation of the Cluster (cluster.mu) social VR platform.
- For this version, it is not possible to log-in to Cluster accounts due to technical and privacy limitations.
- Live sessions now contain additional information:
- Live sessions now display the session entry permission type.
- Live sessions now have icons:
- Red ID card icon: VRChat instances now show when entering it requires Age Verification, contributed by art0007i.
- Server icon: Resonite sessions now display when it is hosted headless.
- ChilloutVR instances and Resonite sessions now show the usernames of people in the session, contributed by art0007i.
- Resonite sessions now have buttons to open the instance through the web browser, and a button to copy a web link to it.
- There are now buttons to quickly filter online users by app.
- The window size and position are now remembered across sessions.
- Although implemented, it is unclear whether this works on Linux.
- In search results, links to the following services are now marked as such and shortened for most of them:
- Artstation, Bandcamp, Bluesky, Booth.pm, Carrd, Facebook, Fansly, Fantia, GitHub, GitLab, Gumroad, Instagram, Jinxxy, Ko-fi, Linktree, Misskey.io, Misskey.niri.la, Mixcloud, Patreon, Skeb, SoundCloud, Steam, TikTok, Twitch, Twitter, X, YouTube, cluster.mu, lit.link, pixivFANBOX
- Links to Bluesky are not shortened to keep the identifier consistent with the use of custom domains.
Fixes:
- Fix sending yourself an invite to VRChat instance should now be functional.
- The rate limit delay for Resonite API calls has been raised from 500ms to 1 second, to avoid getting a Too Many Requests response.
- Fix list of participants in a session was sometimes displayed in an incorrect location on the screen.
Changes:
- Changes in live sessions:
- The button to join a session is now displayed at the bottom right.
- Due to the change in profile pictures, multi-sessions are no longer shown within live sessions and within users located in private sessions; they are now shown only inside the modal.
- A question mark is now shown when the total number of participants in a session is not yet known.
- Search-related changes:
- The search bar has been moved to the top of the screen.
- Changes in search results and modal:
- The link to open the profile is now the rightmost.
- The "Contact" label is no longer shown.
- Links are now shown at the top rather than at the bottom.
- Search results are now shown in three columns.
- If the search terms are a quick filter for online users, then the address book is not shown.
- The profile pictures of users in private sessions are now shown even if there is a search term.
- A log file is now written to disk, contributed by art0007i.
Internal changes:
- Builds and the WebView2 build script now output the executable to the
build/folder at root, contributed by art0007i. - Resonite live internals now throw an exception when the user has failed to log in (session expired), contributed by art0007i.
- Update vite to 7.1.11 and js-yaml to 4.1.1 as suggested by Dependabot.
- Update react-router-dom to 7.12.0 as suggested by Dependabot.
- Http requests now handle errors differently:
- If any 5xx server error is returned, we use exponential backoff to retry that request.
- If 429 Too Many Requests status code is returned, we wait 80 seconds before retrying.
0.0.1-alpha.15
Features:
- VRChat live sessions now have a button to invite yourself to the session.
- Resonite live sessions now have a button to join that session.
- In the settings, there is now a setting to toggle whether Resonite sub-sessions are displayed. This does not affect how sessions are displayed during a search.
- Live monitoring now shows your own session you're in.
- Clicking an account or an individual will open that individual in a modal.
- That modal also shows the previous account usernames, links, notes, and bio.
Changes:
- We normally refresh the list of sessions slowly due to rate limiting, but this caused the list of sessions in the UI
to reorder itself every time a session is refreshed, making the list of sessions in the UI practically unusable.
- Now, when we're refreshing the list of sessions to update the total number of users in a session, the updated list of sessions is pushed to the UI all at once. This means the UI will no longer reorder itself while we're making the API requests to refresh that list.
- The UI theme is undergoing changes.
- The button to copy the account ID to the clipboard is now only shown in the modal.
Internal changes:
- The custom name of live sessions is now hidden in demonstration mode.
- Requests to VRChat API are more aggressively canceled when the application exits.
- Replaced an incorrect localization line.