feat(git-status): configurable max repositories and git timeout; keep unreadable repos listed

Settings (per device): Git status: max repositories (1-50, default 12) and git timeout (5-120 s, default 30, was a fixed 10). Both go to /git-status and /git-diff as maxRepos / timeout query parameters, clamped server-side (an empty value means the default). A repository whose git status fails stays in the list with the reason instead of being dropped silently, shows as '? N' in the indicator, and the truncation line now names the limit and the setting. The discovery cache is keyed by the limit.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JrzFKEdBLwVfu6ev2ZscJS
This commit is contained in:
Devvyn
2026-10-06 20:04:45 +08:00
co-authored by Claude Sonnet 5.5
parent ac94f339ac
commit 3ae22f64a4
13 changed files with 429 additions and 48 deletions
+16
View File
@@ -19788,3 +19788,19 @@ html .toolbar .btn-git-status[aria-expanded='true'] {
padding-left: 0.4rem;
border-left: 1px solid var(--border);
}
/* Git status panel: a repository git could not read stays in the list, with the reason */
.git-status-repo--error {
display: flex;
align-items: baseline;
gap: 0.5rem;
flex-wrap: wrap;
padding: 0.35rem 0.5rem;
background: var(--bg-input);
min-width: 0;
}
.git-status-repo-unreadable {
color: #e0a030;
font-size: 0.68rem;
}