Skip to content

Commit f6aa7e9

Browse files
thehoffclaude
andcommitted
release: contextcrawler 0.2.0 — consolidation baseline before the lib pivot
Tag the current develop as the fork's first own release (contextcrawler-v0.2.0), bundling the 2026-06-06 fix batch + the first external community contribution (library build, PR #185 by Danny Wilson). This is the baseline we branch the "CLI consumes the library" pivot from. Bumps Cargo 0.1.10 -> 0.2.0 (fork's own version line; upstream rtk v0.x tags are unrelated, hence the fork-namespaced tag). CHANGELOG [0.2.0] documents: - SECURITY: rtk-ai#2286 never-auto-allow + the live-path Ask fix. - FIXED: tsc/mypy/next lying-success filters. - PERF: grep/find 40->67%, rtk-ai#2289 decorator strip. - ADDED: library MVP (output_summary + lib.rs), with the dead-code caveat that the bin does not yet consume the lib (next-release work). council-reviewed (metadata-only, approved). No source changes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent a33f4e3 commit f6aa7e9

3 files changed

Lines changed: 50 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,54 @@
33
All notable changes to ContextCrawler are documented here. Format adapted
44
from [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
55

6+
## [0.2.0] — 2026-06-06
7+
8+
Consolidation baseline before the library/CLI pivot. Bundles the 2026-06-06
9+
fix batch plus the first external community contribution (a library build).
10+
This is the tagged baseline (`contextcrawler-v0.2.0`) we branch the lib pivot from.
11+
12+
### Security
13+
14+
- **Permission gate never auto-allows not-evaluable constructs** (#2286 port of
15+
rtk-ai/rtk 952245d + e16aa26, reconciled with the fork's &/newline split). The
16+
gate downgrades command/process substitution (`$()`, backticks, `<()`/`>()`)
17+
and real file-write redirects (`>file`, `>>file`, `>&word`, `&>file`) from
18+
Allow to Ask; keeps `2>&1`, `/dev/null`, arithmetic `$((..))` and input
19+
redirects evaluable. Centralised in `check_command_with_rules` so both the live
20+
hook and legacy rewrite paths inherit it.
21+
- **Live-path Ask surfaced for non-rewritable commands.** The #2286 Ask verdict
22+
was silently dropped on the live hook path when a command had no rewrite,
23+
letting the host auto-allow e.g. `git status $(whoami)` via a `Bash(git:*)`
24+
rule. The no-rewrite branch now emits an explicit `ask` whenever the verdict is
25+
Ask (not only on a defence-in-depth gate). Found by empirical testing of the
26+
built binary.
27+
28+
### Fixed
29+
30+
- **tsc / mypy / next build no longer report success on a failed run.** These
31+
filters printed "no errors"/a fake summary and discarded the real error text
32+
when the wrapped command failed. A shared `format_tool_failure` surfaces raw
33+
output on a non-zero exit. (Exit-code propagation was already correct.)
34+
35+
### Performance
36+
37+
- **grep / find pipe wrappers: ~40% → ~67% token savings.** grep now shows 5
38+
sample matches plus a compact comma-joined list of *every* remaining match's
39+
line number (more locational signal, fewer tokens); find caps samples at 5.
40+
- **Decorator noise stripped from filter output** (#2289 port) — box-drawing
41+
`═══` separators, `--- x ---` dash headers, and ```` removed from
42+
LLM-bound output across ~16 filters. Dashboard/TTY output left intact.
43+
44+
### Added
45+
46+
- **Library build (lib + bin).** The crate now exposes `summarize_command_output`
47+
+ `CommandOutputSummaryOptions` and `no_bloat` via `src/lib.rs`, so downstream
48+
Rust tools can embed the summariser without spawning the CLI. First external
49+
community contribution — thanks to Danny Wilson (@vizanto), PR #185.
50+
NOTE: this is an MVP surface; the lib build currently emits dead-code warnings
51+
because the binary does not yet consume the library. The "CLI consumes the API"
52+
refactor is the headline of the next (pivot) release.
53+
654
## [0.1.7] — 2026-05-18
755

856
Read-filter, grep, and downstream-rebrand cleanup release. Lands the

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# The source-level module/use/struct identifiers still use 'rtk' — this only
44
# changes the cargo target binary name. Single binary, single mental model.
55
name = "contextcrawler"
6-
version = "0.1.10"
6+
version = "0.2.0"
77
edition = "2021"
88
# Minimum supported Rust: 1.80 for std::net::Ipv6Addr::to_ipv4_mapped()
99
# used in the SSRF block check, plus IpAddr::is_private stabilization.

0 commit comments

Comments
 (0)