rtk-ai / rtk-ai/rtk

rtk git status ignores status_max_files config limit on repos with many changed files

Open
#3,296 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area:cli area:config bug platform:macos priority:high
Dominant language
Rust
Stars
81.1k
Forks
5.1k
Avg merge
4d 21h
Merged PRs (30d)
35

Description

Environment

  • rtk 0.44.1 (reproduced on 0.42.3 before upgrading too)
  • macOS (Darwin 25.5.0)
  • Config at ~/Library/Application Support/rtk/config.toml:
[limits]
grep_max_results = 200
grep_max_per_file = 25
status_max_files = 15
status_max_untracked = 10

Steps to reproduce

  1. In a repo with > 15 modified files and several untracked files/dirs (real case: ~30 modified + 6 untracked = 36 entries).
  2. Run rtk git status.

Expected

Output truncated/summarized per status_max_files = 15 and status_max_untracked = 10 (e.g. top N files + a count of the rest).

Actual

Full untruncated output, byte-for-byte identical to plain git status — all 36 entries printed, no truncation, no summary line. Verified this is not just visually identical but literally the same line count as running git status directly in the same repo.

Why this matters

This specific case — a repo with many changed files across several directories — is exactly the scenario where git status compaction has the most value (it's the highest-volume git subcommand in rtk gain/rtk discover reporting). If the configured limit silently doesn't apply once a threshold of directories or total entries is crossed (my working theory, untested), the real-world savings for rtk git status are likely overstated in aggregate reporting for exactly the sessions where it matters most (big multi-package monorepos with lots of concurrent WIP).

Secondary, smaller finding

rtk discover (no flags) silently scans 0 sessions even when run from inside an active project directory with hundreds of tracked Bash invocations in history — it only finds real data with --all. This isn't necessarily wrong behavior, but it fails silent ("No missed savings found. RTK usage looks good!") instead of indicating that project-scope matching found nothing to scan, which reads as a false "everything is fine" signal. Might be worth a distinct message when scanned session count is 0, e.g. "0 sessions matched project filter — try --all", rather than the same success message shown when sessions ARE scanned and genuinely show no gaps.

Happy to share the full git status output / repo file list if useful (contains only internal file paths, no secrets — can share privately if preferred).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing rtk git status in a repository with more than 15 modified files and compare its output and line count with plain git status. Trace how status_max_files and status_max_untracked are applied, then add coverage showing truncation and a summary; treat the separate rtk discover zero-session message as a distinct follow-up unless its scope is confirmed.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, rust
Domain
cli, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.