claude-code-kanban 4.27.0 → 4.28.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.
- package/README.md +72 -44
- package/cli.js +235 -7
- package/lib/claude-dir.js +1 -1
- package/lib/dispatch-groups.js +93 -0
- package/lib/dispatch.js +171 -0
- package/lib/folder-dialog.js +91 -0
- package/lib/net-guard.js +20 -3
- package/lib/session-events.js +22 -2
- package/lib/terminal.js +555 -0
- package/package.json +14 -3
- package/plugin/plugins/claude-code-kanban/.claude-plugin/plugin.json +1 -1
- package/plugin/plugins/claude-code-kanban/monitors.json +6 -0
- package/plugin/plugins/claude-code-kanban/scripts/approval-gate.sh +34 -2
- package/plugin/plugins/claude-code-kanban/scripts/postman.js +7 -2
- package/plugin/plugins/claude-code-kanban/skills/kanban-dispatch/SKILL.md +23 -0
- package/public/app.js +1761 -138
- package/public/index.html +150 -14
- package/public/style.css +772 -53
- package/public/sw.js +2 -1
- package/public/themes.css +84 -80
- package/server.js +240 -18
- package/skill-guides/dispatch.md +72 -0
package/public/sw.js
CHANGED
|
@@ -45,7 +45,8 @@ self.addEventListener('fetch', (event) => {
|
|
|
45
45
|
event.respondWith(
|
|
46
46
|
fetch(event.request)
|
|
47
47
|
.then(r => cacheResponse(event.request, r))
|
|
48
|
-
|
|
48
|
+
// respondWith(undefined) throws, so a miss while the server is down must still be a Response.
|
|
49
|
+
.catch(() => caches.match(event.request).then(cached => cached || Response.error()))
|
|
49
50
|
);
|
|
50
51
|
return;
|
|
51
52
|
}
|
package/public/themes.css
CHANGED
|
@@ -11,18 +11,18 @@ body.light .theme-swatch-gruvbox { --sw-bg: #f3eee0; --sw-accent: #d65d0e; --sw-
|
|
|
11
11
|
body.light .theme-swatch-catppuccin { --sw-bg: #eff1f5; --sw-accent: #8839ef; --sw-ink: #4c4f69; --sw-border: #bcc0cc; }
|
|
12
12
|
.theme-swatch-tokyo-night { --sw-bg: #1a1b26; --sw-accent: #7aa2f7; --sw-ink: #c0caf5; --sw-border: #3b4261; }
|
|
13
13
|
body.light .theme-swatch-tokyo-night { --sw-bg: #e9eaf0; --sw-accent: #2e7de9; --sw-ink: #343b58; --sw-border: #a8aecb; }
|
|
14
|
-
.theme-swatch-solarized { --sw-bg: #073642; --sw-accent: #
|
|
15
|
-
body.light .theme-swatch-solarized { --sw-bg: #
|
|
14
|
+
.theme-swatch-solarized { --sw-bg: #073642; --sw-accent: #c96f47; --sw-ink: #e2dfd0; --sw-border: #586e75; }
|
|
15
|
+
body.light .theme-swatch-solarized { --sw-bg: #fdf6e3; --sw-accent: #2280c2; --sw-ink: #073642; --sw-border: #cdc4ab; }
|
|
16
16
|
.theme-swatch-dracula { --sw-bg: #282a36; --sw-accent: #bd93f9; --sw-ink: #f8f8f2; --sw-border: #565a75; }
|
|
17
17
|
body.light .theme-swatch-dracula { --sw-bg: #f0f0f5; --sw-accent: #7c3aed; --sw-ink: #16161e; --sw-border: #c9c9d6; }
|
|
18
18
|
.theme-swatch-nord { --sw-bg: #2e3440; --sw-accent: #88c0d0; --sw-ink: #eceff4; --sw-border: #4c566a; }
|
|
19
19
|
body.light .theme-swatch-nord { --sw-bg: #eceff4; --sw-accent: #5e81ac; --sw-ink: #2e3440; --sw-border: #c2c9d6; }
|
|
20
20
|
.theme-swatch-rose-pine { --sw-bg: #1f1d2e; --sw-accent: #c4a7e7; --sw-ink: #e0def4; --sw-border: #403d52; }
|
|
21
|
-
body.light .theme-swatch-rose-pine { --sw-bg: #faf4ed; --sw-accent: #907aa9; --sw-ink: #575279; --sw-border: #
|
|
21
|
+
body.light .theme-swatch-rose-pine { --sw-bg: #faf4ed; --sw-accent: #907aa9; --sw-ink: #575279; --sw-border: #cecacd; }
|
|
22
22
|
.theme-swatch-everforest { --sw-bg: #2d353b; --sw-accent: #a7c080; --sw-ink: #d3c6aa; --sw-border: #475258; }
|
|
23
|
-
body.light .theme-swatch-everforest { --sw-bg: #
|
|
23
|
+
body.light .theme-swatch-everforest { --sw-bg: #f5f4e8; --sw-accent: #6f8352; --sw-ink: #3d484e; --sw-border: #d3d2bf; }
|
|
24
24
|
.theme-swatch-kanagawa { --sw-bg: #1f1f28; --sw-accent: #7e9cd8; --sw-ink: #dcd7ba; --sw-border: #54546d; }
|
|
25
|
-
body.light .theme-swatch-kanagawa { --sw-bg: #
|
|
25
|
+
body.light .theme-swatch-kanagawa { --sw-bg: #f3f0e4; --sw-accent: #4d699b; --sw-ink: #545464; --sw-border: #d2ccb6; }
|
|
26
26
|
.theme-swatch-one-dark { --sw-bg: #282c34; --sw-accent: #61afef; --sw-ink: #d7dae0; --sw-border: #4b5263; }
|
|
27
27
|
body.light .theme-swatch-one-dark { --sw-bg: #fafafa; --sw-accent: #4078f2; --sw-ink: #383a42; --sw-border: #d4d4d6; }
|
|
28
28
|
.theme-swatch-night-owl { --sw-bg: #0b2942; --sw-accent: #82aaff; --sw-ink: #d6deeb; --sw-border: #5f7e97; }
|
|
@@ -32,7 +32,7 @@ body.light .theme-swatch-monokai { --sw-bg: #f1efed; --sw-accent: #c08a00; --sw-
|
|
|
32
32
|
.theme-swatch-github { --sw-bg: #24292e; --sw-accent: #58a6ff; --sw-ink: #e1e4e8; --sw-border: #444d56; }
|
|
33
33
|
body.light .theme-swatch-github { --sw-bg: #f6f8fa; --sw-accent: #0366d6; --sw-ink: #24292e; --sw-border: #d1d5da; }
|
|
34
34
|
.theme-swatch-ayu { --sw-bg: #10141c; --sw-accent: #e6b450; --sw-ink: #bfbdb6; --sw-border: #2d3343; }
|
|
35
|
-
body.light .theme-swatch-ayu { --sw-bg: #f8f9fa; --sw-accent: #
|
|
35
|
+
body.light .theme-swatch-ayu { --sw-bg: #f8f9fa; --sw-accent: #c97612; --sw-ink: #3d4149; --sw-border: #d8dde2; }
|
|
36
36
|
.theme-swatch-vitesse { --sw-bg: #181818; --sw-accent: #4d9375; --sw-ink: #dbd7ca; --sw-border: #333333; }
|
|
37
37
|
body.light .theme-swatch-vitesse { --sw-bg: #f7f7f7; --sw-accent: #1c6b48; --sw-ink: #393a34; --sw-border: #d6d6d6; }
|
|
38
38
|
.theme-swatch-synthwave { --sw-bg: #262335; --sw-accent: #ff7edb; --sw-ink: #ffffff; --sw-border: #495495; }
|
|
@@ -187,50 +187,54 @@ body:not(.dark-forced)[data-color-theme="tokyo-night"] {
|
|
|
187
187
|
|
|
188
188
|
/* Solarized */
|
|
189
189
|
body[data-color-theme="solarized"]:not(.light) {
|
|
190
|
-
--accent: #
|
|
191
|
-
--accent-text: #
|
|
192
|
-
--accent-dim: rgba(
|
|
193
|
-
--accent-glow: rgba(
|
|
190
|
+
--accent: #c96f47;
|
|
191
|
+
--accent-text: #d48a6a;
|
|
192
|
+
--accent-dim: rgba(201,111,71,0.25);
|
|
193
|
+
--accent-glow: rgba(201, 111, 71, 0.55);
|
|
194
194
|
--bg-deep: #002b36;
|
|
195
195
|
--bg-surface: #073642;
|
|
196
196
|
--bg-elevated: #0a4250;
|
|
197
197
|
--bg-hover: #11505f;
|
|
198
198
|
--border: #586e75;
|
|
199
|
-
--text-primary: #
|
|
200
|
-
--text-secondary: #
|
|
201
|
-
--text-tertiary: #
|
|
202
|
-
--text-muted: #
|
|
199
|
+
--text-primary: #e2dfd0;
|
|
200
|
+
--text-secondary: #b7c0bf;
|
|
201
|
+
--text-tertiary: #93a1a1;
|
|
202
|
+
--text-muted: #839496;
|
|
203
203
|
}
|
|
204
204
|
body.light[data-color-theme="solarized"] {
|
|
205
|
-
--accent: #
|
|
206
|
-
--accent-text: #
|
|
207
|
-
--accent-dim: rgba(
|
|
208
|
-
--accent-glow: rgba(
|
|
205
|
+
--accent: #2280c2;
|
|
206
|
+
--accent-text: #1b6aa3;
|
|
207
|
+
--accent-dim: rgba(34,128,194,0.18);
|
|
208
|
+
--accent-glow: rgba(34, 128, 194, 0.5);
|
|
209
209
|
--bg-deep: #eee8d5;
|
|
210
|
-
--bg-surface: #
|
|
211
|
-
--bg-elevated: #
|
|
212
|
-
--bg-hover: #
|
|
213
|
-
--border: #
|
|
210
|
+
--bg-surface: #fdf6e3;
|
|
211
|
+
--bg-elevated: #fffbef;
|
|
212
|
+
--bg-hover: #efe8d3;
|
|
213
|
+
--border: #cdc4ab;
|
|
214
214
|
--text-primary: #073642;
|
|
215
|
-
--text-secondary: #
|
|
216
|
-
--text-tertiary: #
|
|
217
|
-
--text-muted: #
|
|
215
|
+
--text-secondary: #4f6369;
|
|
216
|
+
--text-tertiary: #586e75;
|
|
217
|
+
--text-muted: #728589;
|
|
218
|
+
--sidebar-bg: #e6dfc7;
|
|
219
|
+
--sidebar-item-bg: #f3ecd6;
|
|
218
220
|
}
|
|
219
221
|
@media (prefers-color-scheme: light) {
|
|
220
222
|
body:not(.dark-forced)[data-color-theme="solarized"] {
|
|
221
|
-
--accent: #
|
|
222
|
-
--accent-text: #
|
|
223
|
-
--accent-dim: rgba(
|
|
224
|
-
--accent-glow: rgba(
|
|
223
|
+
--accent: #2280c2;
|
|
224
|
+
--accent-text: #1b6aa3;
|
|
225
|
+
--accent-dim: rgba(34,128,194,0.18);
|
|
226
|
+
--accent-glow: rgba(34, 128, 194, 0.5);
|
|
225
227
|
--bg-deep: #eee8d5;
|
|
226
|
-
--bg-surface: #
|
|
227
|
-
--bg-elevated: #
|
|
228
|
-
--bg-hover: #
|
|
229
|
-
--border: #
|
|
228
|
+
--bg-surface: #fdf6e3;
|
|
229
|
+
--bg-elevated: #fffbef;
|
|
230
|
+
--bg-hover: #efe8d3;
|
|
231
|
+
--border: #cdc4ab;
|
|
230
232
|
--text-primary: #073642;
|
|
231
|
-
--text-secondary: #
|
|
232
|
-
--text-tertiary: #
|
|
233
|
-
--text-muted: #
|
|
233
|
+
--text-secondary: #4f6369;
|
|
234
|
+
--text-tertiary: #586e75;
|
|
235
|
+
--text-muted: #728589;
|
|
236
|
+
--sidebar-bg: #e6dfc7;
|
|
237
|
+
--sidebar-item-bg: #f3ecd6;
|
|
234
238
|
}
|
|
235
239
|
}
|
|
236
240
|
|
|
@@ -357,11 +361,11 @@ body.light[data-color-theme="rose-pine"] {
|
|
|
357
361
|
--bg-surface: #faf4ed;
|
|
358
362
|
--bg-elevated: #fffaf3;
|
|
359
363
|
--bg-hover: #ebdfd4;
|
|
360
|
-
--border: #
|
|
364
|
+
--border: #cecacd;
|
|
361
365
|
--text-primary: #575279;
|
|
362
366
|
--text-secondary: #635e87;
|
|
363
|
-
--text-tertiary: #
|
|
364
|
-
--text-muted: #
|
|
367
|
+
--text-tertiary: #6e6a88;
|
|
368
|
+
--text-muted: #857f96;
|
|
365
369
|
}
|
|
366
370
|
@media (prefers-color-scheme: light) {
|
|
367
371
|
body:not(.dark-forced)[data-color-theme="rose-pine"] {
|
|
@@ -373,11 +377,11 @@ body:not(.dark-forced)[data-color-theme="rose-pine"] {
|
|
|
373
377
|
--bg-surface: #faf4ed;
|
|
374
378
|
--bg-elevated: #fffaf3;
|
|
375
379
|
--bg-hover: #ebdfd4;
|
|
376
|
-
--border: #
|
|
380
|
+
--border: #cecacd;
|
|
377
381
|
--text-primary: #575279;
|
|
378
382
|
--text-secondary: #635e87;
|
|
379
|
-
--text-tertiary: #
|
|
380
|
-
--text-muted: #
|
|
383
|
+
--text-tertiary: #6e6a88;
|
|
384
|
+
--text-muted: #857f96;
|
|
381
385
|
}
|
|
382
386
|
}
|
|
383
387
|
|
|
@@ -402,15 +406,15 @@ body.light[data-color-theme="everforest"] {
|
|
|
402
406
|
--accent-text: #56683f;
|
|
403
407
|
--accent-dim: rgba(111,131,82,0.18);
|
|
404
408
|
--accent-glow: rgba(111, 131, 82, 0.5);
|
|
405
|
-
--bg-deep: #
|
|
406
|
-
--bg-surface: #
|
|
407
|
-
--bg-elevated: #
|
|
408
|
-
--bg-hover: #
|
|
409
|
-
--border: #
|
|
410
|
-
--text-primary: #
|
|
411
|
-
--text-secondary: #
|
|
412
|
-
--text-tertiary: #
|
|
413
|
-
--text-muted: #
|
|
409
|
+
--bg-deep: #ebeadb;
|
|
410
|
+
--bg-surface: #f5f4e8;
|
|
411
|
+
--bg-elevated: #fbfbf4;
|
|
412
|
+
--bg-hover: #e5e4d3;
|
|
413
|
+
--border: #d3d2bf;
|
|
414
|
+
--text-primary: #3d484e;
|
|
415
|
+
--text-secondary: #55636b;
|
|
416
|
+
--text-tertiary: #66705f;
|
|
417
|
+
--text-muted: #7a8577;
|
|
414
418
|
}
|
|
415
419
|
@media (prefers-color-scheme: light) {
|
|
416
420
|
body:not(.dark-forced)[data-color-theme="everforest"] {
|
|
@@ -418,15 +422,15 @@ body:not(.dark-forced)[data-color-theme="everforest"] {
|
|
|
418
422
|
--accent-text: #56683f;
|
|
419
423
|
--accent-dim: rgba(111,131,82,0.18);
|
|
420
424
|
--accent-glow: rgba(111, 131, 82, 0.5);
|
|
421
|
-
--bg-deep: #
|
|
422
|
-
--bg-surface: #
|
|
423
|
-
--bg-elevated: #
|
|
424
|
-
--bg-hover: #
|
|
425
|
-
--border: #
|
|
426
|
-
--text-primary: #
|
|
427
|
-
--text-secondary: #
|
|
428
|
-
--text-tertiary: #
|
|
429
|
-
--text-muted: #
|
|
425
|
+
--bg-deep: #ebeadb;
|
|
426
|
+
--bg-surface: #f5f4e8;
|
|
427
|
+
--bg-elevated: #fbfbf4;
|
|
428
|
+
--bg-hover: #e5e4d3;
|
|
429
|
+
--border: #d3d2bf;
|
|
430
|
+
--text-primary: #3d484e;
|
|
431
|
+
--text-secondary: #55636b;
|
|
432
|
+
--text-tertiary: #66705f;
|
|
433
|
+
--text-muted: #7a8577;
|
|
430
434
|
}
|
|
431
435
|
}
|
|
432
436
|
|
|
@@ -451,11 +455,11 @@ body.light[data-color-theme="kanagawa"] {
|
|
|
451
455
|
--accent-text: #38537f;
|
|
452
456
|
--accent-dim: rgba(77,105,155,0.18);
|
|
453
457
|
--accent-glow: rgba(77, 105, 155, 0.5);
|
|
454
|
-
--bg-deep: #
|
|
455
|
-
--bg-surface: #
|
|
456
|
-
--bg-elevated: #
|
|
457
|
-
--bg-hover: #
|
|
458
|
-
--border: #
|
|
458
|
+
--bg-deep: #e9e5d6;
|
|
459
|
+
--bg-surface: #f3f0e4;
|
|
460
|
+
--bg-elevated: #faf8f1;
|
|
461
|
+
--bg-hover: #e2ddcb;
|
|
462
|
+
--border: #d2ccb6;
|
|
459
463
|
--text-primary: #545464;
|
|
460
464
|
--text-secondary: #66667a;
|
|
461
465
|
--text-tertiary: #716e61;
|
|
@@ -467,11 +471,11 @@ body:not(.dark-forced)[data-color-theme="kanagawa"] {
|
|
|
467
471
|
--accent-text: #38537f;
|
|
468
472
|
--accent-dim: rgba(77,105,155,0.18);
|
|
469
473
|
--accent-glow: rgba(77, 105, 155, 0.5);
|
|
470
|
-
--bg-deep: #
|
|
471
|
-
--bg-surface: #
|
|
472
|
-
--bg-elevated: #
|
|
473
|
-
--bg-hover: #
|
|
474
|
-
--border: #
|
|
474
|
+
--bg-deep: #e9e5d6;
|
|
475
|
+
--bg-surface: #f3f0e4;
|
|
476
|
+
--bg-elevated: #faf8f1;
|
|
477
|
+
--bg-hover: #e2ddcb;
|
|
478
|
+
--border: #d2ccb6;
|
|
475
479
|
--text-primary: #545464;
|
|
476
480
|
--text-secondary: #66667a;
|
|
477
481
|
--text-tertiary: #716e61;
|
|
@@ -595,7 +599,7 @@ body[data-color-theme="monokai"]:not(.light) {
|
|
|
595
599
|
}
|
|
596
600
|
body.light[data-color-theme="monokai"] {
|
|
597
601
|
--accent: #c08a00;
|
|
598
|
-
--accent-text: #
|
|
602
|
+
--accent-text: #856000;
|
|
599
603
|
--accent-dim: rgba(192,138,0,0.18);
|
|
600
604
|
--accent-glow: rgba(192, 138, 0, 0.5);
|
|
601
605
|
--bg-deep: #e9e6e4;
|
|
@@ -611,7 +615,7 @@ body.light[data-color-theme="monokai"] {
|
|
|
611
615
|
@media (prefers-color-scheme: light) {
|
|
612
616
|
body:not(.dark-forced)[data-color-theme="monokai"] {
|
|
613
617
|
--accent: #c08a00;
|
|
614
|
-
--accent-text: #
|
|
618
|
+
--accent-text: #856000;
|
|
615
619
|
--accent-dim: rgba(192,138,0,0.18);
|
|
616
620
|
--accent-glow: rgba(192, 138, 0, 0.5);
|
|
617
621
|
--bg-deep: #e9e6e4;
|
|
@@ -692,10 +696,10 @@ body[data-color-theme="ayu"]:not(.light) {
|
|
|
692
696
|
--text-muted: #6c7380;
|
|
693
697
|
}
|
|
694
698
|
body.light[data-color-theme="ayu"] {
|
|
695
|
-
--accent: #
|
|
696
|
-
--accent-text: #
|
|
697
|
-
--accent-dim: rgba(
|
|
698
|
-
--accent-glow: rgba(
|
|
699
|
+
--accent: #c97612;
|
|
700
|
+
--accent-text: #a65e0c;
|
|
701
|
+
--accent-dim: rgba(201,118,18,0.18);
|
|
702
|
+
--accent-glow: rgba(201, 118, 18, 0.5);
|
|
699
703
|
--bg-deep: #eff1f3;
|
|
700
704
|
--bg-surface: #f8f9fa;
|
|
701
705
|
--bg-elevated: #fcfcfc;
|
|
@@ -708,10 +712,10 @@ body.light[data-color-theme="ayu"] {
|
|
|
708
712
|
}
|
|
709
713
|
@media (prefers-color-scheme: light) {
|
|
710
714
|
body:not(.dark-forced)[data-color-theme="ayu"] {
|
|
711
|
-
--accent: #
|
|
712
|
-
--accent-text: #
|
|
713
|
-
--accent-dim: rgba(
|
|
714
|
-
--accent-glow: rgba(
|
|
715
|
+
--accent: #c97612;
|
|
716
|
+
--accent-text: #a65e0c;
|
|
717
|
+
--accent-dim: rgba(201,118,18,0.18);
|
|
718
|
+
--accent-glow: rgba(201, 118, 18, 0.5);
|
|
715
719
|
--bg-deep: #eff1f3;
|
|
716
720
|
--bg-surface: #f8f9fa;
|
|
717
721
|
--bg-elevated: #fcfcfc;
|