3 Commits

Author SHA1 Message Date
Florian BRUNIAUX a240d1a1ee feat(grep): add extra args passthrough (-i, -A/-B/-C, etc.)
Add support for passing additional ripgrep arguments to rtk grep
while preserving RTK's token-optimized output formatting.

Changes:
- src/main.rs: Add extra_args field to Grep command variant
- src/main.rs: Pass extra_args to grep_cmd::run()
- src/grep_cmd.rs: Add extra_args parameter to run() signature
- src/grep_cmd.rs: Inject extra_args into ripgrep command
- Unit test: test_extra_args_accepted verifies parameter exists
- Smoke tests: 2 assertions for -i and -A flags

Usage note: Extra args must come AFTER pattern and path:
  ✓ rtk grep "pattern" src/ -i
  ✗ rtk grep "pattern" -i  (clap interprets -i as path)

This enables full ripgrep functionality (case-insensitive, context
lines, word boundaries, globs) while maintaining RTK's compact output.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-02 23:19:43 +01:00
Florian BRUNIAUX 32bbd02534 feat(git): add fallback passthrough for unsupported subcommands
Add external_subcommand variant to GitCommands enum to handle
unsupported git operations (tag, remote, rev-parse, etc.) by
passing them through directly to git.

Changes:
- src/git.rs: Add run_passthrough() function with OsString support
- src/main.rs: Add GitCommands::Other variant with external_subcommand
- src/main.rs: Add OsString import and match arm for passthrough
- Unit test: test_run_passthrough_accepts_args verifies signature
- Smoke tests: 3 new assertions for tag, remote, rev-parse

This preserves all git functionality while maintaining RTK's
token-optimized commands for supported operations.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-02 21:58:09 +01:00
Florian BRUNIAUX 278cc5700b feat: add rtk tree + fix rtk ls + audit phase 1-2
⚠️ MERGE AFTER: Résoudre issues Patrick (curl, benchmark, bypass)

## Changes

### 1. rtk tree - NEW COMMAND ✨
- Proxy vers `tree` natif avec filtrage token-optimized
- Filtre ligne summary ("X directories, Y files")
- Support complet flags natifs (-L, -d, -a, etc.)
- Message installation si tree absent
- Tests: 5/5 passing

Files:
- src/tree.rs (new, 159 lines)
- src/main.rs (add Tree command)

### 2. rtk ls - FIX 🐛
- Fix: ne force plus `-la` par défaut
- Comportement: passthrough pur vers ls natif
- Permet `rtk ls` simple sans flags forcés

Files:
- src/ls.rs (remove default -la)

### 3. Tests - UPDATE ✅
- Fix 3 tests obsolètes rtk ls (--depth, -f tree)
- Add 4 tests rtk tree
- Results: 75 PASS, 0 FAIL, 1 SKIP (98.7%)

Files:
- scripts/test-all.sh

## Audit Phase 1-2 (local docs)

Inventaire complet + analyse paramètres (40+ commandes):
- claudedocs/COMMAND_AUDIT.md
- claudedocs/PARAMETER_ANALYSIS.md
- claudedocs/rtk-tree-implementation.md
- claudedocs/PATRICK_FEEDBACK.md

15+ gaps critiques identifiés (grep -i, git fallback, etc.)

## Issues Patrick à résoudre AVANT merge

1. curl global à remettre
2. Benchmark.sh à exécuter
3. Souci de token à investiguer
4. Erreur PR/bypass des commandes
5. Commandes cassées à identifier

## Test

```bash
# Tree
rtk tree -L 2 src/
rtk tree -d -L 1 .

# Ls (nouveau comportement)
rtk ls          # Simple listing
rtk ls -la      # Detailed
rtk ls -lh      # Human readable

# Tests
bash scripts/test-all.sh  # 75 PASS ✅
cargo test tree::tests    # 5 PASS ✅
```

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-02 21:01:19 +01:00