Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,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/),

## [0.3.1] - 2026-08-24

### Security

- **`mcp` pins the workspace root and bounds `exec` children** — tool
calls resolve paths against the server's pinned workspace root instead
of the ambient process CWD, and spawned commands run under a
wall-clock timeout so a hung command can no longer wedge the stdio
loop.
- **`exec` rejects unquoted shell metacharacters** — arguments carrying
shell metacharacters fail fast with a `sh -c` hint instead of reaching
a shell.

### Fixed

- **Symbol correctness pack** — AST walks are depth-bounded so deeply
nested code can no longer overflow the stack; the Markdown backend
gates its preprocessor fold; byte offsets are correct for CRLF input;
C/C++ unions report the new `union` kind.
- **`deps` anchored to the project root** — import resolution starts at
the project root, ignore globs apply to relative paths only, and
unresolvable imports surface with an explicit unresolved kind.
- **exec fidelity** — the pending fold buffer is bounded, passthrough
bytes are preserved verbatim, and the over-broad-keep warning fires
exactly when folding was ineffective; empty keep patterns are rejected
and options are validated before spawn.
- **MCP contract parity** — non-zero exec exits surface as errors with
matching exit codes and tool arguments are validated before dispatch.
- **Config tolerance** — unreadable configs discovered during lookup are
skipped with a warning instead of aborting.

### Changed

- **File guardrails** — inputs that are not regular files or exceed the
size limit are refused up front with a clear error.
- Backend dedup polish: shared helpers consolidated, signature caps and
markers tightened, clap help strings aligned.

## [0.3.0] - 2026-08-23

### Added
Expand Down
6 changes: 3 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ resolver = "2"
members = ["crates/ctx-symbol", "crates/ctx-exec", "crates/ctxctl"]

[workspace.package]
version = "0.3.0"
version = "0.3.1"
edition = "2024"
license = "MIT"
authors = ["fuyu"]
repository = "https://github.com/Xuepoo/ctxctl"
homepage = "https://ctxctl.xuepoo.xyz"

[workspace.dependencies]
ctx-symbol = { path = "crates/ctx-symbol", version = "0.3.0" }
ctx-exec = { path = "crates/ctx-exec", version = "0.3.0" }
ctx-symbol = { path = "crates/ctx-symbol", version = "0.3.1" }
ctx-exec = { path = "crates/ctx-exec", version = "0.3.1" }
clap = { version = "4", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
Expand Down
Loading