feat(FN-803): add ahead/behind commit lists to Git Manager Remotes tab

- Add backend API routes for remote commit lists (local-ahead, remote-ahead, all commits by branch)
- Surface ahead/behind commit counts and expandable commit lists in Remotes tab UI
- Add expand/collapse rows showing commit hash, message, author, and relative date
- Style commit list rows with alternating backgrounds and monospace hashes
- Add comprehensive tests for API routes and GitManagerModal component
- Update README documentation for Git Manager Remotes tab
This commit is contained in:
gsxdsm
2026-04-03 22:02:57 -07:00
parent 1279a8a781
commit 004a282074
9 changed files with 833 additions and 6 deletions

View File

@@ -13445,6 +13445,111 @@ html .column.drag-over * {
padding: var(--space-xs);
}
.gm-remote-item.selected {
border-color: var(--primary);
background: var(--primary-bg, color-mix(in srgb, var(--primary) 8%, transparent));
}
.gm-commits-to-push {
padding: var(--space-sm) 0;
display: flex;
flex-direction: column;
gap: var(--space-xs);
}
.gm-commits-to-push h5 {
font-size: 12px;
font-weight: 600;
color: var(--text-muted);
text-transform: uppercase;
letter-spacing: 0.05em;
margin: 0;
}
.gm-commits-count {
display: flex;
align-items: center;
gap: var(--space-xs);
font-size: 12px;
color: var(--text-muted);
}
.gm-commits-empty {
font-size: 12px;
color: var(--text-muted);
padding: var(--space-sm) 0;
}
.gm-commit-item-compact {
display: flex;
align-items: flex-start;
gap: var(--space-sm);
padding: var(--space-xs) var(--space-sm);
border-radius: var(--radius-sm);
font-size: 13px;
}
.gm-commit-item-compact:hover {
background: var(--hover);
}
.gm-commit-compact-hash {
flex-shrink: 0;
font-family: var(--font-mono);
font-size: 12px;
color: var(--text-muted);
padding-top: 1px;
}
.gm-commit-compact-info {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 2px;
}
.gm-commit-compact-info .gm-commit-message {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--text);
}
.gm-commit-compact-info .gm-commit-meta {
display: flex;
align-items: center;
gap: var(--space-xs);
font-size: 11px;
color: var(--text-muted);
}
.gm-remote-commits-section {
margin-top: var(--space-md);
border-top: 1px solid var(--border);
padding-top: var(--space-md);
}
.gm-remote-commits-section .gm-section-header {
margin-bottom: var(--space-sm);
}
.gm-remote-commits-section h5 {
font-size: 12px;
font-weight: 600;
color: var(--text-muted);
text-transform: uppercase;
letter-spacing: 0.05em;
margin: 0 0 var(--space-sm) 0;
}
.gm-remote-commits-list {
max-height: 280px;
overflow-y: auto;
display: flex;
flex-direction: column;
}
/* ── Responsive ── */
@media (max-width: 640px) {