Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
7b0f5e1
feat(core): binary hook w/ native cmd exec + streaming
aeppling Mar 31, 2026
42554d4
Merge branch 'develop' into feat-hook-engine
aeppling Apr 1, 2026
54861ab
fix(lexer): re-add strip_quotes
aeppling Apr 1, 2026
22892f0
feat(hooks): native hook handlers, remove bash scripts
aeppling Apr 4, 2026
02e3a6f
fix(stream): wire run_streaming as standard exec for filter commands
aeppling Apr 4, 2026
a2312df
feat(stream): standardize command execution with exec_capture()
aeppling Apr 4, 2026
5264379
Merge origin/develop into feat/refacto-stream-binary
aeppling Apr 4, 2026
63313a2
fix(stream): skip printf-based tests on Win
aeppling Apr 5, 2026
41ebf0b
fix(hooks): permission checks, audit log injection, stdin limits
aeppling Apr 5, 2026
0d07f04
fix(core): error handl, RAW_CAP, recursion guard, atomic writes
aeppling Apr 5, 2026
057f3a2
Merge pull request #997 from rtk-ai/develop
aeppling Apr 6, 2026
76f3b24
chore(master): release 0.35.0
github-actions[bot] Apr 6, 2026
8a7106c
Merge pull request #1050 from rtk-ai/release-please--branches--master…
aeppling Apr 6, 2026
b3936b8
fix(stream): stream engine & template + BlockHandler, RegexBlockFilte…
aeppling Apr 9, 2026
2bb5265
fix(stream): P0 fixes from PR #956 review
aeppling Apr 10, 2026
dc58775
docs(docs): stop manual CHANGELOG edits and use release please
aeppling Apr 10, 2026
71eeeda
feat(stream): P1 fixes from PR #956 review
aeppling Apr 10, 2026
909d8f4
Merge branch 'develop' into fix/release-please-changelog
aeppling Apr 10, 2026
840571f
fix(core): review 956 various fix
aeppling Apr 11, 2026
b6bc98a
Update CHANGELOG.md
aeppling Apr 12, 2026
8adea26
Update Cargo.toml
aeppling Apr 12, 2026
a4ec385
Update .release-please-manifest.json
aeppling Apr 12, 2026
906dedd
Merge remote-tracking branch 'origin/develop' into feat-hook-engine
aeppling Apr 13, 2026
5916ecd
fix: rename ship.md to ship/SKILL.md to match develop
aeppling Apr 14, 2026
0f93f0e
Merge branch 'develop' into fix/release-please-changelog
aeppling Apr 14, 2026
7591a14
Merge pull request #1151 from rtk-ai/fix/release-please-changelog
aeppling Apr 14, 2026
dfc009a
restore cursor and copilot hook scripts for backward compat
aeppling Apr 14, 2026
e7b7f9a
Merge pull request #956 from rtk-ai/feat-hook-engine
aeppling Apr 15, 2026
76e253b
feat(mvn): add Maven (Java) filter module — test, compile, checkstyle…
mariuszs Apr 14, 2026
a8aa44b
docs(mvn): spec — surefire/failsafe XML enrichment design
mariuszs Apr 15, 2026
aa7d77a
docs(mvn): implementation plan — surefire/failsafe XML enrichment
mariuszs Apr 15, 2026
2a40a8a
chore(mvn): scaffold surefire-xml modules and fixture dirs
mariuszs Apr 15, 2026
82f6670
feat(mvn): add stack trace segment parser
mariuszs Apr 15, 2026
1b84cce
feat(mvn): add UTF-8-safe stack trace header truncation
mariuszs Apr 15, 2026
00b7845
feat(mvn): classify stack frames as application vs framework
mariuszs Apr 15, 2026
d4a33c9
feat(mvn): collapse consecutive framework frames
mariuszs Apr 15, 2026
629f169
feat(mvn): cap root cause application frames at 10
mariuszs Apr 15, 2026
552089e
feat(mvn): stack trace process orchestrator
mariuszs Apr 15, 2026
07693ef
feat(mvn): stack trace hard cap preserves root cause
mariuszs Apr 15, 2026
4750e59
test(mvn): copy Surefire XML fixtures from maven-mcp
mariuszs Apr 15, 2026
60949db
feat(mvn): parse Surefire XML testsuite via quick-xml
mariuszs Apr 15, 2026
7f1cba6
test(mvn): cover Surefire system-out/err capture and kinds
mariuszs Apr 15, 2026
b8544dc
feat(mvn): surefire parse_dir with mtime time-gate
mariuszs Apr 15, 2026
98e9695
test(mvn): pin total-output-limit cutoff behavior
mariuszs Apr 15, 2026
ba39804
feat(mvn): detect appPackage from pom.xml groupId
mariuszs Apr 15, 2026
ddc0b39
test(mvn): add failsafe + real-world stack trace fixtures
mariuszs Apr 15, 2026
f7cfc66
refactor(mvn): wire started_at/cwd/app_pkg into run_test
mariuszs Apr 15, 2026
5d0d720
feat(mvn): enrich test output with Surefire/Failsafe XML
mariuszs Apr 15, 2026
eb3565a
fix(mvn): enrich zero_tests check — prefix with ": " to avoid substri…
mariuszs Apr 15, 2026
52ecec7
test(mvn): snapshot tests for enriched surefire/failsafe rendering
mariuszs Apr 15, 2026
3caa4d4
test(mvn): token savings — happy path identity, failure path ≥85%
mariuszs Apr 15, 2026
5a71041
docs(mvn): document XML enrichment, appPackage detection, red-flag
mariuszs Apr 15, 2026
2a1eea8
refactor(mvn): simplify — unify duplicate types, remove dead code
mariuszs Apr 16, 2026
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
2 changes: 1 addition & 1 deletion .claude/agents/rust-rtk.md
Original file line number Diff line number Diff line change
Expand Up @@ -509,7 +509,7 @@ rtk newcmd args

- Update `CLAUDE.md` Module Responsibilities table
- Update `README.md` with command support
- Update `CHANGELOG.md`
- CHANGELOG.md is auto-generated by release-please — do not edit manually

## Performance Targets

Expand Down
17 changes: 5 additions & 12 deletions .claude/skills/ship/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,9 @@ git status # Should show "nothing to commit, working tree clean"

**Files to update**:
1. `Cargo.toml` (line 3): `version = "X.Y.Z"`
2. `CHANGELOG.md` (add new section)
3. `README.md` (if version mentioned)
2. `README.md` (if version mentioned)

> **Note**: `CHANGELOG.md` is auto-generated by release-please from conventional commit messages — do not edit manually.

**Example**:
```toml
Expand Down Expand Up @@ -120,13 +121,12 @@ hyperfine 'target/release/rtk git status' --warmup 3

```bash
# Stage version files
git add Cargo.toml Cargo.lock CHANGELOG.md README.md
git add Cargo.toml Cargo.lock README.md

# Commit with version tag
git commit -m "chore(release): bump version to v0.17.0

- Updated Cargo.toml version
- Updated CHANGELOG.md with release notes
- Verified all quality checks pass
- Benchmarked performance (<10ms startup)

Expand Down Expand Up @@ -362,14 +362,7 @@ target/release/rtk --version

**Symptom**: CHANGELOG.md has conflicts after rebase

**Solution**:
```bash
# Always add new entries at top
# Manual merge:
# 1. Keep all entries from both branches
# 2. Sort by version (newest first)
# 3. Ensure date format consistency
```
**Solution**: Do not edit CHANGELOG.md manually. It is auto-generated by release-please from conventional commit messages when merging to master.

## Security Considerations

Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Features

* **mvn:** add Maven (Java) filter module — test, compile, checkstyle:check, dependency:tree ([#1089](https://github.com/rtk-ai/rtk/pull/1089))
* **mvn:** enrich `mvn test` / `verify` / `integration-test` output with structured failure details read from `target/surefire-reports/TEST-*.xml` and `target/failsafe-reports/*.xml`. Stack traces are segmented on `Caused by:` with framework frames collapsed; the root-cause segment is always preserved.
* **mvn:** autodetect application package from `pom.xml` `<groupId>` (with `<parent>/<groupId>` fallback) for framework-frame classification. Override via `RTK_MVN_APP_PACKAGE`.
* **mvn:** red-flag heuristic — `no tests run` with no fresh XML reports emits a diagnostic pointing at surefire misconfiguration.

### Bug Fixes

* **git:** remove `-u` short alias from `--ultra-compact` to fix `git push -u` upstream tracking ([#1086](https://github.com/rtk-ai/rtk/issues/1086))
Expand Down
58 changes: 47 additions & 11 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,15 +107,50 @@ For the step-by-step checklist (create filter, register rewrite pattern, registe

---

## Commit Messages & Changelog

RTK uses [Conventional Commits](https://www.conventionalcommits.org/) and [release-please](https://github.com/googleapis/release-please) to **auto-generate CHANGELOG.md, version bumps, and GitHub releases**. Never edit `CHANGELOG.md` manually — it is fully managed by release-please from your commit messages.

### Commit format

```
<type>(<scope>): <short description>
```

| Type | Semver Impact | When to Use |
|------|---------------|-------------|
| `feat` | Minor | New features, new filters, new command support |
| `fix` | Patch | Bug fixes, corrections |
| `perf` | Patch | Performance improvements |
| `refactor` | — | Code restructuring (no changelog entry) |
| `docs` | — | Documentation only |
| `chore` | — | Maintenance, CI, deps |
| `feat!` / `fix!` | Major | Breaking changes (add `!` after type) |

**Scope** should match the module or area: `git`, `cargo`, `gh`, `hook`, `tracking`, `cicd`, etc.

### Examples

```
feat(kubectl): add pod log filtering
fix(git): preserve merge commit messages in log filter
perf(cargo): lazy-compile clippy regex patterns
feat!(hook): change rewrite config format
```

These commit messages directly become CHANGELOG entries when release-please creates a release PR. Write them as if they will be read by users.

---

## Branch Naming Convention

Git branch names cannot include spaces or colons, so we use slash-prefixed names. Pick the prefix that matches your change type and follow it with an optional scope and a short, kebab-case description.

| Prefix | Semver Impact | When to Use |
|--------|---------------|-------------|
| `fix/` | Patch | Bug fixes, corrections, minor adjustments |
| `feat/` | Minor | New features, new filters, new command support |
| `chore/` | Major | Breaking changes, API changes, removed functionality |
| Prefix | When to Use |
|--------|-------------|
| `fix/` | Bug fixes, corrections, minor adjustments |
| `feat/` | New features, new filters, new command support |
| `chore/` | CI/CD, deps, maintenance, breaking changes |

Combine the prefix with a scope if it adds clarity (e.g. `git`, `kubectl`, `filter`, `tracking`, `config`) and finish with a descriptive slug: `fix/<scope>-<description>` or `feat/<description>`.

Expand All @@ -137,7 +172,7 @@ chore/release-pipeline-cleanup
**For large features or refactors**, prefer multi-part PRs over one enormous PR. Split the work into logical, reviewable chunks that can each be merged independently. Examples:
- feat(Part 1): Add data model and tests
- feat(Part 2): Add CLI command and integration
- feat(Part 3): Update documentation and CHANGELOG
- feat(Part 3): Update documentation

**Why**: Small, focused PRs are easier to review, safer to merge, and faster to ship. Large PRs slow down review, hide bugs, and increase merge conflict risk.

Expand Down Expand Up @@ -166,7 +201,7 @@ Every change **must** include tests. See [Testing](#testing) below.

### 4. Add Documentation

Every change **must** include documentation updates. See [Documentation](#documentation) below.
Documentation updates are required for new filters, new features, and changes that affect already-documented behavior. Bug fixes and refactors typically don't need doc updates. See [Documentation](#documentation) below.

### Contributor License Agreement (CLA)

Expand Down Expand Up @@ -235,17 +270,18 @@ cargo fmt --all --check && cargo clippy --all-targets && cargo test

## Documentation

Every change **must** include documentation updates. Use this table to find which docs to update:
Documentation updates are required for new filters, new features, and changes that affect already-documented behavior. Use this table to find which docs to update:

| What you changed | Update these docs |
|------------------|-------------------|
| New Rust filter (`src/cmds/`) | Ecosystem `README.md` (e.g., `src/cmds/git/README.md`), [README.md](README.md) command list, [CHANGELOG.md](CHANGELOG.md) |
| New TOML filter (`src/filters/`) | [src/filters/README.md](src/filters/README.md) if naming conventions change, [README.md](README.md) command list, [CHANGELOG.md](CHANGELOG.md) |
| New Rust filter (`src/cmds/`) | Ecosystem `README.md` (e.g., `src/cmds/git/README.md`), [README.md](README.md) command list |
| New TOML filter (`src/filters/`) | [src/filters/README.md](src/filters/README.md) if naming conventions change, [README.md](README.md) command list |
| New rewrite pattern | `src/discover/rules.rs` — see [Adding a New Command Filter](src/cmds/README.md#adding-a-new-command-filter) |
| Core infrastructure (`src/core/`) | [src/core/README.md](src/core/README.md), [docs/contributing/TECHNICAL.md](docs/contributing/TECHNICAL.md) if flow changes |
| Hook system (`src/hooks/`) | [src/hooks/README.md](src/hooks/README.md), [hooks/README.md](hooks/README.md) for agent-facing docs |
| Architecture or design change | [ARCHITECTURE.md](docs/contributing/ARCHITECTURE.md), [docs/contributing/TECHNICAL.md](docs/contributing/TECHNICAL.md) |
| Bug fix or breaking change | [CHANGELOG.md](CHANGELOG.md) |

> **Note**: Do NOT edit `CHANGELOG.md` manually — it is auto-generated by [release-please](https://github.com/googleapis/release-please) from your commit messages. See [Commit Messages & Changelog](#commit-messages--changelog).

**Navigation**: [CONTRIBUTING.md](CONTRIBUTING.md) (you are here) → [docs/contributing/TECHNICAL.md](docs/contributing/TECHNICAL.md) (architecture + flow) → each folder's `README.md` (implementation details).

Expand Down
66 changes: 66 additions & 0 deletions Cargo.lock

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

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ flate2 = "1.0"
quick-xml = "0.37"
which = "8"
automod = "1"
libc = "0.2"

[target.'cfg(unix)'.dependencies]
libc = "0.2"
Expand All @@ -41,6 +42,8 @@ libc = "0.2"
toml = "0.8"

[dev-dependencies]
filetime = "0.2"
insta = "1"

[profile.release]
opt-level = 3
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ rtk filters and compresses command outputs before they reach your LLM context. S
| `git log` | 5x | 2,500 | 500 | -80% |
| `git add/commit/push` | 8x | 1,600 | 120 | -92% |
| `cargo test` / `npm test` | 5x | 25,000 | 2,500 | -90% |
| `mvn test` | 3x | 30,000 | 300 | -99% |
| `ruff check` | 3x | 3,000 | 600 | -80% |
| `pytest` | 4x | 8,000 | 800 | -90% |
| `go test` | 3x | 6,000 | 600 | -90% |
Expand Down Expand Up @@ -179,6 +180,7 @@ rtk go test # Go tests (NDJSON, -90%)
rtk cargo test # Cargo tests (-90%)
rtk rake test # Ruby minitest (-90%)
rtk rspec # RSpec tests (JSON, -60%+)
rtk mvn test # Maven tests (-99%)
rtk err <cmd> # Filter errors only from any command
rtk test <cmd> # Generic test wrapper - failures only (-90%)
```
Expand All @@ -195,6 +197,8 @@ rtk cargo clippy # Cargo clippy (-80%)
rtk ruff check # Python linting (JSON, -80%)
rtk golangci-lint run # Go linting (JSON, -85%)
rtk rubocop # Ruby linting (JSON, -60%+)
rtk mvn build # Maven build (-90%)
rtk mvn dependency:tree # Maven dependency tree (-60%+)
```

### Package Managers
Expand Down
Loading