mirror of
https://github.com/rtk-ai/rtk.git
synced 2026-09-19 07:33:17 +08:00
feature/worktree-commands
3 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
6e61c2447c |
fix: remove version check from validate-docs CI (#476) (#543)
Release-please bumps Cargo.toml but not docs, causing the version grep to fail after every release. The check adds no value since docs don't need to track the exact patch version. Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu> |
||
|
|
f447a3d5b1 |
feat: rtk rewrite — single source of truth for LLM hook rewrites (#241)
* feat: add `rtk rewrite` command — single source of truth for hook rewrites Implements `rtk rewrite <cmd>` as the canonical rewrite engine for all LLM hook integrations (Claude Code, Gemini CLI, future tools). - Add `rewrite_prefixes` field to `RtkRule` in discover/registry.rs - Add public `rewrite_command()` with compound command support (&&, ||, ;, |) - Add `rewrite_segment()`, `rewrite_compound()`, `strip_word_prefix()` helpers - Handle already-rtk commands (exit 0, identical output) - Handle unsupported/ignored commands (exit 1, no output) - Add 20 unit tests covering all branches and edge cases - Create `src/rewrite_cmd.rs` thin CLI wrapper - Register `Commands::Rewrite` in main.rs - Simplify `.claude/hooks/rtk-rewrite.sh` from 357 → 60 lines Hooks no longer need duplicate mapping logic — a single `REWRITTEN=$(rtk rewrite "$CMD") || exit 0` handles everything. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: fix version references and module count for 0.22.2 - README.md, CLAUDE.md, ARCHITECTURE.md: 0.20.1 → 0.22.2 - ARCHITECTURE.md: module count 48 → 51 (added rewrite_cmd + 2 from master) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * ci: update hook coverage check to verify registry (not hook script) Since PR #241, the hook delegates to `rtk rewrite` — command mappings live in src/discover/registry.rs, not the bash hook script. Update the "Verify hook coverage" CI step to: - Check that the hook calls `rtk rewrite` (new architecture) - Check that registry.rs has rewrite_prefixes for all Python/Go commands Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: support single `&` background operator in compound rewrites Per feedback from @xDelph: AI agents increasingly use `cmd1 & cmd2` for parallel execution. This commit adds support alongside existing `&&`, `||`, `;`, and `|` operators. Changes: - rewrite_compound: add match arm for single `&` (after `&&` check) - rewrite_command: add `" & "` to has_compound detection - init: show "installed/updated" vs "already up to date" so users know whether rtk init changed the hook on re-run Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: add Python/Go commands to rewrite registry Add `ruff`, `pytest`, `pip`, `go`, and `golangci-lint` to both PATTERNS and RULES in registry.rs so the CI coverage check passes and `rtk rewrite` correctly identifies these commands. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: update version reference to 0.23.0 in README Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: update version reference to 0.23.0 in CLAUDE.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: update version and module count to 0.23.0/52 in ARCHITECTURE.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: address P0 review feedback on rtk-rewrite PR P0.1 - Replace 218-line bash hook with 58-line thin delegating hook. All rewrite logic now lives exclusively in `rtk rewrite` (Rust registry). `rtk init` installs the thin hook via include_str!. P0.2 - Fix `head -20 file` crash at runtime. Generic prefix replacement produced `rtk read -20 file` (invalid clap args). Now translates `head -N file` → `rtk read file --max-lines N` and skips unsupported head flags (e.g. -c) by returning exit 1. P0.3 - Add version guard in hook for rtk < 0.23.0. Prints a warning to stderr instead of silently doing nothing. Also adds missing registry entries vs old hook: - gh release, cargo install - docker run/exec/build, kubectl describe/apply - tree, diff 474 tests pass, 0 clippy warnings. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: cargo fmt Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(discover): extract rules/patterns into rules.rs Per aeppling review: registry.rs was too large (~1500 lines). Extract all static data into src/discover/rules.rs: - RtkRule struct (with pub fields) - PATTERNS const array - RULES const array - IGNORED_PREFIXES and IGNORED_EXACT const arrays registry.rs now contains only logic + tests. rules.rs is the single place to add a new command mapping. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: update version reference to 0.24.0 in README * docs: update version references to 0.24.0 in CLAUDE.md and ARCHITECTURE.md * fix(discover): add aws and psql to rewrite registry rtk aws and rtk psql modules exist since PR #216 but were missing from the registry rules — rewrite was silently skipping them. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test(discover): exhaustive regression tests for rewrite registry Cover all command categories added in PR #241 and missing from the previous test suite: - aws / psql (PR #216 modules, gap detected during non-reg run) - Python: ruff, pytest, python -m pytest, pip, uv pip - Go: go test/build/vet, golangci-lint - JS/TS: vitest, pnpm vitest, prisma, prettier, pnpm list - Compound operators: || and ; rewrites, 4-segment chains, mixed supported/unsupported segments, all-unsupported → None - sudo prefix rewrite, env var prefix rewrite - find with native flags - Registry invariants: PATTERNS/RULES aligned, all rules valid, all patterns are valid regex Before: 559 tests. After: 607 tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(migration): document breaking change + detect outdated hook in rtk config CHANGELOG [Unreleased]: - Migration required: rtk init --global needed after upgrade - Documents upgrade path and explains no immediate breakage rtk init --show / rtk config now detects old hook (inline if-else) vs new thin delegator (rtk rewrite) and prints actionable warning: ⚠️ Hook: ~/.claude/hooks/rtk-rewrite.sh (outdated — inline logic, not thin delegator) → Run `rtk init --global` to upgrade to the single source of truth hook Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: update hook references for thin delegator (0.24.0) - ARCHITECTURE.md: fix hook description (shell script → thin delegator) - INSTALL.md: add upgrade path for old hook users (pre-0.24 breaking change) - SECURITY.md: add registry.rs + hook files to Tier 1 critical files Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs(arch): fix module count 52→55, add aws/psql/rewrite to module map Adds aws_cmd, psql_cmd (PR #216) and rewrite_cmd (this PR) to the Complete Module Map table. Updates total from 52 to 55 to match main.rs. Fixes CI validate-docs.sh module count mismatch. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * ci: fix hook coverage check to search rules.rs instead of registry.rs After the PR #241 refactor, rewrite_prefixes constants moved from registry.rs to rules.rs. Update grep to search the whole discover/ directory so it finds them in the right file. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
5a68839486 |
docs: comprehensive v0.15.1 documentation update for Python/Go support
Complete documentation overhaul for RTK v0.15.1 Python and Go support across all user-facing and technical documentation. ## Changes ### Critical (P0) - **CLAUDE.md**: Added maintenance warning, CHANGELOG reference, hook coverage section, corrected module count (46 modules) - **Hooks**: Added Python/Go rewrites (ruff, pytest, pip, go, golangci-lint) - **CI Validation**: New workflow validates doc consistency on every PR ### User Documentation (P1) - **README.md**: Added Python/Go Stack section, updated command tables, added benchmarks, explicit v0.15.1 mention ### Technical Documentation (P2) - **ARCHITECTURE.md**: Updated metadata (v0.15.1, 2026-02-12), added Python/Go modules to organization table, 3 new filtering strategies (JSON/TEXT Dual, State Machine, NDJSON), complete Python & Go Module Architecture section ## Validation - ✅ All docs mention version 0.15.1 - ✅ Module count consistent (46 across all docs) - ✅ All Python/Go commands documented - ✅ Hook rewrites present and tested - ✅ scripts/validate-docs.sh passes ## Impact - Prevents documentation drift (CI validation) - Claude Code immediately uses Python/Go via hooks - Clear architecture guidance for contributors - 375 lines added across 6 files Closes #[issue-number-if-any] Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |