chore: bump version to 0.1524

This commit is contained in:
arkon
2026-02-17 16:47:54 +01:00
parent dd9d43935d
commit 4fd8174680
6 changed files with 24 additions and 15 deletions
+1 -1
View File
@@ -35,7 +35,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.1523 (must match `package.json` for npm publish)
**Version**: 0.1524 (must match `package.json` for npm publish)
## Project Overview
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "claudeman",
"version": "0.1523",
"version": "0.1524",
"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",
+1 -1
View File
@@ -281,7 +281,7 @@ export class Session extends EventEmitter {
private _isCompacting: boolean = false; // Prevent recursive compacting
// Image watcher setting (per-session toggle)
private _imageWatcherEnabled: boolean = true;
private _imageWatcherEnabled: boolean = false;
// Flicker filter setting (per-session toggle, applied on frontend)
private _flickerFilterEnabled: boolean = false;
+6
View File
@@ -9427,6 +9427,7 @@ class ClaudemanApp {
// Apply header visibility immediately
this.applyHeaderVisibilitySettings();
this._updateTokensImmediate(); // Re-render token display (picks up showCost change)
this.applyMonitorVisibility();
this.renderProjectInsightsPanel(); // Re-render to apply visibility setting
this.updateSubagentWindowVisibility(); // Apply subagent window visibility setting
@@ -9631,6 +9632,11 @@ class ClaudemanApp {
const monitorPanel = document.getElementById('monitorPanel');
if (monitorPanel) {
monitorPanel.style.display = showMonitor ? '' : 'none';
if (showMonitor) {
monitorPanel.classList.add('open');
} else {
monitorPanel.classList.remove('open');
}
}
const subagentsPanel = document.getElementById('subagentsPanel');
+6 -6
View File
@@ -756,7 +756,7 @@
<div class="settings-item" title="Show A-/A+ font size buttons in header">
<span class="settings-item-label">Font Controls</span>
<label class="switch switch-sm">
<input type="checkbox" id="appSettingsShowFontControls" checked>
<input type="checkbox" id="appSettingsShowFontControls">
<span class="slider"></span>
</label>
</div>
@@ -777,7 +777,7 @@
<div class="settings-item" title="Show estimated cost next to token count">
<span class="settings-item-label">Show Cost ($)</span>
<label class="switch switch-sm">
<input type="checkbox" id="appSettingsShowCost" checked>
<input type="checkbox" id="appSettingsShowCost">
<span class="slider"></span>
</label>
</div>
@@ -794,7 +794,7 @@
<div class="settings-item" title="Show active tools and file viewers in a floating panel">
<span class="settings-item-label">Project Insights</span>
<label class="switch switch-sm">
<input type="checkbox" id="appSettingsShowProjectInsights" checked>
<input type="checkbox" id="appSettingsShowProjectInsights">
<span class="slider"></span>
</label>
</div>
@@ -808,7 +808,7 @@
<div class="settings-item" title="Show the Subagents panel (independent from Monitor)">
<span class="settings-item-label">Subagents</span>
<label class="switch switch-sm">
<input type="checkbox" id="appSettingsShowSubagents" checked>
<input type="checkbox" id="appSettingsShowSubagents">
<span class="slider"></span>
</label>
</div>
@@ -825,7 +825,7 @@
<div class="settings-item" title="Only show subagent windows when their parent tab is selected">
<span class="settings-item-label">Active Tab Only</span>
<label class="switch switch-sm">
<input type="checkbox" id="appSettingsSubagentActiveTabOnly">
<input type="checkbox" id="appSettingsSubagentActiveTabOnly" checked>
<span class="slider"></span>
</label>
</div>
@@ -835,7 +835,7 @@
<div class="settings-item" title="Automatically detect and popup new images in session directories">
<span class="settings-item-label">Enable Globally</span>
<label class="switch switch-sm">
<input type="checkbox" id="appSettingsImageWatcherEnabled" checked>
<input type="checkbox" id="appSettingsImageWatcherEnabled">
<span class="slider"></span>
</label>
</div>
+9 -6
View File
@@ -3092,7 +3092,10 @@ NOW: Generate the implementation plan for the task above. Think step by step.`;
if (!existsSync(dir)) {
mkdirSync(dir, { recursive: true });
}
writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
let existing: Record<string, unknown> = {};
try { existing = JSON.parse(readFileSync(settingsPath, 'utf-8')); } catch { /* ignore */ }
const merged = { ...existing, ...settings };
writeFileSync(settingsPath, JSON.stringify(merged, null, 2));
// Handle subagent tracking toggle dynamically
const subagentEnabled = settings.subagentTrackingEnabled ?? true;
@@ -3105,7 +3108,7 @@ NOW: Generate the implementation plan for the task above. Think step by step.`;
}
// Handle image watcher toggle dynamically
const imageWatcherEnabled = settings.imageWatcherEnabled ?? true;
const imageWatcherEnabled = settings.imageWatcherEnabled ?? false;
if (imageWatcherEnabled && !imageWatcher.isRunning()) {
imageWatcher.start();
// Re-watch all active sessions that have image watcher enabled
@@ -4956,21 +4959,21 @@ NOW: Generate the implementation plan for the task above. Think step by step.`;
}
/**
* Check if image watcher is enabled in settings (default: true)
* Check if image watcher is enabled in settings (default: false)
*/
private async isImageWatcherEnabled(): Promise<boolean> {
const settingsPath = join(homedir(), '.claudeman', 'settings.json');
try {
const content = await fs.readFile(settingsPath, 'utf-8');
const settings = JSON.parse(content);
// Default to true if not explicitly set
return settings.imageWatcherEnabled ?? true;
// Default to false if not explicitly set (matches UI default)
return settings.imageWatcherEnabled ?? false;
} catch (err) {
if ((err as NodeJS.ErrnoException).code !== 'ENOENT') {
console.error('Failed to read image watcher setting:', err);
}
}
return true; // Default enabled
return false; // Default disabled (matches UI default)
}
private async restoreScreenSessions(): Promise<void> {