Skip to content

Client release v0.93.0

Choose a tag to compare

@ComfyChloe ComfyChloe released this 15 Jun 04:42
· 102 commits to Master since this release
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