claude-code-kanban 7.4.0 → 7.6.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.
Files changed (48) hide show
  1. package/README.md +5 -3
  2. package/cli.js +95 -29
  3. package/hub-app.json +5 -0
  4. package/lib/panes.js +41 -6
  5. package/lib/parsers.js +42 -3
  6. package/lib/retention.js +54 -6
  7. package/lib/scratchpad-dir.js +19 -2
  8. package/lib/session-cache.js +1 -1
  9. package/lib/session-events.js +174 -47
  10. package/lib/show.js +385 -0
  11. package/lib/task-dir.js +26 -0
  12. package/lib/terminal-client.js +14 -1
  13. package/lib/terminal-host.js +2 -1
  14. package/lib/terminal.js +28 -8
  15. package/package.json +1 -1
  16. package/plugin/plugins/claude-code-kanban/.claude-plugin/plugin.json +2 -5
  17. package/plugin/plugins/claude-code-kanban/hooks/doorbell.ts +136 -0
  18. package/plugin/plugins/claude-code-kanban/hooks/index.ts +4 -0
  19. package/plugin/plugins/claude-code-kanban/hooks/show.ts +120 -0
  20. package/plugin/plugins/claude-code-kanban/skills/dispatch/SKILL.md +2 -0
  21. package/plugin/plugins/claude-code-kanban/skills/kanban/SKILL.md +3 -3
  22. package/plugin/plugins/claude-code-kanban/skills/show/SKILL.md +45 -0
  23. package/plugin/plugins/claude-code-kanban/skills/show/references/NOTICE.md +27 -0
  24. package/plugin/plugins/claude-code-kanban/skills/show/references/chart.md +58 -0
  25. package/plugin/plugins/claude-code-kanban/skills/show/references/diagram/architecture.md +18 -0
  26. package/plugin/plugins/claude-code-kanban/skills/show/references/diagram/er.md +10 -0
  27. package/plugin/plugins/claude-code-kanban/skills/show/references/diagram/flow.md +13 -0
  28. package/plugin/plugins/claude-code-kanban/skills/show/references/diagram/layers.md +10 -0
  29. package/plugin/plugins/claude-code-kanban/skills/show/references/diagram/sequence.md +19 -0
  30. package/plugin/plugins/claude-code-kanban/skills/show/references/diagram/state.md +12 -0
  31. package/plugin/plugins/claude-code-kanban/skills/show/references/diagram/swimlane.md +10 -0
  32. package/plugin/plugins/claude-code-kanban/skills/show/references/diagram/timeline.md +9 -0
  33. package/plugin/plugins/claude-code-kanban/skills/show/references/diagram/tree.md +10 -0
  34. package/plugin/plugins/claude-code-kanban/skills/show/references/diagram.md +87 -0
  35. package/plugin/plugins/claude-code-kanban/skills/show/references/explain.md +98 -0
  36. package/plugin/plugins/claude-code-kanban/skills/show/references/mockup.md +30 -0
  37. package/plugin/plugins/claude-code-kanban/tests/doorbell.test.ts +133 -0
  38. package/plugin/plugins/claude-code-kanban/tests/show.test.ts +137 -0
  39. package/public/app.js +2151 -1108
  40. package/public/index.html +19 -36
  41. package/public/style.css +1047 -125
  42. package/public/terminal-frame.js +0 -2
  43. package/public/tree-highlight.js +137 -15
  44. package/server.js +237 -178
  45. package/lib/dispatch.js +0 -32
  46. package/plugin/plugins/claude-code-kanban/monitors.json +0 -8
  47. package/plugin/plugins/claude-code-kanban/scripts/postman.js +0 -82
  48. package/plugin/plugins/claude-code-kanban/skills/follow/SKILL.md +0 -47
package/public/index.html CHANGED
@@ -32,6 +32,9 @@
32
32
  </head>
33
33
  <body class="booting">
34
34
  <script src="/vendor/claude-hub-sdk.js"></script>
35
+ <svg width="0" height="0" style="position:absolute" aria-hidden="true">
36
+ <symbol id="icon-pane" viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M3 9h18M9 4v5"/></symbol>
37
+ </svg>
35
38
  <div id="offline-overlay" class="offline-overlay">
36
39
  <div class="offline-card">
37
40
  <div class="clawd-sleep" aria-hidden="true">
@@ -65,7 +68,7 @@
65
68
  <header class="sidebar-header">
66
69
  <div id="activity-chips" class="activity-chips"></div>
67
70
  <button id="new-session-btn" class="new-session-pill" onclick="openNewSession()" title="New session (Ctrl+Alt+N)" hidden>+ New</button>
68
- <button id="sidebar-toggle" class="sidebar-toggle-btn" onclick="toggleSidebar()" title="Toggle sidebar" aria-label="Toggle sidebar">
71
+ <button id="sidebar-toggle" class="sidebar-toggle-btn" onclick="toggleSidebar()" title="Toggle sidebar (\)" aria-label="Toggle sidebar">
69
72
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
70
73
  <path d="M15 18l-6-6 6-6"/>
71
74
  </svg>
@@ -265,7 +268,7 @@
265
268
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="13.5" cy="6.5" r=".5" fill="currentColor"/><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"/><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"/><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"/><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z"/></svg>
266
269
  <div class="theme-menu" id="themeMenu"></div>
267
270
  </span>
268
- <button id="theme-toggle" class="icon-btn" onclick="toggleTheme()" title="Toggle theme" aria-label="Toggle theme">
271
+ <button id="theme-toggle" class="icon-btn" onclick="toggleTheme()" title="Toggle theme (T)" aria-label="Toggle theme">
269
272
  <svg id="theme-icon-dark" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
270
273
  <path d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"/>
271
274
  </svg>
@@ -358,10 +361,9 @@
358
361
  <div id="terminal-pane" class="terminal-pane">
359
362
  <div class="terminal-bar">
360
363
  <span id="terminal-status" class="terminal-status"></span>
361
- <button class="icon-btn" onclick="endTerminalSession()" title="End session (Alt+Shift+`)" aria-label="End terminal session">
362
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
363
- <rect x="6" y="6" width="12" height="12" rx="1"/>
364
- </svg>
364
+ <button id="show-reopen" class="show-reopen" type="button" title="Show the overlay" hidden>
365
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M13 4v7h8"/></svg>
366
+ <span class="show-reopen-n">show</span>
365
367
  </button>
366
368
  </div>
367
369
  <div id="terminal-prompt" class="terminal-prompt"></div>
@@ -370,7 +372,9 @@
370
372
  <p id="terminal-boot-verb"></p>
371
373
  <p class="terminal-boot-slow">Slow to connect. Press <kbd>R</kbd> to reconnect.</p>
372
374
  </div>
373
- <div id="terminal-host" class="terminal-host"></div>
375
+ <div id="terminal-host" class="terminal-host">
376
+ <section id="show-card" class="show-card" aria-label="Show overlay"></section>
377
+ </div>
374
378
  <textarea id="terminal-key-proxy" class="terminal-key-proxy" tabindex="-1" aria-hidden="true"></textarea>
375
379
  </div>
376
380
  </div>
@@ -431,6 +435,9 @@
431
435
  <button id="msg-detail-agent-btn" class="icon-btn" aria-label="View Agent" title="View Agent" style="display:none" onclick="closeMsgDetailModal();showAgentModal(this.dataset.agentId)">
432
436
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" width="16" height="16"><rect x="4" y="10" width="16" height="10" rx="2"/><circle cx="9" cy="15" r="1"/><circle cx="15" cy="15" r="1"/><path d="M12 2v4"/><path d="M2 14h2"/><path d="M20 14h2"/></svg>
433
437
  </button>
438
+ <button id="msg-detail-pane-btn" class="icon-btn" aria-label="Open in a pane" title="Open in a pane" style="display:none" onclick="openMsgInPane()">
439
+ <svg fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><use href="#icon-pane"/></svg>
440
+ </button>
434
441
  <button id="msg-detail-pin-btn" class="icon-btn" aria-label="Pin message" title="Pin message" onclick="togglePinFromModal()">
435
442
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><path d="M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"/></svg>
436
443
  </button>
@@ -461,12 +468,12 @@
461
468
 
462
469
  <!-- File Preview Modal (markdown rendered inline, HTML in a sandboxed iframe) -->
463
470
  <div id="preview-modal" class="modal-overlay" style="z-index:10002;" onclick="closePreviewModal()">
464
- <div class="modal preview-modal-dialog review-host" onclick="event.stopPropagation()">
471
+ <div class="modal preview-modal-dialog review-host" tabindex="-1" onclick="event.stopPropagation()">
465
472
  <div class="modal-header">
466
473
  <h3 class="modal-title" id="preview-modal-title">Preview</h3>
467
474
  <div style="display:flex;gap:4px;align-items:center;">
468
475
  <button id="preview-pane-btn" class="icon-btn" aria-label="Open in a pane" title="Open in a pane" onclick="openPreviewInPane()">
469
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M3 9h18M9 4v5"/></svg>
476
+ <svg fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><use href="#icon-pane"/></svg>
470
477
  </button>
471
478
  <button id="preview-link-btn" class="icon-btn" aria-label="Link to current session" title="Link to current session" onclick="togglePreviewSessionLink()">
472
479
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg>
@@ -593,6 +600,9 @@
593
600
  <div class="modal-header">
594
601
  <h3 id="plan-modal-title" class="modal-title">Plan</h3>
595
602
  <div style="display:flex;align-items:center;gap:4px;">
603
+ <button id="plan-pane-btn" class="icon-btn" aria-label="Open in a pane" title="Open in a pane" style="display:none" onclick="openPlanInPane()">
604
+ <svg fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><use href="#icon-pane"/></svg>
605
+ </button>
596
606
  <button class="icon-btn" aria-label="Open in editor" title="Open in editor" onclick="openPlanInEditor()">
597
607
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></svg>
598
608
  </button>
@@ -621,33 +631,6 @@
621
631
  </div>
622
632
  </div>
623
633
 
624
- <!-- Blocked Task Warning Modal -->
625
- <div id="blocked-task-modal" class="modal-overlay" onclick="closeBlockedTaskModal()">
626
- <div class="modal modal-sm" onclick="event.stopPropagation()">
627
- <div class="modal-header">
628
- <h3 class="modal-title" style="display: flex; align-items: center; gap: 8px;">
629
- <svg viewBox="0 0 24 24" fill="none" stroke="var(--danger)" stroke-width="2" style="width: 20px; height: 20px;">
630
- <circle cx="12" cy="12" r="10"/>
631
- <line x1="15" y1="9" x2="9" y2="15"/>
632
- <line x1="9" y1="9" x2="15" y2="15"/>
633
- </svg>
634
- Cannot Start Blocked Task
635
- </h3>
636
- <button class="modal-close" aria-label="Close dialog" onclick="closeBlockedTaskModal()">
637
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
638
- <path d="M18 6L6 18M6 6l12 12"/>
639
- </svg>
640
- </button>
641
- </div>
642
- <div class="modal-body">
643
- <div id="blocked-task-message" style="color: var(--text-primary); line-height: 1.6;"></div>
644
- </div>
645
- <div class="modal-footer">
646
- <button class="btn btn-secondary" onclick="closeBlockedTaskModal()">OK</button>
647
- </div>
648
- </div>
649
- </div>
650
-
651
634
  <!-- Loop Wakeups Modal -->
652
635
  <div id="loop-modal" class="modal-overlay" onclick="closeLoopModal()">
653
636
  <div class="modal plan-modal" onclick="event.stopPropagation()">