diff --git a/AGENTS.md b/AGENTS.md index bfc6d13..8aedd2e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -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 diff --git a/README.md b/README.md index 28857ab..5e280bc 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/SECURITY.md b/SECURITY.md index 783ff1e..4cd9c1d 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -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 diff --git a/docs/INSTALL.md b/docs/INSTALL.md index 0530cae..06bed21 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.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 diff --git a/docs/RELEASE_PROCESS.md b/docs/RELEASE_PROCESS.md index 06aab7b..ab8773c 100644 --- a/docs/RELEASE_PROCESS.md +++ b/docs/RELEASE_PROCESS.md @@ -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 - - v0.5.0 Beta - +vX.Y.Z Beta ``` -Update the hero badge (around line 310): +#### 4.2 Update `web/src/app/changelog/page.tsx` -```tsx - - Beta Release โ€” Try it now! - -``` +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? diff --git a/docs/UPDATE.md b/docs/UPDATE.md index 0f24f5c..24d9041 100644 --- a/docs/UPDATE.md +++ b/docs/UPDATE.md @@ -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 diff --git a/install.sh b/install.sh index 50b5348..fcf29a7 100755 --- a/install.sh +++ b/install.sh @@ -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 diff --git a/src/vocalinux/main.py b/src/vocalinux/main.py index bff92ae..e68b76e 100644 --- a/src/vocalinux/main.py +++ b/src/vocalinux/main.py @@ -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 diff --git a/src/vocalinux/version.py b/src/vocalinux/version.py index 829479e..794c83c 100644 --- a/src/vocalinux/version.py +++ b/src/vocalinux/version.py @@ -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" diff --git a/web/package.json b/web/package.json index 03ba086..e893191 100644 --- a/web/package.json +++ b/web/package.json @@ -1,6 +1,6 @@ { "name": "vocalinux-website", - "version": "0.6.3", + "version": "0.7.0", "private": true, "type": "module", "scripts": { diff --git a/web/src/app/changelog/page.tsx b/web/src/app/changelog/page.tsx index 5124d39..57e984d 100644 --- a/web/src/app/changelog/page.tsx +++ b/web/src/app/changelog/page.tsx @@ -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", diff --git a/web/src/app/page.tsx b/web/src/app/page.tsx index 089d33d..0f2be4b 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.3-beta", + "softwareVersion": "0.7.0-beta", author: { "@type": "Person", name: "Jatin K Malik", @@ -290,7 +290,7 @@ export default function HomePage() { /> Vocalinux - v0.6.3 Beta + v0.7.0 Beta