diff --git a/CHANGELOG.md b/CHANGELOG.md index 62f8204b..f50aec4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,44 @@ 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). +## [0.1.4] - 2026-10-13 + +### Added + +- GJC-compatible line range selectors for read_file tool (`:50-200`, `:50+150` syntax) +- GJC-compatible `:conflicts` selector for git merge conflict detection +- SDK wire transport with WebSocket support +- Nix flake development environment +- `/status`, `/cost`, and `/version` slash commands +- Persistent provider configuration loading +- Pagination support for large read_file results +- Comprehensive GJC compatibility documentation and analysis + +### Fixed + +- Windows path containment checks for security boundary enforcement +- Git bash detection on Windows with proper probe caching +- Unresolvable path denial to prevent escape attempts +- Auto-compaction context window measurement +- Tool result preservation on failed turns +- Model stall recovery without tool calls +- Streaming markdown formatting with preserved block separators +- Local model validation bypass generalization beyond Ollama +- Release artifact checksums on macOS and Linux +- Duplicate assistant text rendering +- Workspace slash command wire-up + +### Changed + +- Enhanced path scope validation for multiple Windows path spellings +- Improved error handling and configuration defaults +- Upgraded GitHub Actions to immutable commit SHAs for CI security + +### Known Limitations + +- ACP / Zed integration is not yet implemented (status stub available via `claw acp`) +- Python porting workspace is for reference only, not used in production + ## [0.1.3] - 2026-10-13 This is the first public binary release of Claw Code. diff --git a/rust/AGENTS.md b/rust/AGENTS.md index efb7844d..cfabf765 100644 --- a/rust/AGENTS.md +++ b/rust/AGENTS.md @@ -41,7 +41,7 @@ TUI rule: formatting fns take `&mut impl Write`, never stdout directly. Never mi Library crates don't carry the `claw-` prefix. Binary crates do (except legacy `rusty-claude-cli`). -Workspace version is `0.1.3`, `publish = false`, MIT license. +Workspace version is `0.1.4`, `publish = false`, MIT license. No rust-toolchain file, no MSRV. CI pins `dtolnay/rust-toolchain@stable`. diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 31e82890..dbf03df3 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -93,7 +93,7 @@ checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "api" -version = "0.1.3" +version = "0.1.4" dependencies = [ "criterion", "reqwest", @@ -478,7 +478,7 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" [[package]] name = "claw-analog" -version = "0.1.3" +version = "0.1.4" dependencies = [ "api", "clap", @@ -498,7 +498,7 @@ dependencies = [ [[package]] name = "claw-rag-service" -version = "0.1.3" +version = "0.1.4" dependencies = [ "axum 0.8.9", "blake3", @@ -531,7 +531,7 @@ checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "commands" -version = "0.1.3" +version = "0.1.4" dependencies = [ "plugins", "runtime", @@ -540,7 +540,7 @@ dependencies = [ [[package]] name = "compat-harness" -version = "0.1.3" +version = "0.1.4" dependencies = [ "commands", "runtime", @@ -1568,7 +1568,7 @@ dependencies = [ [[package]] name = "mock-anthropic-service" -version = "0.1.3" +version = "0.1.4" dependencies = [ "api", "serde_json", @@ -1761,7 +1761,7 @@ dependencies = [ [[package]] name = "plugins" -version = "0.1.3" +version = "0.1.4" dependencies = [ "serde", "serde_json", @@ -2136,7 +2136,7 @@ dependencies = [ [[package]] name = "runtime" -version = "0.1.3" +version = "0.1.4" dependencies = [ "glob", "plugins", @@ -2261,7 +2261,7 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-claude-cli" -version = "0.1.3" +version = "0.1.4" dependencies = [ "api", "commands", @@ -2333,7 +2333,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sdk" -version = "0.1.0" +version = "0.1.4" dependencies = [ "futures-util", "serde", @@ -2619,7 +2619,7 @@ dependencies = [ [[package]] name = "telemetry" -version = "0.1.3" +version = "0.1.4" dependencies = [ "serde", "serde_json", @@ -2906,7 +2906,7 @@ dependencies = [ [[package]] name = "tools" -version = "0.1.3" +version = "0.1.4" dependencies = [ "api", "aspect-core", diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 4ca7b8d8..0d1994df 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -3,7 +3,7 @@ members = ["crates/*"] resolver = "2" [workspace.package] -version = "0.1.3" +version = "0.1.4" edition = "2021" license = "MIT" publish = false diff --git a/rust/crates/api/tests/client_integration.rs b/rust/crates/api/tests/client_integration.rs index c53e34c5..917c6880 100644 --- a/rust/crates/api/tests/client_integration.rs +++ b/rust/crates/api/tests/client_integration.rs @@ -82,7 +82,7 @@ async fn send_message_posts_json_and_parses_response() { ); assert_eq!( request.headers.get("user-agent").map(String::as_str), - Some("claude-code/0.1.3") + Some("claude-code/0.1.4") ); assert_eq!( request.headers.get("anthropic-beta").map(String::as_str), diff --git a/rust/crates/sdk/Cargo.toml b/rust/crates/sdk/Cargo.toml index 1afeb8be..0c289500 100644 --- a/rust/crates/sdk/Cargo.toml +++ b/rust/crates/sdk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sdk" -version = "0.1.0" +version = "0.1.4" edition = "2021" publish = false