Skip to content

feat(gci): add compact filesystem listing - #3478

Open
isink17 wants to merge 1 commit into
rtk-ai:developfrom
isink17:feat/gci-filesystem-listing
Open

feat(gci): add compact filesystem listing#3478
isink17 wants to merge 1 commit into
rtk-ai:developfrom
isink17:feat/gci-filesystem-listing

Conversation

@isink17

@isink17 isink17 commented Aug 8, 2026

Copy link
Copy Markdown

Summary

  • add explicit rtk gci as a compact RTK-native filesystem listing command
  • support bounded recursive listing, depth limits, basename glob filtering, hidden entries, multiple roots, and deterministic output
  • list symlinks, Windows junctions, and reparse points without ever traversing them

rtk gci is intentionally an RTK-native filesystem command, not a transparent PowerShell Get-ChildItem/gci compatibility layer. Remove-Item is unchanged.

CLI

rtk gci [PATH...] [-a|--all] [-R|--recursive] [--max-depth N] [--filter GLOB] [--limit N]

Output is compact and machine-friendly:

  • d <path> — directory
  • f <bytes> <path> — regular file
  • l <path> — symlink/reparse point

Safety and behavior

  • filesystem paths only; no PowerShell providers or runspace semantics
  • non-recursive by default
  • no .gitignore or repository-aware filtering
  • hidden names and Windows hidden attributes are excluded by default
  • symlinks, junctions, and reparse points are listed but never traversed
  • traversal is iterative
  • retained result memory is bounded by --limit
  • default display limit is 200 entries; truncation reports shown/total/omitted
  • partial enumeration failures report the failing path, preserve successful output, and return non-zero
  • no savings telemetry is recorded because this RTK-native command has no measured native-output baseline

Validation

  • rtk cargo test --bin rtk gci: 58 passed, 2534 filtered
  • rtk cargo fmt --all -- --check: passed
  • rtk cargo check --all-targets: passed
  • rtk cargo clippy --all-targets: passed
  • rtk cargo test --all: 2606 passed, 8 ignored, 1 local environment failure
  • the single failing grep_no_match_emits_empty_not_a_message guard was reproduced unchanged on the exact clean base SHA; the installed C:\tools\w64devkit\bin\grep.exe rejects the existing --null option and exits 2
  • supplemental full run excluding only that exact base-proven environment failure: 2606 passed, 8 ignored

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant