diff --git a/AGENTS.md b/AGENTS.md
index aacfd6d..bfc6d13 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -7,9 +7,16 @@ Guidelines for AI agents working on this codebase.
Vocalinux is a voice dictation system for Linux. It uses:
- **Python 3.8+** for the main application
- **GTK 3** (via PyGObject) for the desktop UI and system tray
-- **Vosk** and **OpenAI Whisper** for speech recognition
+- **whisper.cpp** (default), **OpenAI Whisper**, and **Vosk** for speech recognition
- **Next.js/TypeScript** for the website (in `web/`)
+### Key Dependencies
+- `pywhispercpp` - Python bindings for whisper.cpp (default engine)
+- `vosk` - Lightweight speech recognition
+- `pyaudio` - Audio capture
+- `PyGObject` - GTK integration
+- `psutil` - Process utilities (required by pywhispercpp)
+
## Build & Test Commands
### Python
@@ -158,7 +165,7 @@ src/vocalinux/
├── version.py # Version info
├── common_types.py # Shared types/enums/protocols
├── speech_recognition/
-│ ├── recognition_manager.py # VOSK/Whisper management
+│ ├── recognition_manager.py # VOSK/Whisper/whisper.cpp management
│ └── command_processor.py # Voice command processing
├── text_injection/
│ └── text_injector.py # X11/Wayland text injection
@@ -168,9 +175,26 @@ src/vocalinux/
│ ├── config_manager.py # Configuration handling
│ └── keyboard_backends/ # Keyboard input handling
└── utils/
- └── resource_manager.py # Resource utilities
+ ├── resource_manager.py # Resource utilities
+ ├── whispercpp_model_info.py # whisper.cpp model metadata & hardware detection
+ └── vosk_model_info.py # VOSK model metadata
```
+## Release Process
+
+See `docs/RELEASE_PROCESS.md` for detailed release instructions.
+
+Quick summary:
+1. Update version in `src/vocalinux/version.py`
+2. Update version references in README.md, docs/INSTALL.md, docs/UPDATE.md
+3. Update web/src/app/page.tsx and web/package.json
+4. Run `make lint` to verify code quality
+5. Create branch `release/vX.Y.Z-PHASE`
+6. Commit with `chore(release): prepare vX.Y.Z-PHASE`
+7. Push and create PR
+8. After merge, create and push tag: `git tag -a vX.Y.Z-PHASE -m "Release X.Y.Z-PHASE"`
+9. GitHub Actions will build and publish automatically
+
## Commit Message Format
Follow Conventional Commits:
@@ -199,3 +223,11 @@ 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`)
+
+## Important Rules
+
+- **Never push directly to `main`** - Always create a branch and PR
+- **All changes require a PR** - Even small fixes and documentation updates
+- **Wait for CI to pass** before merging PRs
+- **Squash merge** PRs to keep history clean
diff --git a/README.md b/README.md
index ad0ada1..8cd149d 100644
--- a/README.md
+++ b/README.md
@@ -28,44 +28,32 @@
**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.1-beta
+## 📚 What's New in v0.6.2-beta
-This patch release brings significant improvements to the installation experience and GPU support!
-
-### ✨ New Features
-
-- **Interactive Backend Selection** - When installing whisper.cpp, choose between GPU (Vulkan/CUDA) or CPU backend
- - Intelligent hardware detection recommends the best option
- - Shows helpful tips when GPU libraries are missing
- - Respects your choice during installation
-
-- **Enhanced Welcome Message** - Completely redesigned end-of-installation experience
- - Shows exactly what was installed (engine, backend, locations)
- - Clear step-by-step testing instructions
- - Voice command examples ("period", "comma", "new line", "delete that")
- - All management commands in one place
-
-### 🔧 Improvements
-
-- **Simplified Install Commands** - No more `--tag` parameter needed
- - Before: `curl .../main/install.sh | bash -s -- --tag=v0.6.1-beta`
- - After: `curl .../v0.6.1-beta/install.sh | bash`
-
-- **Version Consistency** - Install script is now downloaded directly from the release tag
- - Ensures perfect version matching between script and code
- - No risk of main branch changes affecting releases
-
-- **Better GPU Support** - Fixed Vulkan development library detection
- - Properly installs `libvulkan-dev`, `glslc`/`glslang-tools`, and other required packages
- - Falls back gracefully when GPU libraries are missing
- - Clear error messages with installation instructions
+This patch release brings important bug fixes and installation improvements!
### 🐛 Bug Fixes
-- **Fixed Bash Compatibility** - Resolved `((var++))` arithmetic issues with `set -e`
-- **Fixed TTY Detection** - Interactive mode now works correctly with `--interactive` flag
-- **Auto-install Git** - Installer now automatically installs git if not present
-- **Fixed GPU Installation** - Properly executes pip commands for GPU backend installation
+- **Fixed #221**: Add missing `psutil` dependency - Fresh installs now work correctly (pywhispercpp requires psutil)
+- **Fixed #219**: Suppress `[BLANK_AUDIO]` tokens in whisper.cpp output - Cleaner transcription results
+- **Fixed #204**: Resolve PyAudio `paInt16` attribute error on audio device reconnection
+- **Fixed #205**: Ensure whisper module is properly installed with `--auto` flag
+
+### 🔧 Improvements
+
+- **Better Multi-Distro Installation** - Improved Vulkan shader package detection and installation for Ubuntu, Debian, Fedora, Arch, and more
+- **CI Improvements** - Fixed nightly build tag cleanup and older release deletion
+
+---
+
+## Previous Release: v0.6.2-beta
+
+**Installation experience improvements!**
+
+- **Interactive Backend Selection** - Choose between GPU (Vulkan/CUDA) or CPU backend
+- **Enhanced Welcome Message** - Redesigned end-of-installation experience
+- **Simplified Install Commands** - No more `--tag` parameter needed
+- **Better GPU Support** - Fixed Vulkan development library detection
---
@@ -143,7 +131,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.1-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh
+curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh
```
**Choose your engine:**
@@ -157,25 +145,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.1-beta. For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases).
+> **Note**: Installs v0.6.2-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.1-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh
+curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-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.1-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=whisper
+curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-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.1-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=vosk
+curl -fsSL raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-beta/install.sh -o /tmp/vl.sh && bash /tmp/vl.sh --engine=vosk
```
Lightweight option (~40MB), works on systems with 4GB RAM.
diff --git a/docs/INSTALL.md b/docs/INSTALL.md
index 135c09a..1a972dd 100644
--- a/docs/INSTALL.md
+++ b/docs/INSTALL.md
@@ -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.1-beta/install.sh | bash
+curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-beta/install.sh | bash
```
-> **Note**: Installs v0.6.1-beta with **whisper.cpp** (our new default engine). For other versions, check [GitHub Releases](https://github.com/jatinkrmalik/vocalinux/releases).
+> **Note**: Installs v0.6.2-beta with **whisper.cpp** (our new 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!)
@@ -495,7 +495,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.1-beta/install.sh | bash
+curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-beta/install.sh | bash
```
## Getting Help
diff --git a/docs/UPDATE.md b/docs/UPDATE.md
index 06275c8..7d01291 100644
--- a/docs/UPDATE.md
+++ b/docs/UPDATE.md
@@ -2,38 +2,33 @@
This guide explains how to update Vocalinux to the latest version.
-## What's New in v0.6.1-beta
-
-### ✨ New Features
-
-- **Interactive Backend Selection**: When installing whisper.cpp, you can now choose between GPU (Vulkan/CUDA) or CPU backend with intelligent hardware detection
-- **Enhanced Welcome Message**: Completely redesigned end-of-installation message showing what was installed, testing instructions, and voice command examples
-
-### 🔧 Improvements
-
-- **Version Consistency**: Install commands now download install.sh directly from the release tag, ensuring perfect version matching
-- **Simplified Install Commands**: No more `--tag` parameter needed - cleaner syntax like `curl .../v0.6.1-beta/install.sh | bash`
-- **Better GPU Support**: Fixed Vulkan development library detection and installation
+## What's New in v0.6.2-beta
### 🐛 Bug Fixes
-- **Fixed TTY Check**: Interactive mode now works correctly with `--interactive` flag
-- **Auto-install Git**: Installer now automatically installs git if not present
-- **GPU Installation**: Fixed pip command execution for GPU backend installation
-- **Bash Arithmetic**: Fixed issues with `((var++))` and `set -e` compatibility
+- **Fixed #221**: Add missing `psutil` dependency - Fresh installs now work correctly (pywhispercpp requires psutil internally)
+- **Fixed #219**: Suppress `[BLANK_AUDIO]` tokens in whisper.cpp output - Cleaner transcription results
+- **Fixed #204**: Resolve PyAudio `paInt16` attribute error on audio device reconnection
+- **Fixed #205**: Ensure whisper module is properly installed with `--auto` flag
-### 📚 Documentation
+### 🔧 Improvements
-- Updated all install commands to use tag-based URLs
-- Improved error messages with correct install instructions
-- Better inline help in install script
+- **Better Multi-Distro Installation** - Improved Vulkan shader package detection and installation for Ubuntu, Debian, Fedora, Arch, and more
+- **CI Improvements** - Fixed nightly build tag cleanup and older release deletion
-See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.6.1-beta).
+See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.6.2-beta).
---
## Previous Versions
+### v0.6.2-beta
+
+- **Interactive Backend Selection**: Choose between GPU (Vulkan/CUDA) or CPU backend
+- **Enhanced Welcome Message**: Redesigned end-of-installation experience
+- **Simplified Install Commands**: No more `--tag` parameter needed
+- **Better GPU Support**: Fixed Vulkan development library detection
+
### v0.6.0-beta
- **whisper.cpp as default engine**: Fast, works with any GPU via Vulkan
@@ -50,7 +45,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/
Simply re-run the installation command with the new version 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/v0.6.2-beta/install.sh | bash
```
The installer will:
@@ -65,7 +60,7 @@ The installer will:
```bash
cd vocalinux
git fetch origin
-git checkout v0.6.1-beta
+git checkout v0.6.2-beta
./install.sh
```
@@ -91,7 +86,7 @@ cd vocalinux
./install.sh --tag=v0.4.1-alpha
# Or via curl (for any installation)
-curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.1-beta/install.sh | bash
+curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-beta/install.sh | bash
```
**What gets preserved:**
@@ -109,7 +104,7 @@ cd vocalinux
# 2. Pull the latest changes
git fetch origin
-git checkout v0.6.1-beta
+git checkout v0.6.2-beta
# 3. Activate your virtual environment
source venv/bin/activate
@@ -138,7 +133,7 @@ git describe --tags
---
-## What's New in v0.6.1-beta
+## What's New in v0.6.2-beta
### 🚀 Major Feature: whisper.cpp is Now Default!
@@ -157,7 +152,7 @@ This release brings **whisper.cpp** as the new default speech recognition engine
- **Enhanced logging**: Comprehensive debug info for whisper.cpp troubleshooting
- **Better documentation**: Updated all docs to reflect whisper.cpp as the new default
-See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.6.1-beta).
+See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/v0.6.2-beta).
---
@@ -192,7 +187,7 @@ See the [full changelog](https://github.com/jatinkrmalik/vocalinux/releases/tag/
./uninstall.sh --keep-config --keep-data
# Reinstall
-curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.1-beta/install.sh | bash
+curl -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/v0.6.2-beta/install.sh | bash
```
### Old Version Still Running
diff --git a/src/vocalinux/version.py b/src/vocalinux/version.py
index 39c3362..63e54a4 100644
--- a/src/vocalinux/version.py
+++ b/src/vocalinux/version.py
@@ -2,8 +2,8 @@
Version information for Vocalinux.
"""
-__version__ = "0.6.1-beta"
-__version_info__ = (0, 6, 1, "beta")
+__version__ = "0.6.2-beta"
+__version_info__ = (0, 6, 2, "beta")
__author__ = "Jatin K Malik"
__email__ = "jatinkrmalik@gmail.com"
__license__ = "GPL-3.0"
diff --git a/web/package.json b/web/package.json
index 9554b67..f6b2cd1 100644
--- a/web/package.json
+++ b/web/package.json
@@ -1,6 +1,6 @@
{
"name": "vocalinux-website",
- "version": "0.6.1",
+ "version": "0.6.2",
"private": true,
"type": "module",
"scripts": {
diff --git a/web/src/app/page.tsx b/web/src/app/page.tsx
index d5905f8..4bd1bda 100644
--- a/web/src/app/page.tsx
+++ b/web/src/app/page.tsx
@@ -65,7 +65,7 @@ const homeJsonLd = [
},
description:
"Offline voice dictation and speech-to-text for Linux with whisper.cpp and VOSK.",
- "softwareVersion": "0.6.1-beta",
+ "softwareVersion": "0.6.2-beta",
author: {
"@type": "Person",
name: "Jatin K Malik",
@@ -290,7 +290,7 @@ export default function HomePage() {
/>
Vocalinux
- v0.6.1 Beta
+ v0.6.2 Beta