Changelog

New updates and improvements to Vextra.

v0.8.4

April 2026

Vextra v0.8.4 — Fix: Save MIDI button on macOS

The GrooveEngine's Save MIDI button did nothing on Mac builds. Root cause: WKWebView (Tauri's macOS engine) silently blocks programmatic clicks for security. The button fired but nothing happened, no error.

Fix: when running inside Tauri, use the native save dialog + fs writeBinaryFile API instead of the anchor-click trick. Browser fallback is preserved for dev mode. Both paths ship the same .mid bytes produced by patternToMidi().

Enabled dialog.save and fs.writeFile in the Tauri allowlist (+ the matching cargo features: dialog-save, fs-write-file). fs scope is "**" so the user's chosen save location always works — the save dialog itself is user-initiated so no silent file writes can occur.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

v0.8.3

April 2026

Vextra v0.8.3 — Hotfix: provider race + first auto-update test

Fixes a race condition where Collections, Favorites, and SavedSearches panels would appear empty after app launch until the user took some action. These providers mount in main.tsx before , so their initial fetch races with the Python backend still warming up the CLAP model. Without retry, the empty state persisted until a later action triggered a refresh.

Each provider now retries the initial fetch up to 30 times with 500ms spacing (~15s window). User-initiated refreshes remain single-shot. Bug predates v0.8.2 — present since v0.6.0 (CollectionsProvider).

Also:

  • Settings Updates section now surfaces the actual updater error text when a check fails, making debugging easier
  • Rust host falls back to runtime env var for VEXTRA_SESSION_API_KEY so local dev builds can set the key without rebuilding

This release is also the first real test of the Tauri auto-updater: users on v0.8.2 (production install) should now see the update banner and be able to install v0.8.3 directly.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

v0.8.2

April 2026

Vextra v0.8.2 — Session Tracking, Auto-Update, Quality-of-Life

Headline features:

  • Auto-updater: checks on startup (opt-in), manual check in Settings, signed updates delivered via Cloudflare R2
  • Session + key-event analytics: sessions, searches, groove generations, and MIDI exports now surface on the landing admin dashboard, with offline queueing so no event is lost
  • Unified version management: single source of truth in src-tauri/tauri.conf.json, propagated to Rust, Python backend, and frontend at runtime — scripts/check-versions.sh guards against drift

Desktop app UX:

  • New "Show in folder" action per sample (reveals in Explorer / Finder)
  • Results list now has a dedicated Action column; Details and Match columns trimmed so the waveform gets more room
  • Duration shows sub-second precision (0:00.4) for short one-shots
  • Action icons normalized to a consistent 16×16 stroke style
  • Settings: new Updates section with current version + Check for updates
  • Splash, sidebar, and About all read the version from Tauri dynamically

Vietnamese search:

  • Expanded vi_phrases.json, chips, and idle placeholders with producer slang (nấu beat, bốc, nện, dính, …) — user-edited, pass-through to the existing VI→EN translation pipeline

Infrastructure:

  • GitHub Actions builds now sign updater artifacts on Windows + macOS, upload them to R2 at downloads/updater//, and generate downloads/updater/tauri-update.json for the Tauri updater
  • Rust host passes VEXTRA_APP_VERSION + VEXTRA_SESSION_API_KEY to the Python subprocess so analytics work in production without extra config

Guardrails respected:

  • Search ranking, Groove generator, and audio playback untouched
  • Existing downloads/releases/latest.json format preserved for the landing page
  • No forced updates; every analytics call is fire-and-forget

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

v0.8.1

April 2026

Vextra v0.8.1 — Quality, Performance, and Personalization Upgrade

Groove Engine Quality

  • Pattern history avoidance: reduces repetitive pattern reuse across regenerate cycles
  • Bar 2 evolution: blends from bar 1 instead of jarring full-swap — sounds related, not random
  • Fill control: probability reduced to 8%, restricted to kick/snare/perc only
  • Hat density limiter: prevents machine-gun hi-hat patterns (max 10 of 16 steps)
  • Triangular velocity: more human feel — clusters near center, rarely hits extremes
  • Sustain crossfade: bass/lead/loop get smooth 80ms crossfade on retrigger instead of hard cut

Favorites

  • Hard cap at 150 with clear feedback when full
  • Count display in panel header
  • No silent deletion — user manages manually

Search — Filename Matching

  • Filename-like query detection: underscores, extensions, word+digits patterns
  • Exact filename score: new search component for specific file lookup
  • Amplified boosts: +40% for all-keywords-in-filename on filename queries
  • Rebalanced weights: semantic 35%, keyword 20%, type 10%, filename 10%, tags 10%

User Tag System (Pro)

  • Personal tags: add up to 5 custom tags per sample
  • Tag search: search by tag name — tagged samples jump to top of results (3x boost)
  • Protected system tags: kick, snare, pad, loop etc. cannot be used as user tags
  • Inline UI: tag chips on sample rows, add via +, remove via double-click
  • Pro gated: free users see tags read-only, Pro users can create and manage

Onboarding

  • Updated guide: 6 steps now including Groove Engine and Personal Tags
  • Translated in English, French, and Vietnamese

Library Health

  • Missing folder detection: prompts user to re-index when library is moved

Full Changelog: https://github.com/HyperClaire/vextra/compare/v0.8.0...v0.8.1

v0.8.0

April 2026

Vextra v0.8.0 — Groove Engine, Creative Workflow Upgrade

Groove Engine (New)

  • Crate-scoped rhythm generator with WebAudio schedule-ahead playback
  • 28 groove styles across 7 families: Electronic, Hip-Hop, Jazz, Blues, Rock, Country, Groove
  • Pattern-based step sequencer with core, variation, and fill banks
  • Musical humanization: accent-shaped velocity, role-aware swing and microtiming
  • Auto-fill: searches library for missing roles, cached for instant regeneration
  • Lock groups (Drums / Bass / Melody) preserved across regeneration
  • Pattern visualization with VU meter LED board animation
  • Color-coded role assignments with individual per-role display
  • Style aliases and tags for discoverability
  • Tempo randomization for instrument-oriented styles
  • MIDI export with GM drum map and multi-channel pitched instruments
  • Pro license gating with upgrade prompt for free users
  • Available in both Collections and Favorites panels

New Styles for Instrument Players

  • Jazz, Swing, Blues, Rock, Country, Reggae, Jam Band
  • Vinahouse / House Lak (Vietnamese dance style)

Audio Improvements

  • Mono-voice choke prevents retrigger overlap
  • Leading silence detection skips dead portions
  • Long sample truncation prevents multi-bar overlap noise
  • BPM sync via playbackRate for loop-type roles
  • Audio output device selector in Settings

UX Improvements

  • Collapsible sidebar with icon-only compact mode
  • Auto-collapse on narrow window, state persisted
  • Crate limit: 20 samples max per collection (oldest trimmed on overflow)
  • Quick-add button with checkmark success feedback
  • "Vibe" button for fast pattern regeneration

Backend

  • sample_type exposed in API response for role assignment
  • full_track content kind filter support
  • Path scope validation on sample serving (security hardening)
  • Session analytics tracking (async, non-blocking)

Settings

  • Audio output device dropdown
  • Legacy license key input removed (signed license files only)

Internationalization

  • All groove UI strings in English, French, and Vietnamese
  • 28 style labels with aliases and tags

Security

  • Path traversal protection on sample serving endpoint
  • File scope validation against registered library folders

Full Changelog: https://github.com/HyperClaire/vextra/compare/v0.7.7...v0.8.0

v0.7.7

April 2026

v0.7.7 — Search Quality, Classification & UX Upgrade

  • Parallel query embedding + LRU cache for faster search
  • Sigmoid semantic normalization and retuned scoring weights
  • Filename stem bonus (5% weight) in search ranking
  • Multi-type query parsing (primary + secondary types)
  • 50+ artist style profiles with case-insensitive detection and query expansion
  • FR/VI multilingual style connectors for artist queries
  • Multi-signal classification replacing rigid if/elif chain (6 signals)
  • Added full_track content kind with effective duration trimming
  • Real byte-level download progress on splash screen
  • Path marquee scroll pauses at end before returning
  • Full Track filter chip in search UI

v0.7.6

April 2026

Activation Analytics

  • Non-blocking activation analytics reporting to landing page backend
  • Acknowledged-once model — report sent only on first activation per license
  • Automatic retry on app launch (max 3 attempts, persisted across sessions)
  • Silent failure — never blocks UI or licensing flow

Build & CI

  • Cross-platform CI build pipeline (Windows + macOS)
  • Release artifacts no longer committed to repo
  • Automated GitHub Release publishing via CI

Infrastructure

  • Desktop backend reports activation events to production analytics
  • State file persistence for offline retry tracking

Full Changelog: https://github.com/IDiscriminate/vextra/compare/v0.7.5...v0.7.6

Full Changelog: https://github.com/HyperClaire/vextra/compare/v0.7.5...v0.7.6

Full Changelog: https://github.com/HyperClaire/vextra/compare/v0.7.5...v0.7.6

v0.7.5

April 2026

v0.7.5 — Playhead fix + version bump hotfix

  • Fix waveform playhead not resetting to 0 on quick play/stop/play
  • Restart from beginning on resume instead of continuing mid-sample
  • Wait for audio canplay before starting playback on sample switch
  • Sync version display across sidebar, splash, and all config files

v0.7.4

April 2026

v0.7.4 — Hardening + Release Pipeline

  • Configurable API base URL (default: https://vextra.fr)
  • Stricter refresh validation (accept VALID only)
  • Atomic license file writes
  • URL-safe base64 signature decoding
  • Release publishing automation via Vercel Blob

v0.7.3

April 2026

v0.7.3 — Signed Entitlement System + License File Import

  • Ed25519 signed entitlement verification with embedded public key
  • Silent subscription refresh for premium_subscription tier
  • Legacy license migration (v0.3.0–v0.7.2 keys auto-upgraded)
  • Grace period support with UI state display
  • .lic file import UI in Settings panel
  • Colored activation feedback (success/error states)

v0.7.2

April 2026

v0.7.2 — Vietnamese Localization + Onboarding Hotfix

  • Rewrite all Vietnamese i18n strings for natural producer tone
  • Replace technical terms with producer-friendly language throughout
  • Rewrite Vietnamese search chips and idle sentences with producer slang
  • Improve onboarding content across all 3 languages (EN/FR/VI)
  • Explain Favorites and Collections with practical examples
  • Fix onboarding popup card sizing: consistent min-height + flexbox
  • Add vi_phrases.json for user-editable Vietnamese search enrichment
  • Load custom Vietnamese phrases into translation pipeline at startup

v0.7.1

April 2026

v0.7.1 — Window Polish Hotfix

  • Frameless window with custom title bar (minimize/maximize/close)
  • Sticky compact search overlay on all pages (search, favorites, collections)
  • Native folder picker in library panel
  • Smart scroll-into-view for rows behind sticky search
  • Scroll-on-blur UX refinements