All notable changes to vibecore will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Path validator now correctly handles heredoc operators (
<<and<<<)- Fixed PathValidationError for valid commands like
cat > /path/file << EOF - Heredoc delimiters are now properly skipped during path validation
- Supports both quoted and unquoted heredoc delimiters
- Fixed PathValidationError for valid commands like
- BashToolMessage widget for improved bash command execution display
- Shows command in header line (truncated at 160 characters)
- Cleaner, more compact presentation compared to generic ToolMessage
- Consistent with other specialized tool message widgets
- Updated project dependencies for improved compatibility
- Context handling in CLI mode for file tool operations
- Failing unit tests after recent changes
- Optimized message streaming with smart update throttling for better responsiveness
- Automatic clipboard copy on text selection - selected text is automatically copied to clipboard when user releases mouse after selection
- BREAKING: Simplified workflow API with direct user_message parameter
- Removed
contextandsessionparameters from workflow functions - Workflows now receive only
runnerparameter withuser_messageavailable directly - Made built-in tools accept protocol contexts for better flexibility
- Removed
- Architecture Improvements:
- Introduced runner pattern for better type safety and separation of concerns
- Consolidated VibecoreApp initialization and session loading
- Migrated CLI to flow mode architecture for consistency
- Improved MCP manager lifecycle with async context management
- Removed agent parameter from VibecoreApp and Vibecore for cleaner API
- Cleanup of unused context properties and code
- Removed Features:
- Removed
/clearcommand - Removed
detect_reasoning_effortfeature
- Removed
- Increased ctrl+d prompt time for better user experience
- Context usage now correctly derived from last response
- User inputs now processed in FIFO order
- Fixed flaky feedback widget test
- Fixed context usage calculation
- Added .git to ignore for pyright
- Updated Flow Mode documentation for v0.5.0+ API changes
- Updated README to reflect API improvements
- BREAKING: Refactored Flow Mode into flexible multi-mode framework
- Replaced
flow()function withVibecoreclass and@vibecore.workflow()decorator - Simplified workflow signature: removed explicit
app,ctx,user_inputparameters - Workflow functions now return typed results instead of void
- Unified interface:
user_input(),print(),run_agent()work across all modes
- Replaced
- Multi-Mode Execution Support: Run the same workflow in different modes
run_textual(): Full TUI with streaming (original behavior)run_cli(): Simple stdin/stdout interactionrun(): Programmatic execution with predefined inputs (perfect for testing)
- Runner Architecture: Extensible pattern for adding new execution modes
VibecoreRunnerBase: Base class for all runnersVibecoreTextualRunner: TUI mode implementationVibecoreCliRunner: CLI mode implementationVibecoreStaticRunner: Static/testing mode implementation
- New example:
basic_cli.pydemonstrating CLI and static modes
- Cleaner, more Pythonic API with less boilerplate
- Type-safe workflow return values with generics
- Easy to test with static mode and predefined inputs
- Separation of concerns between runners and workflow logic
- Extensible: add new modes (HTTP, Discord, etc.) by implementing runner interface
- FeedbackWidget: New widget for collecting user feedback
- Remove input textarea autofocus on click for improved user experience
- Fix snapshot flakiness for executing message headers in tests
- Handle list_directory permission test when running as root
- Consolidate todo item model for better code organization
- Add AGENTS.md and update CLAUDE.md
- Prevent duplicate message processing during agent execution by ensuring mutually exclusive handling of user input vs queued messages
- Path Confinement System: Enhanced security with comprehensive path validation
- Configurable allowed and blocked paths via settings
- Prevents access to sensitive system files and directories
- Validates both file and shell operations
- Supports pattern-based path restrictions
- Copy Button for Agent Messages: Added copy functionality to AgentMessage widget for improved user experience
- Implemented path confinement for file and shell tools to prevent unauthorized access
- Added comprehensive test coverage for path validation security boundaries
- Disabled dotenv settings loading since vibecore is a framework library
- Copy button for query arguments view to improve user experience
- Flow Mode (Experimental): New programmatic conversation control system for building structured agent-based applications
flow()entry point for creating custom conversation flows- Support for multi-agent orchestration with handoffs
- Examples adapted from OpenAI Agents SDK (basic.py, customer_service.py)
- Web Tools: New tools for web interaction
websearchtool with extensible backend architecturewebfetchtool for fetching and converting web content
- Anthropic Pro/Max OAuth authentication support: Native integration with Claude Pro/Max accounts via OAuth flow
- Rich tool call rendering: New
rich_tool_namessetting for enhanced tool call display - Configurable Features:
- Make reasoning summary configurable via settings
- Optional welcome message in VibecoreApp
- Default model settings support
- Default model updated to gpt-5
- Improved Flow API with type-safe user input
- Enhanced settings system with default_model_settings
- Tool call functionality with Claude Pro/Max authentication
- Tool call results not displaying properly in the UI
- Tool execution status handling during agent handoffs and response completion
- Early exit handling in flow prototype
- GitHub workflow conditions for stable PyPI releases
- Version detection using github.ref_name
- Flow Mode documented as key differentiator
- Added uvx as primary quick-test method
[Previous release notes...]