feat(FN-2391): add clickable per-file diffs in Git Manager

- Add a new /api/git/diff/file endpoint with path and staged query handling, including validation and untracked-file diff support
- Introduce fetchGitFileDiff API client wiring and update GitManagerModal to load diffs for selected staged/unstaged file rows
- Improve file-row UX with active/focus styling, keyboard activation, and guarded async diff loading/error states
- Expand dashboard route and modal tests to cover per-file diff behavior, query validation, and stage/unstage interaction isolation
This commit is contained in:
Fusion
2026-04-24 22:10:53 -07:00
committed by gsxdsm
parent babef7b97f
commit e06d4efdb5
6 changed files with 414 additions and 69 deletions

View File

@@ -2019,6 +2019,7 @@
border-bottom: 1px solid rgba(255, 255, 255, 0.03);
font-size: 13px;
transition: background var(--transition-fast);
cursor: pointer;
}
.gm-file-item:last-child {
@@ -2033,6 +2034,15 @@
background: rgba(63, 185, 80, 0.03);
}
.gm-file-item.active {
background: var(--card-hover);
}
.gm-file-item:focus-visible {
outline: none;
box-shadow: var(--focus-ring-strong);
}
.gm-file-checkbox {
display: flex;
align-items: center;
@@ -2105,6 +2115,20 @@
gap: var(--space-sm);
}
.gm-diff-target {
display: flex;
align-items: center;
gap: var(--space-xs);
font-size: 12px;
color: var(--text-muted);
}
.gm-diff-target code {
font-family: var(--font-mono);
font-size: 11px;
color: var(--text);
}
.changed-files-diff-section {
height: 100%;
}