chore(release): prepare v0.7.0-beta (#255)

* chore(release): prepare v0.7.0-beta

## Version Bump (v0.6.3-beta → v0.7.0-beta)

This is a major beta release with significant new features including autostart support, tabbed settings, and improved GPU detection.

### Core Version Files
- Updated src/vocalinux/version.py to 0.7.0-beta
- Updated pyproject.toml classifiers (already correct - Beta)

### Documentation
- Updated README.md with new features, bug fixes, and version references
- Updated docs/INSTALL.md with v0.7.0-beta install commands
- Updated docs/UPDATE.md with comprehensive 'What's New' section
- Updated SECURITY.md supported versions table (0.7.x now supported)

### Website
- Updated web/src/app/page.tsx version badge (v0.7.0 Beta)
- Updated web/src/app/page.tsx softwareVersion schema
- Updated web/package.json version to 0.7.0
- Updated web/src/app/changelog/page.tsx with v0.7.0-beta release entry

### Other Updates
- Updated install.sh default tag to v0.7.0-beta
- Updated src/vocalinux/main.py error message install command
- Updated AGENTS.md branch naming example

## Changes Since v0.6.3-beta

### New Features (13 commits)
- Autostart on login support via XDG autostart
- Tabbed settings dialog with 5 organized tabs
- Intel GPU compatibility detection with automatic CPU fallback
- Single instance prevention
- Evdev device management to prevent CPU spin
- Improved GPU detection avoiding false positives
- IBus fallback when daemon not running
- Fedora dnf check-update fix
- Web SEO - 7 new optimized pages

### Contributors
- Jatin K Malik (maintainer)
- Antoine Monnet (contributor)
- jatinkrmalik (contributor)

### Bug Fixes
- #254: Improved GPU detection to avoid false positives
- #251: Skip IBus setup when daemon not running
- #243: Prevent dnf check-update from exiting script on Fedora
- #240: Raise exception on IBus setup failure
- #234: Removed leading space from first speech transcription
- #242/#253: Removed disconnected evdev devices to prevent CPU spin

## Verification
- [x] Lint passed
- [x] Black formatting passed
- [x] isort check passed
- [x] Version imports correctly as 0.7.0-beta

* docs: update version history in RELEASE_PROCESS.md

Add entries for 0.6.0-beta through 0.7.0-beta to the version history table.
This commit is contained in:
Jatin K Malik
2026-02-22 21:30:05 -08:00
committed by GitHub
parent 8d898de5e8
commit 6e02e928ae
12 changed files with 111 additions and 79 deletions
+1 -1
View File
@@ -223,7 +223,7 @@ docs(readme): update installation instructions
- `docs/` - Documentation updates
- `refactor/` - Code refactoring
- `test/` - Test additions/updates
- `release/` - Release preparation (e.g., `release/v0.6.2-beta`)
- `release/` - Release preparation (e.g., `release/v0.7.0-beta`)
## Important Rules
+29 -29
View File
@@ -28,42 +28,42 @@
**A seamless free open-source private voice dictation system for Linux**, comparable to built-in solutions on macOS and Windows.
## 📚 What's New in v0.6.3-beta
## 📚 What's New in v0.7.0-beta
> 🎉 **Beta Release with whisper.cpp!** — Fast, private, offline voice dictation for Linux.
> 🎉 **Major Release: Autostart, Tabbed Settings & Intel GPU Support!** — The most feature-rich Vocalinux release yet.
### 🚀 Highlights (v0.6.0 → v0.6.3)
### 🚀 Highlights (v0.6.3 → v0.7.0)
| Feature | Description |
|---------|-------------|
| **⚡ whisper.cpp Default** | 10x faster installation (~1-2 min), C++ optimized inference |
| **🎮 Universal GPU Support** | Vulkan acceleration for AMD, Intel, and NVIDIA GPUs |
| **📦 Interactive Installer** | Choose between 3 engines with hardware auto-detection |
| **🔧 Multi-Distro Support** | Works on Ubuntu, Debian, Fedora, Arch, and more |
| **🖥️ Autostart Support** | Launch Vocalinux automatically on desktop session startup |
| **⚙️ Tabbed Settings** | Completely redesigned settings dialog with organized tabs |
| **🎮 Intel GPU Detection** | Automatically detects incompatible Intel GPUs and falls back to CPU |
| **🔒 Single Instance** | Prevents multiple Vocalinux instances from running simultaneously |
### ✨ New Features (v0.6.3)
### ✨ New Features (v0.7.0)
- **IBus Text Injection Engine** — Full Wayland support via IBus input method
- **X11 IBus Support** — Extended IBus support to X11 for non-US keyboard layouts
- **Thread-Safe Model Access** — Improved stability with concurrent model operations
- **Autostart on Login** — Added XDG autostart support via settings dialog and system tray
- **Tabbed Settings Dialog** — reorganized settings into Speech Engine, Recognition, Text Injection, Audio Feedback, and General tabs
- **Intel GPU Compatibility Detection** — Detects incompatible Intel GPUs and automatically falls back to CPU processing
- **Multiple Instance Prevention** — Shows notification and exits if Vocalinux is already running
- **Evdev Device Management** — Automatically removes disconnected input devices to prevent CPU spin
### 🐛 Bug Fixes (v0.6.3)
### 🐛 Bug Fixes (v0.7.0)
- **#229**: Fixed `[BLANK_AUDIO]` token suppression in whisper.cpp output
- **#228**: Removed premature pkg-config check in installer
- **#227**: Fixed text injection for non-US keyboard layouts on X11
- **#216**: Fixed thread safety crash when accessing speech models
- **#221**: Fixed missing `psutil` dependency for fresh installs
- **#219**: Suppressed `[BLANK_AUDIO]` tokens in whisper.cpp output
- **#204**: Fixed PyAudio `paInt16` error on device reconnection
- **#205**: Fixed whisper module installation with `--auto` flag
- **#254**: Improved GPU detection to avoid false positives on systems without dev libraries
- **#251**: Skip IBus setup when daemon is not running, enable fallback to other methods
- **#243**: Prevent `dnf check-update` from exiting script on Fedora
- **#240**: Raise exception on IBus setup failure to enable automatic fallback
- **#234**: Removed leading space from first speech transcription
- **#242/#253**: Removed disconnected evdev devices to prevent CPU spin
### 🔧 Recent Improvements
- **Interactive Backend Selection** — Choose GPU (Vulkan/CUDA) or CPU backend
- **Enhanced Welcome Message** — Clear post-install instructions
- **Simplified Install Commands** — No more `--tag` parameter needed
- **Better Vulkan Detection** — Improved shader package installation
- **Web SEO Enhancements** — Added 7 new optimized pages for organic traffic
- **Mobile Responsiveness** — Improved mobile and tablet layout for the website
- **Better Fedora Support** — Fixed dnf check-update behavior
- **Improved Device Handling** — More robust handling of input device connections/disconnections
---
@@ -121,7 +121,7 @@ Here are some screenshots showcasing Vocalinux in action:
Our new interactive installer guides you through setup with intelligent hardware detection:
```bash
curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.3-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh
curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh
```
**Choose your engine:**
@@ -135,25 +135,25 @@ The installer will:
- **Download the appropriate model** (~39MB for whisper.cpp tiny)
- **Install in ~1-2 minutes** (vs 5-10 min with old Whisper)
> **Note**: Installs v0.6.3-beta. For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases).
> **Note**: Installs v0.7.0-beta. For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases).
### Installation Options
**Default (whisper.cpp - recommended):**
```bash
curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.3-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh
curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh
```
Fastest installation (~1-2 min), universal GPU support via Vulkan.
**Whisper (OpenAI) - if you prefer PyTorch:**
```bash
curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.3-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=whisper
curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=whisper
```
NVIDIA GPU only (~5-10 min, downloads PyTorch + CUDA).
**VOSK only - for low-RAM systems:**
```bash
curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.3-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=vosk
curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=vosk
```
Lightweight option (~40MB), works on systems with 4GB RAM.
+3 -3
View File
@@ -4,10 +4,10 @@
| Version | Supported |
| ------- | ------------------ |
| 0.6.x | :white_check_mark: |
| 0.7.x | :white_check_mark: |
| 0.6.x | :x: |
| 0.5.x | :x: |
| 0.4.x | :x: |
| < 0.4 | :x: |
| < 0.5 | :x: |
## Reporting a Vulnerability
+4 -4
View File
@@ -7,10 +7,10 @@ This guide provides detailed instructions for installing Vocalinux on Linux syst
### One-liner Installation (Recommended)
```bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.3-beta/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh | bash
```
> **Note**: Installs v0.6.3-beta with **whisper.cpp** (our new default engine). For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases).
> **Note**: Installs v0.7.0-beta with **whisper.cpp** (our default engine). For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases).
That's it! The installer handles everything automatically:
- ✅ Installs whisper.cpp (~1-2 minutes, no heavy dependencies!)
@@ -60,7 +60,7 @@ The new interactive installer guides you through engine selection:
**Choose your engine:**
1. **whisper.cpp** ⭐ (Recommended) - Fast, works with any GPU via Vulkan
2. **Whisper** (OpenAI) - PyTorch-based, NVIDIA GPU only
2. **Whisper** (OpenAI) - PyTorch-based, NVIDIA GPU only
3. **VOSK** - Lightweight, works on older systems
The installer will auto-detect your hardware and recommend the best option!
@@ -508,7 +508,7 @@ Already have Vocalinux installed? See the [Update Guide](UPDATE.md) for instruct
Quick update command:
```bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.3-beta/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh | bash
```
## Getting Help
+17 -20
View File
@@ -19,8 +19,7 @@ Use this checklist for every release:
### Core Version Files
- [ ] `src/vocalinux/version.py` - Update `__version__` and `__version_info__`
- [ ] `pyproject.toml` - Update classifiers (Alpha→Beta→Stable)
- [ ] `setup.py` - Update classifiers
- [ ] `pyproject.toml` - Update classifiers (Alpha→Beta→Stable) - usually already correct
### Documentation
- [ ] `README.md` - Update badges, install commands, and announcements
@@ -29,8 +28,9 @@ Use this checklist for every release:
- [ ] `SECURITY.md` - Update supported versions table
### Website
- [ ] `web/src/app/layout.tsx` - Update `softwareVersion` in schema
- [ ] `web/src/app/page.tsx` - Update version badge (e.g., "v0.5.0 Beta")
- [ ] `web/src/app/page.tsx` - Update `softwareVersion` in schema (around line 68)
- [ ] `web/src/app/page.tsx` - Update version badge in header (around line 293)
- [ ] `web/src/app/changelog/page.tsx` - Add new release entry to changelog
- [ ] `web/package.json` - Update version field
### Testing & Verification
@@ -112,7 +112,7 @@ Change the Development Status classifier:
**Install Commands:**
Update all curl commands to use the new tag:
```bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.1-beta/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/vX.Y.Z-PHASE/install.sh | bash
```
**Release Announcement (lines ~31-34):**
@@ -162,31 +162,23 @@ Update the supported versions table:
### Step 4: Update Website
#### 4.1 Update `web/src/app/layout.tsx`
#### 4.1 Update `web/src/app/page.tsx`
Update the schema.org softwareVersion (around line 123):
Update the schema.org softwareVersion (around line 68):
```typescript
"softwareVersion": "0.5.0-beta",
"softwareVersion": "vX.Y.Z-PHASE",
```
#### 4.2 Update `web/src/app/page.tsx`
Update the version badge in the header (around line 207):
Update the version badge in the header (around line 293):
```tsx
<span className="hidden sm:inline-block text-xs bg-gradient-to-r from-primary/20 to-green-500/20 text-primary border border-primary/30 px-2.5 py-1 rounded-full font-semibold shadow-sm shadow-primary/20">
v0.5.0 Beta
</span>
vX.Y.Z Beta
```
Update the hero badge (around line 310):
#### 4.2 Update `web/src/app/changelog/page.tsx`
```tsx
<span className="text-sm font-medium text-primary">
Beta Release — Try it now!
</span>
```
Add new release entry to the `releases` array at the top of the file.
#### 4.3 Update `web/package.json`
@@ -329,6 +321,11 @@ git push origin v0.5.1-beta
| 0.4.0-alpha | 2024 | Alpha | Multi-language support |
| 0.4.1-alpha | 2024 | Alpha | Language selector UI |
| 0.5.0-beta | 2025 | Beta | First beta release |
| 0.6.0-beta | 2026-02-11 | Beta | Web SEO, mobile responsiveness, improved Fedora support |
| 0.6.1-beta | 2026-02-12 | Beta | Device handling improvements |
| 0.6.2-beta | 2026-02-17 | Beta | Bug fixes |
| 0.6.3-beta | 2026-02-19 | Beta | GPU detection improvements |
| 0.7.0-beta | 2026 | Beta | Autostart, tabbed settings, Intel GPU support, single instance |
## Questions?
+32 -13
View File
@@ -2,23 +2,42 @@
This guide explains how to update Vocalinux to the latest version.
## What's New in v0.6.3-beta
## What's New in v0.7.0-beta
### 🚀 Highlights
| Feature | Description |
|---------|-------------|
| **🖥️ Autostart Support** | Launch Vocalinux automatically on desktop session startup |
| **⚙️ Tabbed Settings** | Completely redesigned settings dialog with organized tabs |
| **🎮 Intel GPU Detection** | Automatically detects incompatible Intel GPUs and falls back to CPU |
| **🔒 Single Instance** | Prevents multiple Vocalinux instances from running simultaneously |
### ✨ New Features
- **Autostart on Login** — Added XDG autostart support via settings dialog and system tray
- **Tabbed Settings Dialog** — Reorganized settings into Speech Engine, Recognition, Text Injection, Audio Feedback, and General tabs
- **Intel GPU Compatibility Detection** — Detects incompatible Intel GPUs and automatically falls back to CPU processing
- **Multiple Instance Prevention** — Shows notification and exits if Vocalinux is already running
- **Evdev Device Management** — Automatically removes disconnected input devices to prevent CPU spin
### 🐛 Bug Fixes
- **Fixed #220**: Installer default tag now points to correct version
- **Fixed #221**: Add missing `psutil` dependency for fresh installs
- **Fixed #219**: Suppress `[BLANK_AUDIO]` tokens in whisper.cpp output
- **Fixed #204**: Resolve PyAudio `paInt16` attribute error on audio device reconnection
- **Fixed #205**: Ensure whisper module is properly installed with `--auto` flag
- **#254**: Improved GPU detection to avoid false positives on systems without dev libraries
- **#251**: Skip IBus setup when daemon is not running, enable fallback to other methods
- **#243**: Prevent `dnf check-update` from exiting script on Fedora
- **#240**: Raise exception on IBus setup failure to enable automatic fallback
- **#234**: Removed leading space from first speech transcription
- **#242/#253**: Removed disconnected evdev devices to prevent CPU spin
### 🔧 Improvements
- **Process Check & Interactive Prompts** - Installer now detects and prompts to stop running Vocalinux before updating
- **Command Processor Fix** - No more leading space on first speech transcription
- **Better Multi-Distro Installation** - Improved Vulkan shader package detection
- **Web SEO Enhancements** — Added 7 new optimized pages for organic traffic
- **Mobile Responsiveness** — Improved mobile and tablet layout for the website
- **Better Fedora Support** — Fixed dnf check-update behavior
- **Improved Device Handling** — More robust handling of input device connections/disconnections
See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.6.3-beta).
See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.7.0-beta).
---
@@ -29,7 +48,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/
Simply re-run the installation command:
```bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.3-beta/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh | bash
```
The installer will:
@@ -43,7 +62,7 @@ The installer will:
```bash
cd vocalinux
git fetch origin
git checkout v0.6.3-beta
git checkout v0.7.0-beta
./install.sh
```
@@ -79,7 +98,7 @@ If your update doesn't go smoothly, try a clean reinstall:
./uninstall.sh
# Reinstall fresh
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.3-beta/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh | bash
```
### Old Version Still Running
+3 -3
View File
@@ -174,7 +174,7 @@ while [[ $# -gt 0 ]]; do
echo " --test Run tests after installation"
echo " --venv-dir=PATH Specify custom virtual environment directory"
echo " --skip-models Skip downloading speech models during installation"
echo " --tag=TAG Install specific release tag (default: v0.6.3-beta)"
echo " --tag=TAG Install specific release tag (default: v0.7.0-beta)"
echo " --help Show this help message"
echo ""
echo "Examples:"
@@ -215,7 +215,7 @@ echo ""
check_running_processes
INSTALL_TAG="${INSTALL_TAG:-v0.6.3-beta}"
INSTALL_TAG="${INSTALL_TAG:-v0.7.0-beta}"
# Check if running from within the vocalinux repo or remotely (via curl)
REPO_URL="https://github.com/jatinkrmalik/vocalinux.git"
@@ -1073,7 +1073,7 @@ if [[ "$INTERACTIVE_MODE" == "yes" ]]; then
if [ ! -t 0 ]; then
print_error "Interactive mode requires a terminal (TTY)."
print_error "Please run from a terminal, or use automatic mode:"
print_error " curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.3-beta/install.sh | bash"
print_error " curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh | bash"
exit 1
fi
+1 -1
View File
@@ -128,7 +128,7 @@ def check_dependencies():
logger.error("")
logger.error("For the best experience, install using the recommended method:")
logger.error(
" curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.1-beta/install.sh | bash"
" curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.7.0-beta/install.sh | bash"
)
return False
+2 -2
View File
@@ -2,8 +2,8 @@
Version information for Vocalinux.
"""
__version__ = "0.6.3-beta"
__version_info__ = (0, 6, 3, "beta")
__version__ = "0.7.0-beta"
__version_info__ = (0, 7, 0, "beta")
__author__ = "Jatin K Malik"
__email__ = "jatinkrmalik@gmail.com"
__license__ = "GPL-3.0"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "vocalinux-website",
"version": "0.6.3",
"version": "0.7.0",
"private": true,
"type": "module",
"scripts": {
+16
View File
@@ -5,6 +5,22 @@ import { SeoSubpageShell } from "@/components/seo-subpage-shell";
import { absoluteUrl, buildPageMetadata } from "@/lib/seo";
const releases = [
{
version: "v0.7.0-beta",
date: "2026-02-22",
type: "beta",
highlights: [
"Autostart on login support (XDG autostart)",
"Tabbed settings dialog (Speech Engine, Recognition, Text Injection, Audio Feedback, General)",
"Intel GPU compatibility detection - auto fallback to CPU for incompatible GPUs",
"Single instance prevention - prevents multiple Vocalinux running",
"Evdev device management - removes disconnected devices to prevent CPU spin",
"Improved GPU detection - avoids false positives on systems without dev libraries",
"IBus fallback - skip setup when daemon not running",
"Fedora dnf check-update fix",
"Web SEO - 7 new optimized pages",
],
},
{
version: "v0.6.3-beta",
date: "2026-02-19",
+2 -2
View File
@@ -65,7 +65,7 @@ const homeJsonLd = [
},
description:
"Offline voice dictation and speech-to-text for Linux with whisper.cpp and VOSK.",
"softwareVersion": "0.6.3-beta",
"softwareVersion": "0.7.0-beta",
author: {
"@type": "Person",
name: "Jatin K Malik",
@@ -290,7 +290,7 @@ export default function HomePage() {
/>
<span className="font-bold text-lg sm:text-xl">Vocalinux</span>
<span className="hidden sm:inline-block text-xs bg-gradient-to-r from-primary/20 to-green-500/20 text-primary border border-primary/30 px-2.5 py-1 rounded-full font-semibold shadow-sm shadow-primary/20">
v0.6.3 Beta
v0.7.0 Beta
</span>
</Link>