Skip to content

feat: pyauto-status dirty file listing + split MOD/UNTR columns - #5

Merged
Jammy2211 merged 1 commit into
mainfrom
feature/dashboard-dirty-listing
Apr 27, 2026
Merged

feat: pyauto-status dirty file listing + split MOD/UNTR columns#5
Jammy2211 merged 1 commit into
mainfrom
feature/dashboard-dirty-listing

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #2. Splits the single DIRTY column in pyauto-status into MOD (tracked-modified) + UNTR (untracked), and adds a per-repo file listing after the main table so the dashboard surfaces what is dirty, not just how many. Caches git status --porcelain once per repo so the listing is free — same number of git invocations as before. Closes #4.

API Changes

None — internal changes only. PyAutoPrompt has no public Python API.

The dashboard's column layout changes: DIRTY is replaced by MOD UNTR. Personal terminal tool with one user; no consumers to migrate.

Test Plan

  • time pyauto-status from a fresh shell still completes in <10s.
  • A repo with 0 dirty files shows MOD=0 UNTR=0, no * flag, and is omitted from the listing.
  • A repo with both modified and untracked files shows non-zero in both columns and both appear in the listing with their ?? / M prefixes preserved.
  • bash PyAutoPrompt/scripts/status.sh --repos produces the new format (delegation path unbroken).
Implementation notes
  • Porcelain output is cached in a bash associative array (declare -A repo_porcelain) keyed by repo basename. The dirty-file listing iterates repos a second time to emit only repos with non-empty porcelain.
  • Counts: untr is grep -c '^??', mod is grep -cv '^??' against the cached output. Empty porcelain shortcuts to mod=0 untr=0.
  • Format string updated to '%-32s %-30s %-36s %6s %5s %4s %4s %s\n'. Dashed separator widened to match.
  • No cap on file count per repo — load-bearing signal, not noise. Revisit if a repo overflows in practice.
  • Out of scope: auto-categorization of "looks generated" untracked files (extension-based), persistent state for tracking dirty trends across runs, color/highlighting.

🤖 Generated with Claude Code

Replace the single DIRTY column in pyauto-status with separate MOD
(tracked-modified) and UNTR (untracked) counts so accumulating noise
is distinguishable from real edits-in-progress. After the main table,
emit a `Dirty files:` section listing the actual `git status --porcelain`
output for every repo with dirty content, indented under the repo name.
Cache porcelain once per repo so the listing reuses the same data the
counts came from — no extra git invocations.

Day-to-day signal: if UNTR climbs across runs for a repo, the .gitignore
needs extending. MOD counts surface real edits that need committing
or reverting.

Closes #4

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Jammy2211
Jammy2211 merged commit 564a968 into main Apr 27, 2026
@Jammy2211
Jammy2211 deleted the feature/dashboard-dirty-listing branch April 27, 2026 21:10
Jammy2211 pushed a commit that referenced this pull request May 6, 2026
Jammy2211 pushed a commit that referenced this pull request Jul 8, 2026
Jammy2211 pushed a commit that referenced this pull request Jul 9, 2026
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.

feat: pyauto-status dirty file listing + split MOD/UNTR columns

1 participant