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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-kanban",
3
- "version": "2.2.0-rc.2",
3
+ "version": "2.2.0-rc.3",
4
4
  "description": "A web-based Kanban board for viewing Claude Code tasks with agent teams support",
5
5
  "main": "server.js",
6
6
  "bin": {
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: counts.newestTaskMtime ? counts.newestTaskMtime.toISOString() : (info.updatedAt || new Date(0).toISOString()),
588
+ modifiedAt,
589
+ hasActiveAgents: agentStatus.hasActive,
590
+ hasRunningAgents: agentStatus.hasRunning,
591
+ hasWaitingForUser: !!agentStatus.waitingForUser,
577
592
  tasksDir: customTaskDir,
578
593
  sharedTaskList: taskListName,
579
594
  }));