Constrain the dialog header/body layout so very long file paths don't push
or wrap the dialog controls. Results: the title is truncated with an
ellipsis but the full name is available on hover.
- CSS: add grid-template-columns and min-width:0 to dialog/body; force
unified-dialog-header to avoid wrapping and set unified-dialog-text
flex-basis:0; truncate h2 with overflow/ellipsis.
- Svelte: add a title attribute to the h2 so the full filename is shown
on hover.
Annotate file history entries with matches_working_tree and surface that
information in the UI so the most recent commit can be identified as
"current version" when its content equals the working tree.
- Backend: add FileHistoryCommit and annotate_file_history(...) which checks
(only for regular files) whether the newest commit's blob matches the
working tree via `git diff --quiet`. list_file_history now returns the
annotated commits.
- Types: add optional matches_working_tree to GitCommit shape used by the UI.
- UI: show a "Current version"/"Aktueller Stand" badge and disable Diff/Restore
actions for entries that match the working tree (text localized for de/en).
Also add a test that verifies the matching behavior across file edits,
staging, committing and deletion. No external API breaking changes.
Introduce a shared dialog header style (.unified-dialog-header) in app.css and opt dialog components into the new chrome by updating their header markup. Headers now use unified-dialog-icon and unified-dialog-text elements (and import the matching Lucide icons where needed), which standardizes icon placement, title/eyebrow layout, close button styling and responsive behavior. The Command Palette layout was adjusted to include the new header and its grid rows.
The CSS is explicitly opt-in (so page/section headers remain unchanged) and includes hover/focus styles and a theme-sensitive close color variable. This commit is a UI refactor only — no API or behavior logic changes.