claude-code-kanban 3.2.3 → 3.2.4

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/server.js +15 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-kanban",
3
- "version": "3.2.3",
3
+ "version": "3.2.4",
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/server.js CHANGED
@@ -387,9 +387,23 @@ function loadSessionMetadata() {
387
387
  resolvedProjectPath = sessionInfo.projectPath;
388
388
  }
389
389
 
390
+ const candidateProject = indexProjectPath || sessionInfo.projectPath || null;
391
+ const existing = metadata[sessionId];
392
+ // Same sessionId can appear in multiple project dirs (e.g. "shadow"
393
+ // JSONLs that only hold custom-title/agent-name records when a session
394
+ // is continued from a worktree). Don't let a weaker entry (no cwd, no
395
+ // project) overwrite a previously resolved one — just merge scalars.
396
+ if (existing && existing.project && !candidateProject) {
397
+ if (!existing.slug && sessionInfo.slug) existing.slug = sessionInfo.slug;
398
+ if (!existing.customTitle && sessionInfo.customTitle) existing.customTitle = sessionInfo.customTitle;
399
+ if (!existing.gitBranch && sessionInfo.gitBranch) existing.gitBranch = sessionInfo.gitBranch;
400
+ sessionIds.push(sessionId);
401
+ continue;
402
+ }
403
+
390
404
  metadata[sessionId] = {
391
405
  slug: sessionInfo.slug,
392
- project: indexProjectPath || sessionInfo.projectPath || null,
406
+ project: candidateProject,
393
407
  cwd: sessionInfo.cwd || null,
394
408
  gitBranch: sessionInfo.gitBranch || null,
395
409
  customTitle: sessionInfo.customTitle || null,