diff --git a/.gitignore b/.gitignore index f32ab67..1eef366 100644 --- a/.gitignore +++ b/.gitignore @@ -199,3 +199,6 @@ result-* # Tests run the agent in the playground, we don't need to keep the session files tests/playground/* . + +# Profiler HTML reports (generated by vibe.cli.profiler) +*-profile.html diff --git a/.vscode/launch.json b/.vscode/launch.json index 17f8834..2b05eb1 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,5 +1,5 @@ { - "version": "2.7.3", + "version": "2.7.4", "configurations": [ { "name": "ACP Server", diff --git a/CHANGELOG.md b/CHANGELOG.md index 68a99ec..d4796cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,36 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.7.4] - 2026-04-09 + +### Added + +- Console View for enhanced debugging and monitoring +- `/mcp` command to display MCP servers and their status +- Manual command output forwarding to agent context + +### Changed + +- Improved web_fetch content truncation for better readability +- Lazily load heavy dependencies to improve startup time +- Optimized folder parsing at startup using scandir +- Include file name in search_replace result display + +### Fixed + +- Stale configurations from subagent switch +- ValueError on OTEL context detach in agent_span +- Clipboard toast preview replaced with fixed text +- Only agents with type "agent" are loadable with --agent flag +- Made chat_url nullable in ChatAssistantPublicData +- Normalized OTEL span exporter endpoint +- Removed redundant permission prompts for parallel tool calls needing the same permission +- Removed bottom margin issue in UI +- Never crash before ACP server starts +- Use skill in recent commands via the up-arrow navigation +- Fixed loading order issues in vibe initialization + + ## [2.7.3] - 2026-04-03 ### Added diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c72a639..aac0ce3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -88,6 +88,8 @@ Example: LOG_LEVEL=DEBUG uv run vibe ``` +You can also view logs in real-time within the application by pressing `Ctrl+\` to open the debug console. + ### Running Tests Run all tests: @@ -108,6 +110,30 @@ Run a specific test file: uv run pytest tests/test_agent_tool_call.py ``` +### Profiling + +Vibe ships a lightweight profiler module (`vibe.cli.profiler`) that wraps [pyinstrument](https://github.com/joerick/pyinstrument). It silently no-ops when pyinstrument is not installed or the `VIBE_PROFILE` env var is unset, so instrumentation can stay in the code with zero overhead in normal use. + +**1. Add profiling calls** around the code you want to measure: + +```python +from vibe.cli import profiler + +profiler.start("startup") +# ... code to measure ... +profiler.stop_and_print() +``` + +Only one profiler can run at a time. The label passed to `start()` is used to name the output file. Each call to `stop_and_print` writes an HTML report (`