feat(dashboard,cli): update-check frequency, GitHub star button, more resizable modals
Update-check frequency (end-to-end) - Add `updateCheckFrequency: "manual" | "on-startup" | "daily" | "weekly"` to GlobalSettings (default: "daily"). - Backend `performUpdateCheck` honors the frequency: TTL = day/week, `manual` returns cache or empty without hitting npm, `on-startup` refreshes once per process lifetime then serves cache. `/refresh` route forces network regardless. - Settings → Updates surfaces a working `<select>` for the cadence, disabled when auto-checks are off entirely. - Tests: 4 new cases covering ttlForFrequency mapping, weekly window, manual semantics, on-startup once-per-process behavior. TUI update notice - Read cached update result synchronously on TUI startup. When an update is available, render a yellow notice line on the splash and a colored ● next to the version in the status bar. Settings modal header polish - Add "Star on GitHub" pill (icon + Star + cached star count from the GitHub API, 1h localStorage TTL) and "Help" button (opens project Discussions). Both link to the Runfusion/Fusion repo. - Star button auto-hides after the user clicks it (intent = star), tracked in localStorage `fusion:github-star-clicked`. - Settings → General gets a "Show Star on GitHub button" checkbox so users can hide it preemptively. New global setting `showGitHubStarButton: boolean` (default true) gates rendering. More resizable modals - Task Detail modal: 85vh default, resize: both, persisted via useModalResizePersist (key `fusion:task-detail-modal-size`). - Quick Chat FAB: full 8-direction resize (4 corners + 4 edges) via pointer-event handlers; persisted to `fusion:quick-chat-size-<projectId>`. Each handle has the right cursor + role="separator" for accessibility. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,60 @@
|
||||
Extracted from styles.css as part of the Sweep-3 CSS extraction effort.
|
||||
Imported by SettingsModal.tsx (and MemoryView.tsx for shared classes). */
|
||||
|
||||
/* === Settings Modal header action buttons (Star on GitHub, Help) === */
|
||||
.settings-header-actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--space-xs);
|
||||
margin-left: auto;
|
||||
margin-right: var(--space-sm);
|
||||
}
|
||||
|
||||
/* GitHub star button — split-pill layout: [Star half | Count half] */
|
||||
.settings-github-star-btn {
|
||||
display: inline-flex;
|
||||
align-items: stretch;
|
||||
border: var(--btn-border-width) solid var(--border);
|
||||
border-radius: var(--radius-pill);
|
||||
background: var(--card);
|
||||
color: var(--text);
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
text-decoration: none;
|
||||
overflow: hidden;
|
||||
transition:
|
||||
border-color var(--transition-fast),
|
||||
background var(--transition-fast);
|
||||
}
|
||||
|
||||
.settings-github-star-btn:hover {
|
||||
border-color: var(--text-muted);
|
||||
background: var(--card-hover);
|
||||
}
|
||||
|
||||
.settings-github-star-btn:focus-visible {
|
||||
outline: none;
|
||||
box-shadow: var(--focus-ring-strong);
|
||||
border-color: var(--todo);
|
||||
}
|
||||
|
||||
.settings-github-star-btn__action {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
padding: 4px 10px;
|
||||
}
|
||||
|
||||
.settings-github-star-btn__count {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 4px 9px;
|
||||
border-left: var(--btn-border-width) solid var(--border);
|
||||
background: color-mix(in srgb, var(--surface) 60%, var(--card));
|
||||
color: var(--text-muted);
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
/* === Settings Modal: sizing + resizability === */
|
||||
.settings-modal {
|
||||
width: min(95vw, 1100px);
|
||||
|
||||
Reference in New Issue
Block a user