claude-code-kanban 3.2.1 → 3.2.2

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": "3.2.1",
3
+ "version": "3.2.2",
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": {
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "name": "claude-code-kanban",
3
- "version": "1.0.0",
4
- "description": "Agent activity tracking for claude-code-kanban dashboard",
5
- "hooks": "./hooks/hooks.json"
3
+ "version": "1.0.1",
4
+ "description": "Agent activity tracking for claude-code-kanban dashboard"
6
5
  }
package/public/app.js CHANGED
@@ -2110,6 +2110,8 @@ function renderSessions() {
2110
2110
  // Update project dropdown
2111
2111
  updateProjectDropdown();
2112
2112
 
2113
+ // Filter pipeline: active filter → force-include revealed/current (non-pinned) sessions →
2114
+ // project filter → search filter → ensure pinned/sticky sessions are always included
2113
2115
  const LIVE_INDICATOR_MS = 10 * 1000;
2114
2116
  let filteredSessions = sessions;
2115
2117
  if (sessionFilter === 'active') {
@@ -2128,11 +2130,17 @@ function renderSessions() {
2128
2130
  if (isActive) activeSessionIds.add(s.id);
2129
2131
  return isActive;
2130
2132
  });
2133
+ // Force-include revealed/current sessions that didn't pass the active filter.
2134
+ // Skip pinned sessions — they are prepended separately below (lines ~2180) to preserve stable position.
2131
2135
  const filteredIds = new Set(filteredSessions.map((s) => s.id));
2132
2136
  for (const id of [revealedPlanSessionId, revealedStorageSessionId, currentSessionId]) {
2133
- if (id && !filteredIds.has(id)) {
2137
+ if (id && !filteredIds.has(id) && !isAnyPinned(id)) {
2134
2138
  const session = sessions.find((s) => s.id === id);
2135
- if (session) filteredSessions.push(session);
2139
+ if (session) {
2140
+ const insertAt = filteredSessions.findIndex((s) => s.modifiedAt < session.modifiedAt);
2141
+ if (insertAt === -1) filteredSessions.push(session);
2142
+ else filteredSessions.splice(insertAt, 0, session);
2143
+ }
2136
2144
  }
2137
2145
  }
2138
2146
  }