Skip to content

Releases: Loose-Threads/ARC-Client

ARC-Client - v0.94.0

ARC-Client - v0.94.0 Pre-release
Pre-release

Choose a tag to compare

@ComfyChloe ComfyChloe released this 17 Sep 23:07
3ce5db5

ARC-Client — v0.94.0 - Patch Notes

Released September 2026

The Unity package will be updated next full release not for this beta/pre-release build.


🎙️ A Whole New Voice Engine

  • Whisper is in. Vosk is out. The whole voice pipeline has been rebuilt around Whisper — better accuracy, smoother recognition, and a much quieter experience overall. The old voice tab and its supporting files have been retired.
  • It runs in the background. Whisper inference now happens in a dedicated worker thread, so the rest of the app stays snappy even while it's listening hard.
  • Native libraries ship cleanly. Packaged builds now bundle the right runtime files up front, with a preflight check so you find out about a missing file before clicking Start.

🔊 Voice Settings, Done Properly

  • A proper Voice Commands section — collapsible, dark-theme friendly, and easy on the eyes.
  • Live gain control. Your microphone level changes apply instantly, no restart needed.
  • VAD tuning exposed. Adjust how aggressive the voice-activity detector is to match your mic and room.
  • Cleaner transcripts. No more stray partials bleeding into your final lines.
  • Editable commands. Add, remove, and reorder what you say → what happens, all from the UI.
  • Boolean commands just work. A longstanding quirk where "yes" triggered the wrong action is fixed.

🛰️ Connections That Stick

  • Whisper start/stop from your avatar. Two new avatar parameters let a VRChat parameter drive Whisper directly — start it from a button on your model, flip Auto-start from a switch on your avatar, no UI clicks needed.
  • Auto-start respects the avatar. When your avatar is controlling Whisper, the Auto-start toggle greys itself out and shows a tooltip explaining why. Click the regular Start/Stop button to take back control.
  • Link requests survive reconnects. Linking your VRChat account no longer loses its response if the connection blips mid-flight.
  • Connection state stays accurate. Hard-reload the window and the app still knows you're connected instead of getting stuck on a stale flag.

🌐 OSC & Discovery

  • mDNS discovery is reliable. The auto-inviter finds ARC-Client instances on the network consistently — no more "works on second launch".
  • Auto-inviter is here. Pull connected ARC-Client users into your instance without anyone typing a code.
  • Better network defaults. OSC Query now binds to all interfaces so friends on your LAN can discover you without poking at settings.
  • A cleaner status badge. The avatar-sync indicator now reflects what's actually happening.

🎨 A Tidier UI All Round

  • Every page got a refresh. Settings, OpenShock, OSC Leash, XSOverlay, Hyperate, Auto-status, VRC Timeline, Feedback, the Whisper page itself — all rebuilt with a consistent look and tighter logic under the hood.
  • Voice Commands finally matches your theme. No more light-on-light eyesore in dark mode.
  • Your model remembers itself. Restart the app and Whisper picks back up exactly where it left off — no zombie "Starting…" state.

🐛 Smaller Fixes Worth Mentioning

  • The OSC Query port reuses properly instead of fighting for a free one.
  • XSOverlay notifications now log to the database with the correct columns.
  • Server connection state in the UI no longer lies after a refresh.

What's Changed

Full Changelog: v0.93.2...v0.94.0

Client Release v0.93.2

Choose a tag to compare

@ComfyChloe ComfyChloe released this 24 Jun 23:53
6394d80

ARC-Client — v0.93.2 Patch Notes

Covers changes since v0.93.1 · Released June 2026

This verison covers a few edge-case bugs.


🎛️ OSC Bridge

  • Less aggressive OSC liveness checks — raised the consecutive-failure threshold from 2 to 4 before tearing down a connection. A single dropped UDP packet or a brief adapter wakeup (common on Windows) no longer kills a healthy session mid-flight.

🧩 Addons

OSCQuery

  • Default bind address changed to 0.0.0.0 — the OSCQuery HTTP service now listens on all interfaces by default so remote tools and VRChat can discover it regardless of which network adapter is active. The previous 127.0.0.1 default was too restrictive for LAN discovery.
  • Smart port reuse on startup — OSC and OSCQuery HTTP ports are re-validated via a new _isPortAvailable helper when the service initializes. If a previously-assigned port was released or claimed by another process, a fresh free port is assigned instead of failing with EADDRINUSE. Logs now distinguish reusing from previously assigned port no longer available, reassigning so the cause is obvious.
  • Virtual/tunnel adapter filtering — local IP selection now ignores vEthernet, Docker, Loopback, Pseudo, isatap, 6to4, Teredo, tun/tap, and VPN adapters when picking the IP advertised by OSCQuery. On machines with WSL/Hyper-V, Docker, or VPN interfaces the previously-first IP was often unreachable from VRChat or remote tools. Falls back to any non-loopback IPv4 if every adapter matches the filter.

XSOverlay

  • Notification log now persists to the database — recorded_at was migrated from INTEGER to TEXT with a SQLite default timestamp, so the UI notification log is accessible to all connected users instead of vanishing when the app closes.
  • Renderer reads DB rows through useXSOverlay — the composable maps persisted rows (text timestamps) instead of relying on the in-memory buffer, and formatTime() now handles both SQL datetime strings and legacy numeric timestamps for backward compatibility.

🐛 Bug Fixes

  • Settings UI: OSC port change didn't stick — useOscStatus.ts was writing localOscPort (a nonexistent key) instead of legacyOscPort used by configManager.ts. The user's port choice silently reverted to the default on every reload; the correct field is now used so the saved value persists.

Client release v0.93.1

Choose a tag to compare

@ComfyChloe ComfyChloe released this 17 Jun 05:50

ARC-Client — v0.93.1 Patch Notes

Covers changes since v0.93.0 · Released June 2026


🧩 Addons

  • XSOverlay notification log now persists across sessions — notification history is written to the SQLite database instead of only living in an in-memory buffer, so all connected users can view the log even after restarting the client

🐛 Bug Fixes

  • Fixed recorded_at column schema for XSOverlay log entries — changed from INTEGER to TEXT with SQLite's default timestamp, resolving issues where the UI couldn't read notification timestamps correctly
  • formatTime() now handles both SQL datetime strings and legacy numeric timestamps — prevents display errors for notifications recorded before and after the schema change

Client release v0.93.0

Choose a tag to compare

@ComfyChloe ComfyChloe released this 15 Jun 04:42
c7a5747

ARC-Client v0.93.0 Release Notes

4883 lines added · 201 lines removed · 38 files changed since v0.92.0


🧩 OpenShock Integration (new, experimental)

Full OpenShock API client with shocker control, public share link generation (via session cookie or share code fallback), token management, pause/unpause, and persistent control logs stored in the local SQLite database. The UI includes a three-tab page: Control (shocker grid with intensity/duration sliders and Vibrate/Sound/Shock/Stop buttons), Link Sharing (per-shocker permissions, limits, and one-click copy), and Logs (paged history from the local database). Session credentials are encrypted and persisted across restarts.

💓 Heart Rate History & Chart (new)

Adds a shared SQLite database (sqlDbService) that underpins all persistent data. The HypeRate addon now buffers every HR sample to disk with a 2-second flush interval, and the HyperatePage renders an interactive canvas-based HeartRateChart component with:

  • Time range presets (60s → 30d) plus custom datetime range
  • Auto/Raw/2s–30s step bucketing
  • Mouse pan and wheel-zoom
  • Live mode with 2-second polling
  • Min/Avg/Max/Points stats row
  • Configurable retention (1d/3d/7d/30d/unlimited) and capture rate (500ms–30s)

🛡️ XS Overlay Notifications (new)

Full XS Overlay integration — panel connection and avatar change events are pushed to a VR overlay app. Includes configurable notification volume, audio path, autostart, and a notification log that persists to the local database.

📍 Location-Based Auto-Status (new) (new, experimental)

Auto-status now supports location rules that change your VRChat status based on the world you're in. Reads VRChat location data from the VRCX database and matches against configurable location patterns with wildcard support.

🔒 Panel Lock & Safety Toggle from Desktop Client (new)

Lock badge and five safety bubbles on the main panel card are now clickable buttons. Toggling sends a set-panel-state WebSocket command to the server, which pushes the OSC parameter back to VRChat so the animatable parameter stays in sync. Buttons show a pending state while the round-trip is in flight.

🔇 Clear All Suppressions (new)

New "Clear All Suppressions" button on the OSC page with a 10-second cooldown. Sends a request to the server which clears all suppressed parameter addresses for the current user.

❤️ HypeRate Watchdog

Added a 3-minute stale-connection watchdog and last-HeartRate tracking to the Hyperate addon, with automatic reconnection on missed heartbeats.

🔧 Fixes & Housekeeping

  • OSCQuery bind address locked to 127.0.0.1 — prevents the service from advertising on LAN
  • WebSocket reconnect — removed the max-attempt ceiling; client retries forever with exponential backoff
  • Splash window — sandboxed preload with a dedicated splash.ts using contextBridge
  • Battery display — SVG battery icon with improved intiface state watching on the OSCGoesBrrr page
  • OscGoesBrrr — warning message for dead connections silenced to stop console spam
  • License — updated to ComfyChloe Non-Commercial Copyleft License 1.2
  • Vue/TypeScript rewrite (PR #27) — full conversion of all pages to <script setup lang="ts"> SFCs with scoped styles, eliminating legacy JS files
  • Experimental banners added to OpenShock, Auto-Status, Auto-Inviter, and XS Overlay pages

🔐 Dependencies

  • Added better-sqlite3 for local SQLite storage
  • Added chokidar for VRCX database file watching

New IPC surface: panel-state-set, openshock-* (17 handlers), vrchatapi-get-bio-links, vrchatapi-set-bio-links, xsoverlay-* (6 handlers), hyperate-get-history/stats/history-config/capture-rate

Database: New app.db with tables heartrate_log, openshock_control_log, xs_overlay_notification_log

What's Changed

Full Changelog: v0.92.0...v0.93.0

v0.92.0

v0.92.0 Pre-release
Pre-release

Choose a tag to compare

@ComfyChloe ComfyChloe released this 27 Apr 00:02

This is a pre-release, it has untested features and maybe more unstable then the native client, this build does inturduce auto-status which currently has no unity package update or process, this release simply allows users to test to assure no issues before full release.

Currently im away from home so its the best I can currently offer.

What's Changed

Full Changelog: v0.90.2...v0.92.0

Client release v0.90.2

Choose a tag to compare

@ComfyChloe ComfyChloe released this 12 Mar 23:19

We love our AI Summarys

Release Notes

What's Changed

Server-managed parameter blocking

  • Added support for server-pushed parameter blocklists and dynamic suppressions through the WebSocket bridge.
  • Propagated those updates through the Electron main process and preload layer so the renderer can react in real time.
  • Expanded OSC Query filtering to respect three sources at once: hardcoded blocked paths, server-managed blocks, and server-managed suppressions.

OSC filtering and forwarding improvements

  • Added new hardcoded blocked parameter groups for face tracking, eye tracking, lip tracking, and tracker data to reduce unnecessary forwarding.
  • Split user-managed unsubscriptions from system-managed blocking so user settings are easier to reason about.
  • Added IPC endpoints for reading hardcoded blocks, server blocklists, and active suppressions independently.

UI changes for blocked parameters

  • Replaced the old high-frequency suggestion workflow with a dedicated Blocked Parameters view.
  • The UI now shows blocked paths with simple source labels so users can tell whether a block comes from the user configuration or the server.
  • Simplified unsubscription rendering by removing the collapsible ignored-path wrapper in favor of a more direct list.

Performance and memory cleanup

  • Removed the client-side high-frequency parameter learning and suggestion engine.
  • Debounced rapid parameter updates and changed the parameter list rendering to update rows incrementally instead of rebuilding the full list every time.
  • Reduced log-related DOM churn by recycling existing log nodes, switching log text writes to textContent, and limiting auto-scroll to cases where the user is already near the bottom.
  • Stored interval and timeout handles explicitly so they can be cleared on unload, improving long-session cleanup behavior.
  • Added extra cleanup for parameter maps, float throttling state, and context-menu Escape handlers to avoid stale listeners and memory growth.

Logging behavior updates

  • Commented out VRChat pipeline debug logging in the renderer to cut noise from routine friend, notification, and user update events.

Files With Notable Changes

  • main.js: Added server blocklist and suppression event handling, plus new IPC query methods.
  • preload.js: Exposed new read and event APIs for blocked-parameter state.
  • utils/oscQueryService.js: Added hardcoded blocked paths and server-managed filtering logic.
  • utils/websocketManager.js: Added WebSocket listeners for parameter blocklists and suppression updates.
  • renderer/app.js: Reworked parameter rendering, log behavior, cleanup paths, and blocked-parameter UI loading.
  • renderer/index.html: Replaced traffic suggestion UI with a blocked-parameters section.
  • renderer/VRC-API-UI.js: Disabled noisy pipeline debug logs.

Summary

This range shifts ARC-Client away from local "suggest what to ignore" logic and toward a server-driven blocking model. The result is a simpler client UI, clearer blocked-parameter visibility, lower renderer overhead, and less noisy debug output.

Full Changelog: v0.89.5...v0.90.2

Client release v0.89.5

Choose a tag to compare

@ComfyChloe ComfyChloe released this 23 Feb 00:26
76b5c49

General client stability and fixes, This mostly applys stability fixes to leash, OSCGB and crash handling.

Remember you can drop in replace everything for the folder, Deleting Userdata will delete any/all configs about ARC, Just download the zip, Select everything and drag it into your exisiting (or new) ARC-Client folder and Replace all.

Unitypackage just has menu updates and small guide updates, nothing major for ARC itself.

We Love our AI Summarys:

What's Changed

  • Dev chloe 239063e → 2db5aef by @ComfyChloe in #20
    This release covers changes from 239063e → 2db5aef.

Major changes

  • Electron upgrade: Updated to Electron 33.0.0 (LTS) and electron-builder 25.1.0.
  • Stability & crash handling: Replaced the legacy logger with a unified debug logger that writes crash context, appends a “please submit this log” notice, and shows a crash dialog with an option to restart the app.
  • OSC log performance: Added IPC batching for high-frequency OSC traffic (osc-received / osc-forwarded) and introduced renderer memory-pressure handling to reduce UI freezes/OOM crashes.
  • OSC autostart: Added a persisted oscAutostart setting; enabling/disabling OSC now updates that setting, and startup restores OSC enabled state from config. (Meaning OSC will re-enable on startup if you closed it with it enabled)
  • OSC-Query networking improvements:
    • Added bind/advertised IP selection so HOST_INFO reports the correct OSC_IP.
    • Added oscQueryBindAddress config support.
    • Improved VRChat service discovery to better handle VLAN/cross-network scenarios by using the packet source IP when mDNS reports loopback.

Fixes

  • OSCLeash/Hyperate robustness:
    • Added consistent “OSC available + listening” checks before sending.
    • Avoided stopping OSCLeash monitoring when OSC temporarily isn’t available (it now skips the cycle and resumes when OSC returns).
    • Reduced spurious error signaling when OSC isn’t running (expected state).
  • OscGoesBrrr / ButtplugClient:
    • Fixed callback handling for protocol Id=0.
    • Improved error propagation for Buttplug error responses.
    • Prevented unhandled promise rejections/timeouts by rejecting pending callbacks when a device disconnects.
  • Logs: Prevented ARC OSC logs being automatically cleared/rotated by the renderer’s periodic cleanup.

Minor changes / updates

  • Lovense placeholder UI: Added a “coming soon” Lovense integration page in Extras.
  • Defaults & settings:
    • Snow effect is now disabled by default (snowEnabled: false) and can be persisted via app settings.
    • Added/propagated new config keys: oscAutostart, oscQueryBindAddress.
  • Containers: AutoStatus and Calendar placeholders now use the shared debug logger and wrap lifecycle methods with safer error handling.

Full Changelog: v0.87.2...v0.89.5

Verison v0.87.2

Choose a tag to compare

@ComfyChloe ComfyChloe released this 07 Jan 21:41
239063e

What's Changed

Version 0.87.2 - January 2026

Features

  • OSCGoesBrr Integration: Full haptic device support with motion tracking and battery level monitoring (Experimental)
    • Configurable idle vibration levels and depth-based haptic options
    • Enhanced device configuration and real-time OSC haptic data handling
    • Enable SPS Haptics in VRCFury for OSCGoesBrr to work on your model!
    • Install the Interface central for ARC-Client to connect, Or use the mobile app and assign the IP According to interface central's IP
  • OSC-Query Enhancements: Improved VRChat integration with better service initialization and bind address configuration
  • OSCLeash Improvements: Integrated OSC-Query support with enhanced error handling and service checks
image

Bug Fixes

  • Fixed OSC service validation and error handling in OSCLeash addon
  • Improved renderer crash handling and memory leak prevention
  • Enhanced WebSocket pipeline with immediate disconnect detection and reduced health check intervals
  • Better connection status logging for ButtplugClient with robust error handling

Improvements

  • Refactored HypeRate addon cleanup process
  • Enhanced debug logging throughout the application
  • Moved verbose info logging to debug level for cleaner output
  • Updated auto-start UI buttons for better clarity
  • Added placeholder graph for heart rate data visualization

No unitypackage update required for this release, Grab the unitypackage from the previous release

Get Interface central here for windows or android/ios: https://intiface.com/central/

Full Changelog: v0.86.5...v0.87.2

V0.86.5

Choose a tag to compare

@ComfyChloe ComfyChloe released this 19 Dec 02:51
cf5e42c

Last update of the year!

Enjoy :D

This still remains to be a Portable exe type app.

Features

  • Added VRC Timeline viewing from client
  • Main view now displays a users panel's Live and their current status's with locks/safetys and more
  • Added a christmas touch disablable of coruse
  • Better websocket updates for ARC
  • Additional extra sections of upcoming intended features
  • And more! (Just need more time)

Unity package

  • Updated readme
  • Forced synced parameters to bugfix diffrent inital avatar load states (VRChat bug at this time)

Bugfixes

  • Fixed hyperate and OSCLeash UI not updating on enable/disable
  • So meny smaller things that I can't list

What's Changed

  • Major client update, Lots of fixes and features by @ComfyChloe in #16

Full Changelog: v0.83.1...v0.86.5

v0.83.1

Choose a tag to compare

@ComfyChloe ComfyChloe released this 24 Nov 21:00

Bugfix

  • ARC logo not displaying on startup

No other changes