All notable changes to VibeBase will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Git Status Indicator: Added real-time Git status indicator component showing repository state
- Git Commit Message Generator: Integrated LLM-based commit message generation with configurable settings
- Support for custom prompt templates
- Automatic generation based on staged changes
- Configurable settings in Git configuration dialog
- Tag Management Enhancement: Added
TagInputcomponent with autocomplete support- Enhanced search with tag mode and tag suggestions
- Improved tag input UI across multiple components
- Dependency Updates:
- Updated
@tauri-apps/plugin-dialogto v2.6.0 - Updated
cocoadependency to version 0.25 on macOS - Updated various Rust dependencies in Cargo.lock
- Updated
- Internationalization Improvements: Completed i18n coverage for remaining components
- Added i18n support to
NewFolderDialogandNewPromptDialogcomponents - Internationalized
GitConfigDialogandGitSettingsPanelUI strings - Internationalized
CustomProviderDialogcomponent - Removed default translation fallback strings from
HistoryPaneland Inspector tabs - Replaced hardcoded alerts and UI strings with i18n translation keys in Navigator
- Updated Traditional Chinese, Simplified Chinese, and English locale translations
- Added i18n support to
- Window Styling Refinements:
- Refactored border radius logic in Arena windows (ArenaWindow, ArenaHistoryWindow, ArenaStatisticsWindow)
- Refactored window controls border radius styling
- Added
standalone-windowclass to html tag for better window management - Enhanced macOS window styling and effects
- Code Quality Improvements:
- Removed unnecessary wrapper divs in Arena components (ArenaApp, ArenaHistoryApp, ArenaStatisticsApp)
- Refactored
VariablesManagerfor improved i18n and UI consistency - Refactored tag input components to use unified
TagInputcomponent
- Git Operations: Added detailed logging to Git pull and push operations for better debugging
- Database Schema: Added
git_configmigration andget_all_tagsmethod - Configuration: Added Cargo config to allow
unexpected_cfgslint - Auto-configuration: Auto-set Git workspace path on project open for better UX
- Added
commit_message_generatormodule to services - Added commit message generation settings to GitConfig
- Enhanced database schema with
commit_message_settingsingit_configtable - Added
get_all_tagscommand to retrieve unique tags from database - Improved Git command logging for better troubleshooting
- Internationalization Improvements: Enhanced multi-language support for button hover tooltips across the interface
- All buttons in Variables Manager now use i18n translations for tooltips
- "Global Variables" and "Settings" button tooltips in the Header toolbar are now internationalized
- Inspector area placeholder text when no file is selected is now internationalized
- All translations synchronized across Simplified Chinese, Traditional Chinese, and English
- Fixed missing internationalization for hover tooltips on various UI elements
- Improved consistency of multi-language user experience across the interface
This release represents a significant architectural upgrade with the migration from Tauri 1.x to Tauri 2.0, introducing breaking changes in the permission system and window management.
- Real-time Token Estimation: Added live token counting in the editor header using
js-tiktoken- Displays estimated token count for current Markdown file (gpt-4/cl100k_base encoding)
- Shows "..." loading state when switching files or during calculation
- 800ms debounce to prevent UI freezing during typing
- Token count displayed in right side of editor header with "Tokens: XXX" format
- Automatically hidden when viewing history versions
- Uses thousand separators for better readability (e.g., "1,234")
- Tauri 2.0 Permission System (ACL): Implemented comprehensive capability-based permission system
- Created
src-tauri/capabilities/default.jsonwith all necessary window management permissions - Added explicit permissions for window close, minimize, maximize, dragging, and focus operations
- Resolved all window operation failures caused by missing permissions in Tauri 2.0
- Created
- Multi-Platform Window Styling: Optimized independent window appearance for different operating systems
- macOS: Large rounded corners (
rounded-xl- 12px) with transparent background - Linux: Medium rounded corners (
rounded-lg- 8px) - Windows: No rounded corners (sharp edges, native Windows style)
- Window control buttons now match platform conventions (macOS left-side traffic lights, Windows/Linux right-side icons)
- macOS: Large rounded corners (
- Window Controls Initialization: Fixed platform detection to prevent style flashing
- Changed initial platform state from "macos" to empty string
- Added UserAgent fallback for platform detection
- Prevents Windows/Linux users from seeing macOS-style buttons during startup
- Transparent Window Implementation: Improved window transparency and rounded corner rendering
- Modified global CSS to use transparent body background
- Moved background color to
#rootcontainer for proper layering - macOS-only transparent window configuration using conditional compilation
- Tauri 2.0 Window Operations: Fixed all window management issues after Tauri 2.0 upgrade
- Window close, minimize, maximize now work correctly with proper async/await handling
- Window dragging via
data-tauri-drag-regionnow functional with ACL permissions - All window API calls properly await Promise resolution
- Window Styling Consistency: Resolved window appearance issues across platforms
- Fixed rounded corners not displaying on macOS due to opaque body background
- Corrected platform-specific styling to match OS conventions
- Eliminated style flashing when opening new windows
- Permission Configuration: Removed invalid
core:window:allow-set-zoompermission that caused build errors
- Added
js-tiktokendependency (v1.0.21) for client-side token calculation - Implemented debounced token counting with React hooks and refs
- Created Tauri 2.0 capabilities configuration following new security model
- Updated Rust window creation code with platform-specific conditional compilation
- Enhanced CSS architecture for transparent window support
- Custom Provider Type: Added dedicated "custom" provider type to properly distinguish custom providers from built-in OpenAI provider, eliminating configuration conflicts
- Custom Provider Editing: Added ability to edit custom provider configurations after creation, including name, base URL, and description. Name changes are handled by deleting the old configuration and creating a new one.
- Custom Provider Validation: Added validation to prevent custom provider names from conflicting with built-in provider IDs and names (case-insensitive)
- Ollama Provider: Added Ollama to built-in provider list with special handling:
- No API Key required (hidden in UI)
- Configurable Base URL for local or LAN access (default: http://localhost:11434)
- Supports remote Ollama instances on local network
- Debug Logging: Added comprehensive debug logging for custom provider operations (add, update, fetch models, test connection) to help diagnose configuration issues
- Database Migration System: Added automatic migration for v0.1.11 to:
- Simplify built-in provider names by removing
_defaultsuffix (e.g.,openai_default→openai) - Migrate existing custom providers from 'openai' type to 'custom' type and clear their model lists
- Simplify built-in provider names by removing
- Model Display Consistency: Unified model list display across Arena and Execution panels to show provider name instead of provider type for better clarity (e.g., "Deepseek2" instead of "custom", "deepseek" instead of "deepseek")
- Provider Naming Convention: Simplified built-in provider names to use clean IDs (e.g., "openai", "deepseek") instead of "{id}_default" format, with validation preventing custom providers from using these reserved names
- DeepSeek API Base URL: Corrected DeepSeek base URL from
https://api.deepseek.com/v1tohttps://api.deepseek.comaccording to official documentation - Provider Log Labels: Fixed log messages to correctly display provider names (DeepSeek, OpenRouter, Ollama, AiHubMix) instead of always showing "OpenAI Provider" for OpenAI-compatible APIs
- Arena Mode Provider Configuration: Fixed critical bug where Arena mode only set provider correctly for OpenRouter, causing DeepSeek and other providers to use wrong API endpoints and keys. Now all providers are correctly configured in Arena mode.
- Custom Provider Display and Management: Fixed custom providers not appearing in the provider list. Custom providers are now correctly identified by their unique name and custom base URL, and can be properly configured, saved, and used for execution.
- Provider Configuration Isolation: Fixed critical bug where built-in and custom providers with the same provider type (e.g., OpenAI) would share configurations and models. Now each provider configuration is properly isolated by unique name (built-in use
{id}_defaultpattern, custom use user-defined names). - Custom Provider Model Fetching: Fixed model fetching for custom providers with OpenAI-compatible APIs. The GPT model filter is now only applied to official OpenAI API, allowing custom providers to return all their models (e.g., deepseek-chat, deepseek-reasoner).
- Global Search Feature: Added comprehensive search functionality in the header toolbar
- Search across file names, file paths, file content, tags, and history versions
- Real-time search with 300ms debounce for optimal performance
- Dropdown search results panel with detailed match information
- Visual indicators showing match types (content, tags, history)
- Content snippet preview for matched file content
- Click to open files directly from search results
- Full internationalization support (Simplified Chinese, Traditional Chinese, English)
- Enhanced search experience with categorized results display
- Search results show match counts for each category (content, tags, history)
- Added color-coded badges for different match types (green for content, blue for tags, amber for history)
- Removed unused search code from Navigator component for better code maintainability
- All code comments and logs now use English for international development standards
- Enhanced cross-platform system theme detection: Implemented native system theme detection for Windows using registry (winreg) and Linux using gsettings/GTK_THEME
- Added
winregdependency for Windows platform to access registry settings
- Refactored window command functions to be async for better consistency and performance
- Improved
get_system_themecommand to support all major platforms (macOS, Windows, Linux)
- Minor package.json configuration fixes
- Console UI now uses Eraser icon instead of X icon for clear button to avoid confusion with close button
- History operations now logged to console (history save and history apply)
- File operations now show full absolute paths in console logs instead of just filenames
- Windows native theme detection: Now reads Windows registry to detect system dark/light mode
- Linux theme detection: Checks GTK_THEME environment variable for theme preference
- Improved console log messages to display complete file paths for better traceability
- Enhanced history tracking with console logging for all history save operations
- History apply operations now show version ID in console logs
- Console UI/UX: Clear button now visually distinct from window close button
- Better debugging experience with full path information in logs
- More informative log messages for file history operations
- Windows 10/11 compatibility: Native system theme detection via registry (AppsUseLightTheme)
- Cross-platform theme detection: All platforms now have native or environment-based detection
- Fixed Arena History and Arena Statistics windows not opening in production build
- Added missing HTML entry points (arena-history.html, arena-statistics.html) to Vite build configuration
- Improved cross-platform theme detection fallback mechanism
- Updated Vite multi-page build configuration to include all window entry points
- Improved system theme detection on non-macOS platforms to return error and rely on JavaScript matchMedia fallback
- Enhanced cross-platform compatibility documentation
- Converted all code comments to English for better international collaboration
- Changed log messages to English for consistency across development teams
- Console logging system with 10 log types (INFO, SUCCESS, WARNING, ERROR, SAVE, DELETE, CREATE, UPDATE, EXECUTE, GIT)
- Memory-only log storage with automatic cleanup on app close
- Console UI with collapsible panel, log count, and clear button
- Color-coded log types with timestamps
- Logging for file operations (save, create, delete, rename)
- Full i18n support for Console UI (English, Simplified Chinese, Traditional Chinese)
- Logger utility functions for use outside React components
- Created comprehensive cross-platform compatibility documentation
- Added CROSS_PLATFORM_STATUS.md for quick reference
- Added docs/CROSS_PLATFORM_COMPATIBILITY.md for detailed technical information
- Added docs/CONSOLE_LOGGING.md for logging system documentation
- Added CONSOLE_FEATURE_SUMMARY.md and I18N_UPDATE_SUMMARY.md
- Fixed TypeScript compilation error in GitSettingsPanel component
- Removed unused
SaveStatustype declaration
- Updated version number across all configuration files
- Version bump for release preparation
- Updated build configurations
- Arena feature for model comparison
- Arena history tracking
- Arena statistics visualization
- Git integration features
- LLM provider management
- Custom provider support
- Multi-language support (English, Simplified Chinese, Traditional Chinese)
- Improved settings panel organization
- Enhanced Git commit message generation
- Updated UI/UX for better user experience
- Various bug fixes and stability improvements
- Initial release of VibeBase
- Prompt IDE for LLM Engineering
- Monaco editor integration
- File tree navigation
- Workspace management
- Variable management
- Execution panel
- History tracking
- Dark/Light theme support
- Multi-language interface
New features and functionality
Changes in existing functionality
Features that will be removed in upcoming releases
Features that have been removed
Bug fixes
Security vulnerability fixes