* fix(landing): use qwen_custom_voice in API example (instruct is CustomVoice-only)
The curl snippet showed engine: "qwen" alongside an instruct field, but base
Qwen3-TTS has no instruct path — that's a Qwen CustomVoice feature.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
* fix(landing): use a realistic UUID for profile_id in API example
Profile IDs are str(uuid.uuid4()), not slugs (see backend/services/profiles.py:175).
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
* feat(landing): add polished /download page — no more dumping users on GitHub
Users were clicking download, landing on the GitHub releases page, and filing
confused comments along the lines of "I ended up on some blog site called
GitHub." We now route every download CTA through a dedicated /download page
that auto-triggers the platform-specific download and gives users a polished
post-click experience with donate + docs + AI help prompts.
- New /download page:
- Big app logo + "Your download has started" messaging.
- Auto-detects platform from ?platform=X or navigator.userAgent.
- Programmatically clicks a hidden anchor to trigger the file download
without leaving the page.
- Platform-specific buttons as a visible fallback for "download not
working" / manual-pick.
- Personal donate spiel + Buy Me a Coffee button.
- Resources grid: docs, DeepWiki ("got questions? ask AI"), GitHub.
- Landing page download section cards now link to /download?platform=X
instead of the asset URL directly.
- /download/[platform] (used by README/docs links) now redirects to the
/download page rather than straight to the asset or to GitHub on error.
- Drops unused downloadLinks state from the landing page.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
* fix(landing): use official platform brand icons via simple-icons
The hand-rolled Linux SVG path wasn't actually Tux — it was a symmetric
placeholder shape. Apple/Windows were close but not canonical either.
- Apple + Linux: pulled from @icons-pack/react-simple-icons (SiApple, SiLinux).
- Windows: simple-icons drops the Microsoft mark over trademark policy, so
the Windows 11 flag is inlined from Microsoft's public brand guidance.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
* fix(landing): route Download CTAs to /download page, not the section anchor
Hero CTA, navbar link, and footer link were all scrolling to #download
(the section at the bottom of the page) instead of going to the new
/download page that triggers the actual download.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
* chore(landing): run dev server on Node instead of Bun runtime
Bun runtime + Next 16 Turbopack dev server intermittently trips a
JavaScriptCore allocator panic ('pas panic: deallocation did fail ...
Alloc bit not set') after a few requests. Dropping --bun keeps Bun as
the package manager but runs next dev on Node, which is stable.
Build + start keep --bun since one-shot invocations don't exhibit the
allocator drift.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
* fix(landing): route Linux users to /linux-install instead of attempting download
No prebuilt Linux binary exists yet (see /linux-install for build-from-source
instructions). The /download page previously treated Linux like the other
platforms — auto-triggering a non-existent AppImage and offering a dead
manual button.
- /download page: if platform resolves to 'linux' via ?platform or UA detect,
window.location.replace('/linux-install') — never try to auto-download.
- Manual Linux card: label changed to "Build from source" and links to
/linux-install (no download attribute, no asset URL).
- /download/linux pretty URL: 307s straight to /linux-install.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
* docs: consolidate troubleshooting into the MDX docs site + status updates
- Delete docs/TROUBLESHOOTING.md; the canonical troubleshooting guide now
lives under docs/content/docs/overview/troubleshooting.mdx so it's served
from docs.voicebox.sh alongside the rest of the docs.
- CONTRIBUTING.md + README.md: repoint "Troubleshooting" references to the
new MDX path. README gets a top-level callout so users hit the guide
before filing an issue.
- PROJECT_STATUS.md: refresh issue/PR counts, document the flash-attn
warning (cosmetic on all platforms; CUDA-only, fallback is PyTorch SDPA
which is near-FA2 on Ampere+) with per-platform context + community
Windows wheels + SageAttention/xformers alternatives, add WebAudio
audio-session bug note (tracked separately in PR #486), and expand the
Qwen 0.6B→1.7B MLX fallback explanation for triage.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
* fix(landing): address PR #487 review feedback
- Preserve canonical camelCase platform aliases (macArm, macIntel) in the
/download/[platform] redirect so those URLs don't lose their platform param.
- Add accessible title + role="img" to the inline Windows SVG so it passes
Biome's a11y rule and announces to screen readers.
- On /api/releases fetch failure, show an explicit error state with a single
intentional link to GitHub releases — no more silent GitHub fallback or
disabled-button UX lie. Keeps normies off GitHub unless they opt in.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
Adds 'just' as the recommended dev tool: 'just setup' for one-time
install, 'just dev' to run backend + frontend in one terminal.
Updates CONTRIBUTING.md to document just as the primary setup method.
- Added support for MLX backend on Apple Silicon, enabling optimized performance for TTS and STT tasks.
- Implemented platform detection to dynamically select between MLX and PyTorch based on the runtime environment.
- Updated build process to include MLX-specific dependencies and configurations for macOS.
- Refactored backend code to improve model loading and inference logic, accommodating backend-specific requirements.
- Enhanced documentation to clarify backend selection and performance benefits for different platforms.
- Streamlined installation instructions and troubleshooting guidance for MLX-related issues.
- Created a new .npmrc file to enforce bun usage.
- Bumped version numbers for multiple packages to 0.1.9 in bun.lock.
- Added react-sound-visualizer dependency to enhance audio visualization features.
- Introduced convert:assets script in package.json for asset optimization.
- Updated CONTRIBUTING.md with instructions for converting assets to web formats.
- Added documentation files for API endpoints and developer guidelines in the docs directory.
- Add exit 1 to test-backend when pytest not installed
- Add exit 1 to test-frontend when no test script configured
- Add venv dependency to db-init target
- Document Makefile usage in CONTRIBUTING.md
- Updated CONTRIBUTING.md to include instructions for building with a local Qwen3-TTS development version, facilitating easier testing and development.
- Refactored FloatingGenerateBox component to streamline the rendering of text and instruct fields, improving code readability and maintainability.
- Added functionality to handle auto-resizing of text areas based on content changes, enhancing user experience.
- Improved event handling for keyboard interactions in StoryTrackEditor, allowing for play/pause functionality with the spacebar.
- Introduced a MiniSamplePlayer component in SampleList for better audio playback control, including play, pause, and seek features.
- Implemented sample update functionality in the backend, allowing users to edit reference text for audio samples, with appropriate error handling and user feedback.
Previously, running `bun run dev` would fail because Tauri requires
the sidecar binary to exist at compile time, even in development mode.
This forced developers to build the full PyInstaller binary before
they could start development.
This change introduces a streamlined dev workflow:
1. Add `scripts/setup-dev-sidecar.js` - Creates minimal placeholder
binaries that satisfy Tauri's compile-time check. Works cross-platform
(Windows PE stub, Unix shell script).
2. Update Rust code to gracefully handle dev mode - When the sidecar
fails to start, it checks if a manually-started server is already
running on the expected port and connects to it instead.
3. Update npm scripts - `bun run dev` now auto-runs the setup script,
and `dev:server` uses the correct port (17493).
4. Update CONTRIBUTING.md with clearer dev workflow documentation.
New development workflow:
Terminal 1: bun run dev:server
Terminal 2: bun run dev
The bundled binary is only required for production builds.
- Updated CONTRIBUTING.md with detailed setup instructions for Bun, Python, and Rust.
- Removed SETUP.md as its content is now integrated into CONTRIBUTING.md.
- Adjusted README.md to reference the new contribution guidelines.
- Improved the HistoryTable component for better accessibility and user interaction.
- Updated global styles and landing page elements for improved aesthetics and functionality.