Repository navigation
Description
Context
This issue originally described a large refactor of the older Sync Status panel. The repository has since moved substantially toward the Source Control architecture (src/logic/source-control/*, src/ui/source-control/*) with newer queue/change presentation work.
Do not implement this issue by recreating the historical toolbar/layout or by treating old SyncStatusView structure as the target UI.
Goal
Finish the remaining visual hierarchy, responsiveness, and accessibility work against current main and the current Source Control / Sync Queue mental model.
P0 — current Source Control hierarchy
- Audit the current Source Control view at narrow desktop sidebar, desktop wide pane, mobile portrait, and mobile landscape.
- Keep change state and planned sync action visually distinct; do not collapse them back into one overloaded status badge/action model.
- Keep the primary working area compact: search/refresh/view controls should not consume excessive vertical space.
- Batch/queue actions should appear contextually when there is actionable selection/queue state rather than as permanent visual noise.
- Each file row should expose a clear primary action/next step; secondary/destructive actions belong in contextual/overflow UI where appropriate.
- Conflict/error states may use stronger emphasis; normal M/A/D/R/change states should remain readable without turning every row into a colored alert.
P1 — diff/readability
- Preserve
+N / -Mdiff stats already implemented in the current sync/source-control flow; do not duplicate the stat engine. - Verify file path, stat, state, and action remain scannable in narrow sidebars.
- Use non-color cues for additions/deletions/conflict states.
- Keep mobile diff presentation usable without horizontal UI overflow.
P1 — design tokens / responsive cleanup
- Audit current CSS for repeated spacing/radius/control-size values and consolidate only where a shared token improves consistency.
- Prefer Obsidian theme variables for text, surfaces, borders, and accent colors; Firstsun branding should not override normal Obsidian chrome.
- Consolidate obsolete/duplicate breakpoints and CSS rules left from the older Sync Status implementation after verifying they are unused.
- Primary mobile touch targets should be approximately 44px where practical.
P1 — states
Provide explicit current-architecture states for:
- repository/provider not configured;
- loading/refreshing;
- everything synchronized/no changes;
- refresh/provider failure;
- empty queue vs. no repository changes.
The UI should tell the user what state they are in and the next useful action, not display generic gray placeholder text.
Settings boundary
Settings information architecture is related but should follow the current settings implementation/API strategy (see #100) rather than assuming the historical src/settings.ts monolith. Avoid coupling this UI cleanup to a second settings rewrite unless required.
Acceptance criteria
Desktop
- Current Source Control top controls remain compact and are not silently clipped in a narrow sidebar.
- Change state and sync action are distinguishable without relying on color alone.
- A row does not show multiple equal-weight destructive/primary buttons by default.
Mobile
- No horizontal control overflow at supported narrow widths.
- Primary actions are touch-friendly.
- Diff/queue state remains understandable without desktop hover behavior.
Theme compatibility
Verify manually with Obsidian Default Light/Dark plus at least one high-accent/high-contrast theme.
Non-goals
- Do not restore the old Sync Status panel architecture.
- Do not change sync semantics/provider behavior in this issue.
- Do not duplicate work already tracked by current source-control/action issues such as refactor(sync-queue): separate change state from sync action in UX #137.
Related development (managed by Project #6 audit)
- PR git-files-sync#129 (merged)
- Active branch:
claude/mobile-source-control-density
Activity
refactor(ui): keep file row actions inline instead of a full second r…
style(ui): pin file row actions flush right explicitly (issue #86 fol…
style(ui): fix stretched narrow-width action buttons (issue #86 follo…
fix(ui): reserve overflow-button space consistently for right alignme…
refactor(ui): remove tree/row grid lines, neutral per-file buttons (i…
refactor(ui): simplify tree and file rows, name destructive actions (…
style(ui): consolidate responsive breakpoints, align spacing to token…
fix(ui): raise all touch targets to the 44px minimum (issue #86)
test(ui): cover responsive-state transitions for the panel refactor (…
ClaudiaFang commentedon Aug 3, 2026
Backlog priority review — 2026-08-04
Priority:
P0Reason: PR #92 already implements part of this active UX refactor, and the remaining work is primarily scope reconciliation and real Obsidian verification. Leaving the umbrella open while adding adjacent UI features will increase conflicts and make acceptance status unclear.
Scheduling note: Verify PR #92 in default light/dark, narrow sidebar, and mobile; update this checklist to distinguish completed, deferred, and still-required items before merging or opening follow-up work.
[-]refactor(ui): reduce visual noise and clarify action hierarchy in Sync Status panel[/-][+]refactor(ui): finish Source Control UX hierarchy and responsive cleanup on current architecture[/+]ClaudiaFang commentedon Oct 14, 2026
Project #6 audit (2026-10-14) — related open PR #156, branch
claude/mobile-source-control-density, implements a subset of this umbrella's responsive Source Control work (mobile row density, path truncation, queue/repository spacing). Its PR checklist still leaves real Obsidian desktop/mobile visual verification unchecked. The older PR #92 mentioned previously is closed without merge. This does not fulfill all of #86's UX hierarchy, keyboard/touch, and theme acceptance criteria; leave #86 open.ClaudiaFang commentedon Oct 28, 2026
2026-10-28 Development 關聯修正
已解除 PR #156 的closing 關聯,避免其合併後將整張 Source Control UX Issue 提前關閉。PR #156 主要處理 Automatic Sync 與 Mobile Density,屬本 Issue 部分關聯工作,但尚未涵蓋完整 UX 階層、狀態/差異呈現與 Obsidian 主題驗收。PR #156 已正式關聯到它實際交付的 Automatic Sync Issue #141。