claude-task-viewer 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/package.json +1 -1
- package/public/index.html +28 -5
package/README.md
CHANGED
package/package.json
CHANGED
package/public/index.html
CHANGED
|
@@ -111,6 +111,10 @@
|
|
|
111
111
|
</svg>
|
|
112
112
|
<span class="text-sm text-gray-300">All Tasks</span>
|
|
113
113
|
</button>
|
|
114
|
+
<label class="flex items-center gap-2 px-3 py-2 mt-1 text-xs text-gray-500 cursor-pointer hover:text-gray-400">
|
|
115
|
+
<input type="checkbox" id="hide-inactive" onchange="toggleHideInactive()" class="rounded border-gray-600 bg-gray-800 text-claude-orange focus:ring-claude-orange focus:ring-offset-0">
|
|
116
|
+
<span>Show active only</span>
|
|
117
|
+
</label>
|
|
114
118
|
</div>
|
|
115
119
|
|
|
116
120
|
<nav id="sessions-list" class="flex-1 overflow-y-auto p-2">
|
|
@@ -122,7 +126,7 @@
|
|
|
122
126
|
<span class="mx-2">·</span>
|
|
123
127
|
<a href="https://policylayer.com" target="_blank" class="hover:text-gray-400">PolicyLayer</a>
|
|
124
128
|
<span class="mx-2">·</span>
|
|
125
|
-
<span>v1.
|
|
129
|
+
<span>v1.2.0</span>
|
|
126
130
|
</footer>
|
|
127
131
|
</aside>
|
|
128
132
|
|
|
@@ -224,6 +228,7 @@
|
|
|
224
228
|
let currentSessionId = null;
|
|
225
229
|
let currentTasks = [];
|
|
226
230
|
let viewMode = 'session'; // 'session' or 'all'
|
|
231
|
+
let hideInactive = localStorage.getItem('hideInactive') === 'true';
|
|
227
232
|
|
|
228
233
|
// DOM elements
|
|
229
234
|
const sessionsList = document.getElementById('sessions-list');
|
|
@@ -309,17 +314,22 @@
|
|
|
309
314
|
}`;
|
|
310
315
|
}
|
|
311
316
|
|
|
312
|
-
|
|
317
|
+
// Filter sessions based on hideInactive
|
|
318
|
+
const filteredSessions = hideInactive
|
|
319
|
+
? sessions.filter(s => s.pending > 0 || s.inProgress > 0)
|
|
320
|
+
: sessions;
|
|
321
|
+
|
|
322
|
+
if (filteredSessions.length === 0) {
|
|
313
323
|
sessionsList.innerHTML = `
|
|
314
324
|
<div class="text-gray-500 text-sm p-4 text-center">
|
|
315
|
-
<p
|
|
316
|
-
<p class="mt-2 text-xs"
|
|
325
|
+
<p>${hideInactive ? 'No active sessions' : 'No sessions found'}</p>
|
|
326
|
+
<p class="mt-2 text-xs">${hideInactive ? 'Uncheck "Show active only" to see all' : 'Tasks will appear here when you use Claude Code'}</p>
|
|
317
327
|
</div>
|
|
318
328
|
`;
|
|
319
329
|
return;
|
|
320
330
|
}
|
|
321
331
|
|
|
322
|
-
sessionsList.innerHTML =
|
|
332
|
+
sessionsList.innerHTML = filteredSessions.map(session => {
|
|
323
333
|
const total = session.taskCount;
|
|
324
334
|
const percent = total > 0 ? Math.round((session.completed / total) * 100) : 0;
|
|
325
335
|
const isActive = session.id === currentSessionId && viewMode === 'session';
|
|
@@ -541,6 +551,13 @@
|
|
|
541
551
|
return div.innerHTML;
|
|
542
552
|
}
|
|
543
553
|
|
|
554
|
+
// Toggle hide inactive sessions
|
|
555
|
+
function toggleHideInactive() {
|
|
556
|
+
hideInactive = document.getElementById('hide-inactive').checked;
|
|
557
|
+
localStorage.setItem('hideInactive', hideInactive);
|
|
558
|
+
renderSessions();
|
|
559
|
+
}
|
|
560
|
+
|
|
544
561
|
// Theme toggle
|
|
545
562
|
function toggleTheme() {
|
|
546
563
|
const body = document.body;
|
|
@@ -569,8 +586,14 @@
|
|
|
569
586
|
}
|
|
570
587
|
}
|
|
571
588
|
|
|
589
|
+
// Load saved preferences
|
|
590
|
+
function loadPreferences() {
|
|
591
|
+
document.getElementById('hide-inactive').checked = hideInactive;
|
|
592
|
+
}
|
|
593
|
+
|
|
572
594
|
// Initialize
|
|
573
595
|
loadTheme();
|
|
596
|
+
loadPreferences();
|
|
574
597
|
fetchSessions();
|
|
575
598
|
setupEventSource();
|
|
576
599
|
|