From 79b58c780704824a996a9120e6187f8d3225f538 Mon Sep 17 00:00:00 2001 From: arkon Date: Sun, 15 Feb 2026 05:55:18 +0100 Subject: [PATCH] chore: bump version to 0.1508 --- CLAUDE.md | 2 +- package.json | 2 +- src/web/public/app.js | 61 +++++++++++++++++++++++++++---------------- 3 files changed, 41 insertions(+), 24 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index efded13e..c46fc859 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -25,7 +25,7 @@ When user says "COM": 1. Increment version in BOTH `package.json` AND `CLAUDE.md` (verify they match with `grep version package.json && grep Version CLAUDE.md`) 2. Run: `git add -A && git commit -m "chore: bump version to X.XXXX" && git push && npm run build && systemctl --user restart claudeman-web` -**Version**: 0.1507 (must match `package.json` for npm publish) +**Version**: 0.1508 (must match `package.json` for npm publish) ## Project Overview diff --git a/package.json b/package.json index e7e2bb64..62eb0af8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "claudeman", - "version": "0.1507", + "version": "0.1508", "description": "The missing control plane for Claude Code - run 20 autonomous agents with real-time monitoring and session persistence", "type": "module", "main": "dist/index.js", diff --git a/src/web/public/app.js b/src/web/public/app.js index 0861e90f..35fd8967 100644 --- a/src/web/public/app.js +++ b/src/web/public/app.js @@ -9030,19 +9030,21 @@ class ClaudemanApp { const settings = this.loadAppSettingsFromStorage(); document.getElementById('appSettingsClaudeMdPath').value = settings.defaultClaudeMdPath || ''; document.getElementById('appSettingsDefaultDir').value = settings.defaultWorkingDir || ''; - document.getElementById('appSettingsRalphEnabled').checked = settings.ralphTrackerEnabled ?? false; - // Header visibility settings (default to true/enabled) - document.getElementById('appSettingsShowFontControls').checked = settings.showFontControls ?? false; - document.getElementById('appSettingsShowSystemStats').checked = settings.showSystemStats ?? true; - document.getElementById('appSettingsShowTokenCount').checked = settings.showTokenCount ?? true; - document.getElementById('appSettingsShowCost').checked = settings.showCost ?? false; - document.getElementById('appSettingsShowMonitor').checked = settings.showMonitor ?? true; - document.getElementById('appSettingsShowProjectInsights').checked = settings.showProjectInsights ?? false; - document.getElementById('appSettingsShowFileBrowser').checked = settings.showFileBrowser ?? false; - document.getElementById('appSettingsShowSubagents').checked = settings.showSubagents ?? false; - document.getElementById('appSettingsSubagentTracking').checked = settings.subagentTrackingEnabled ?? true; - document.getElementById('appSettingsSubagentActiveTabOnly').checked = settings.subagentActiveTabOnly ?? true; - document.getElementById('appSettingsImageWatcherEnabled').checked = settings.imageWatcherEnabled ?? false; + // Use device-aware defaults for display settings (mobile has different defaults) + const defaults = this.getDefaultSettings(); + document.getElementById('appSettingsRalphEnabled').checked = settings.ralphTrackerEnabled ?? defaults.ralphTrackerEnabled ?? false; + // Header visibility settings + document.getElementById('appSettingsShowFontControls').checked = settings.showFontControls ?? defaults.showFontControls ?? false; + document.getElementById('appSettingsShowSystemStats').checked = settings.showSystemStats ?? defaults.showSystemStats ?? true; + document.getElementById('appSettingsShowTokenCount').checked = settings.showTokenCount ?? defaults.showTokenCount ?? true; + document.getElementById('appSettingsShowCost').checked = settings.showCost ?? defaults.showCost ?? false; + document.getElementById('appSettingsShowMonitor').checked = settings.showMonitor ?? defaults.showMonitor ?? true; + document.getElementById('appSettingsShowProjectInsights').checked = settings.showProjectInsights ?? defaults.showProjectInsights ?? false; + document.getElementById('appSettingsShowFileBrowser').checked = settings.showFileBrowser ?? defaults.showFileBrowser ?? false; + document.getElementById('appSettingsShowSubagents').checked = settings.showSubagents ?? defaults.showSubagents ?? false; + document.getElementById('appSettingsSubagentTracking').checked = settings.subagentTrackingEnabled ?? defaults.subagentTrackingEnabled ?? true; + document.getElementById('appSettingsSubagentActiveTabOnly').checked = settings.subagentActiveTabOnly ?? defaults.subagentActiveTabOnly ?? true; + document.getElementById('appSettingsImageWatcherEnabled').checked = settings.imageWatcherEnabled ?? defaults.imageWatcherEnabled ?? false; // Claude CLI settings const claudeModeSelect = document.getElementById('appSettingsClaudeMode'); const allowedToolsRow = document.getElementById('allowedToolsRow'); @@ -9416,10 +9418,10 @@ class ClaudemanApp { applyHeaderVisibilitySettings() { const settings = this.loadAppSettingsFromStorage(); - // Use stored values or fallback defaults (mobile has different defaults via getDefaultSettings) - const showFontControls = settings.showFontControls ?? false; - const showSystemStats = settings.showSystemStats ?? true; - const showTokenCount = settings.showTokenCount ?? true; + const defaults = this.getDefaultSettings(); + const showFontControls = settings.showFontControls ?? defaults.showFontControls ?? false; + const showSystemStats = settings.showSystemStats ?? defaults.showSystemStats ?? true; + const showTokenCount = settings.showTokenCount ?? defaults.showTokenCount ?? true; const fontControlsEl = document.querySelector('.header-font-controls'); const systemStatsEl = document.getElementById('headerSystemStats'); @@ -9450,9 +9452,10 @@ class ClaudemanApp { applyMonitorVisibility() { const settings = this.loadAppSettingsFromStorage(); - const showMonitor = settings.showMonitor ?? true; - const showSubagents = settings.showSubagents ?? false; - const showFileBrowser = settings.showFileBrowser ?? false; + const defaults = this.getDefaultSettings(); + const showMonitor = settings.showMonitor ?? defaults.showMonitor ?? true; + const showSubagents = settings.showSubagents ?? defaults.showSubagents ?? false; + const showFileBrowser = settings.showFileBrowser ?? defaults.showFileBrowser ?? false; const monitorPanel = document.getElementById('monitorPanel'); if (monitorPanel) { @@ -9576,9 +9579,23 @@ class ClaudemanApp { const settings = await res.json(); // Extract notification prefs before merging app settings const { notificationPreferences, ...appSettings } = settings; - // Merge app settings with localStorage (server takes precedence) + // Filter out display settings — these are device-specific (mobile vs desktop) + // and should not be synced from the server to avoid overriding mobile defaults + const displayKeys = new Set([ + 'showFontControls', 'showSystemStats', 'showTokenCount', 'showCost', + 'showMonitor', 'showProjectInsights', 'showFileBrowser', 'showSubagents', + 'subagentTrackingEnabled', 'subagentActiveTabOnly', + 'imageWatcherEnabled', 'ralphTrackerEnabled', + ]); + const filteredAppSettings = {}; + for (const [key, value] of Object.entries(appSettings)) { + if (!displayKeys.has(key)) { + filteredAppSettings[key] = value; + } + } + // Merge non-display settings with localStorage (server takes precedence) const localSettings = this.loadAppSettingsFromStorage(); - const merged = { ...localSettings, ...appSettings }; + const merged = { ...localSettings, ...filteredAppSettings }; this.saveAppSettingsToStorage(merged); // Apply notification prefs from server if present (only if localStorage has none)