Conversation
A faint sentence read as a placeholder. Diff blanks, history, the graph, welcome search, rebase, and a commit with no files now share one icon, title, and line.
The working tree fixture gained three files, so the All files label is 12 changed.
cheat2001
left a comment
There was a problem hiding this comment.
I like this. Ran it in demo mode and the panel reads as part of the app, same tile as the sidebar and settings empty states, and the staged whitespace copy closes the gap #38 left. Two small things before I merge.
The plate colour. Everywhere else that tint is written bg-primary/15 (EmptyCard, the sidebar tiles), so a named token for the same value gives us two ways to say one thing. Can you use bg-primary/15 on the icon well and drop the preset entry?
The whitespace condition in DiffPanel has a !diff && !isWorkingCopy branch. The engine never returns a null diff for a commit file, a whitespace only file comes back with zero hunks, which blankText already catches, and diff is only null after an error, which the branch above handles. So that part can't be reached. Drop it and whitespaceOnly is just ignoreWhitespace && !target.unchanged && blankText.
Commits get squashed on merge, no need to tidy the fix e2e ones.
What & why
Empty panes were a single faint sentence, which read as a placeholder. This adds one centered panel (icon well, title, one line of why) and uses it wherever a whole pane was blank: a whitespace-only diff (including the staged case from #38), an empty file, a binary file, a missing image, no diff, a file with no history, an empty graph, a commit with no files, a welcome search with no matches, and an empty rebase plan. Filter misses and the command palette stay one line, because those are not a pane.
Screenshots
Checklist
pnpm typecheck && pnpm testpasscargo fmt --check && cargo clippy --all-targets -- -D warnings && cargo testpass (if Rust changed)tests/git_engine.rstracked()wrapper where undoableCLAUDE.mdupdated if conventions/architecture changedCo-authored-by: <tool>,Generated with …)Made with Cursor