v0.10.0
Features
- Add session-scoped tool profiles via
initializehint: clients that pass"io.clouatre-labs/profile"ininitialize._metareceive only the tools for that profile (edit: 4 tools,analyze: 6 tools); absent or unknown profile falls back to all 10 tools unchanged; reduces schema tokens by up to 87% per turn (#751) - Extend
edit_renamefrom single-file to cross-file scope: whenpathis a directory, the tool walks the entire tree and applies the AST-aware rename to every file whereold_nameappears as a syntactic identifier, returning per-filefiles_changedanderrors; single-file behavior and output schema are unchanged (#757) - Add
stdinparameter toexec_command: optional UTF-8 content piped into the child process without shell escaping; enforces a 1 MB cap (STDIN_MAX_BYTES) before spawn;Stdio::null()is now set explicitly whenstdinisNone, fixing a pre-existing bug where the child inherited the MCP transport pipe as its stdin descriptor (#756) - Fix
edit_renameToolAnnotationsper MCP 2025-11-25 spec:destructive_hintcorrected tofalse(rename is reversible, no data loss),idempotent_hintcorrected totrue(renaming X to Y when Y already exists leaves the file unchanged) (#754)
Bug Fixes
- Remove hardcoded 30s default timeout from
exec_command:timeout_secsnow defaults toNone(no timeout); callers that need a bound pass it explicitly; eliminates the race with goose's MCP client deadline that killed the transport on long-running commands such ascargo buildorgit fetch(#755) - Switch
edit_overwriteandedit_replaceto atomic temp-file-plus-rename writes viaNamedTempFile::new_in(path.parent()): a crash or signal mid-write no longer leaves the target file in a corrupt intermediate state (#752)
Documentation
- Remove stale
kindparameter clause fromedit_renametool description (#753)
Tests
- Add 5 profile integration tests (
test_edit_profile_tool_count,test_analyze_profile_tool_count,test_no_profile_tool_count,test_unknown_profile_tool_count,test_disabled_tool_returns_invalid_params) using a full duplex JSON-RPC harness (#751) - Add 2 directory-scope
edit_renameintegration tests (test_edit_rename_directory_multi_file,test_edit_rename_directory_partial_failure) (#757) - Add 3
exec_commandstdin tests (test_exec_stdin_cat_roundtrip,test_exec_stdin_none_no_regression,test_exec_stdin_size_cap_validation) (#756)
Full Changelog: v0.9.0...v0.10.0