claude-code-kanban 2.2.0-rc.2 → 2.2.0-rc.3
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/package.json +1 -1
- package/public/app.js +1 -3
- package/server.js +16 -1
package/package.json
CHANGED
package/public/app.js
CHANGED
|
@@ -1765,7 +1765,6 @@ function renderSessions() {
|
|
|
1765
1765
|
let filteredSessions = sessions;
|
|
1766
1766
|
if (sessionFilter === 'active') {
|
|
1767
1767
|
const ACTIVE_PLAN_MS = 15 * 60 * 1000;
|
|
1768
|
-
const RECENTLY_MODIFIED_MS = 5 * 60 * 1000;
|
|
1769
1768
|
const now = Date.now();
|
|
1770
1769
|
const activeSessionIds = new Set();
|
|
1771
1770
|
filteredSessions = filteredSessions.filter((s) => {
|
|
@@ -1776,8 +1775,7 @@ function renderSessions() {
|
|
|
1776
1775
|
s.hasActiveAgents ||
|
|
1777
1776
|
s.hasWaitingForUser ||
|
|
1778
1777
|
s.hasRecentLog ||
|
|
1779
|
-
(s.hasPlan && !s.planImplementationSessionId && now - new Date(s.modifiedAt).getTime() <= ACTIVE_PLAN_MS)
|
|
1780
|
-
now - new Date(s.modifiedAt).getTime() <= RECENTLY_MODIFIED_MS);
|
|
1778
|
+
(s.hasPlan && !s.planImplementationSessionId && now - new Date(s.modifiedAt).getTime() <= ACTIVE_PLAN_MS));
|
|
1781
1779
|
if (isActive) activeSessionIds.add(s.id);
|
|
1782
1780
|
return isActive;
|
|
1783
1781
|
});
|
package/server.js
CHANGED
|
@@ -568,12 +568,27 @@ app.get('/api/sessions', async (req, res) => {
|
|
|
568
568
|
} else {
|
|
569
569
|
const meta = { ...(metadata[sessionId] || {}) };
|
|
570
570
|
if (!meta.project && info.project) meta.project = info.project;
|
|
571
|
+
const logStat = getSessionLogStat(meta);
|
|
572
|
+
const logMtime = logStat.mtime;
|
|
573
|
+
const logAge = logMtime ? Date.now() - logMtime : Infinity;
|
|
574
|
+
const stale = logAge > AGENT_STALE_MS;
|
|
575
|
+
const agentDir = path.join(AGENT_ACTIVITY_DIR, sessionId);
|
|
576
|
+
const agentStatus = checkAgentStatus(agentDir, stale, logMtime, false);
|
|
577
|
+
let modifiedAt = counts.newestTaskMtime ? counts.newestTaskMtime.toISOString() : (info.updatedAt || new Date(0).toISOString());
|
|
578
|
+
if (logMtime) {
|
|
579
|
+
const jsonlMtime = new Date(logMtime).toISOString();
|
|
580
|
+
if (jsonlMtime > modifiedAt) modifiedAt = jsonlMtime;
|
|
581
|
+
}
|
|
571
582
|
sessionsMap.set(sessionId, buildSessionObject(sessionId, meta, {
|
|
583
|
+
_logStat: logStat,
|
|
572
584
|
taskCount: counts.taskCount,
|
|
573
585
|
completed: counts.completed,
|
|
574
586
|
inProgress: counts.inProgress,
|
|
575
587
|
pending: counts.pending,
|
|
576
|
-
modifiedAt
|
|
588
|
+
modifiedAt,
|
|
589
|
+
hasActiveAgents: agentStatus.hasActive,
|
|
590
|
+
hasRunningAgents: agentStatus.hasRunning,
|
|
591
|
+
hasWaitingForUser: !!agentStatus.waitingForUser,
|
|
577
592
|
tasksDir: customTaskDir,
|
|
578
593
|
sharedTaskList: taskListName,
|
|
579
594
|
}));
|