claude-code-kanban 7.20.0 → 7.21.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/lib/parent-cache.js +5 -1
- package/package.json +1 -1
- package/public/app.js +74 -39
- package/public/index.html +3 -3
- package/public/style.css +145 -69
- package/public/themes.css +93 -93
- package/server.js +6 -5
package/public/style.css
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
--text-primary: #f0f1f3;
|
|
14
14
|
--text-secondary: #c2c4c9;
|
|
15
15
|
--text-tertiary: #9a9da5;
|
|
16
|
-
--text-muted: #
|
|
16
|
+
--text-muted: #868994;
|
|
17
17
|
--accent: #e86f33;
|
|
18
18
|
--accent-text: #f0a070;
|
|
19
19
|
--accent-dim: rgba(232, 111, 51, 0.25);
|
|
@@ -290,11 +290,11 @@ body::before {
|
|
|
290
290
|
padding: 4px 10px;
|
|
291
291
|
font: inherit;
|
|
292
292
|
font-size: 11px;
|
|
293
|
-
font-weight:
|
|
293
|
+
font-weight: 600;
|
|
294
294
|
letter-spacing: 0.04em;
|
|
295
|
-
color: var(--text
|
|
295
|
+
color: var(--accent-text);
|
|
296
296
|
background: transparent;
|
|
297
|
-
border: 1px
|
|
297
|
+
border: 1px solid var(--accent-text);
|
|
298
298
|
border-radius: 999px;
|
|
299
299
|
white-space: nowrap;
|
|
300
300
|
cursor: pointer;
|
|
@@ -1097,7 +1097,7 @@ body.booting .boot-splash {
|
|
|
1097
1097
|
}
|
|
1098
1098
|
|
|
1099
1099
|
.session-item.warm .session-time {
|
|
1100
|
-
color: var(--success);
|
|
1100
|
+
color: color-mix(in srgb, var(--success) 70%, var(--text-primary));
|
|
1101
1101
|
}
|
|
1102
1102
|
|
|
1103
1103
|
.session-item.warm .session-time::before {
|
|
@@ -1134,13 +1134,14 @@ body.booting .boot-splash {
|
|
|
1134
1134
|
background: var(--warning);
|
|
1135
1135
|
}
|
|
1136
1136
|
|
|
1137
|
+
/* Stale rows render at 0.85 opacity, which takes --text-muted below 4.5:1. */
|
|
1137
1138
|
.session-item.stale .session-time {
|
|
1138
|
-
color: var(--text-
|
|
1139
|
+
color: var(--text-tertiary);
|
|
1139
1140
|
}
|
|
1140
1141
|
|
|
1141
1142
|
.session-item.stale .session-time::before {
|
|
1142
1143
|
background: transparent;
|
|
1143
|
-
border: 1px solid var(--text-
|
|
1144
|
+
border: 1px solid var(--text-tertiary);
|
|
1144
1145
|
}
|
|
1145
1146
|
|
|
1146
1147
|
.session-name {
|
|
@@ -1221,6 +1222,9 @@ body.booting .boot-splash {
|
|
|
1221
1222
|
}
|
|
1222
1223
|
|
|
1223
1224
|
.session-secondary {
|
|
1225
|
+
display: flex;
|
|
1226
|
+
align-items: baseline;
|
|
1227
|
+
gap: 5px;
|
|
1224
1228
|
font-family: var(--sans);
|
|
1225
1229
|
font-size: 12px;
|
|
1226
1230
|
font-weight: 450;
|
|
@@ -1230,12 +1234,20 @@ body.booting .boot-splash {
|
|
|
1230
1234
|
overflow: hidden;
|
|
1231
1235
|
}
|
|
1232
1236
|
|
|
1237
|
+
.session-project {
|
|
1238
|
+
flex: none;
|
|
1239
|
+
max-width: 60%;
|
|
1240
|
+
overflow: hidden;
|
|
1241
|
+
text-overflow: ellipsis;
|
|
1242
|
+
}
|
|
1243
|
+
|
|
1233
1244
|
/* inline-block, not inline-flex: a flex box ignores text-overflow, so a long worktree name
|
|
1234
1245
|
ran past the card edge instead of truncating. */
|
|
1235
1246
|
.wt-chip {
|
|
1236
1247
|
display: inline-block;
|
|
1248
|
+
flex: 0 1 auto;
|
|
1249
|
+
align-self: center;
|
|
1237
1250
|
max-width: 60%;
|
|
1238
|
-
margin-left: 5px;
|
|
1239
1251
|
padding: 0 5px;
|
|
1240
1252
|
border: 1px solid var(--accent-dim);
|
|
1241
1253
|
border-radius: 999px;
|
|
@@ -1244,17 +1256,15 @@ body.booting .boot-splash {
|
|
|
1244
1256
|
font-family: var(--mono);
|
|
1245
1257
|
font-size: 9px;
|
|
1246
1258
|
line-height: 14px;
|
|
1247
|
-
vertical-align: middle;
|
|
1248
1259
|
white-space: nowrap;
|
|
1249
1260
|
overflow: hidden;
|
|
1250
1261
|
text-overflow: ellipsis;
|
|
1251
1262
|
}
|
|
1252
1263
|
|
|
1253
1264
|
.session-branch {
|
|
1265
|
+
min-width: 0;
|
|
1254
1266
|
font-size: 10px;
|
|
1255
1267
|
color: var(--text-secondary);
|
|
1256
|
-
margin-top: var(--card-gap-tight);
|
|
1257
|
-
display: block;
|
|
1258
1268
|
font-family: var(--mono);
|
|
1259
1269
|
white-space: nowrap;
|
|
1260
1270
|
overflow: hidden;
|
|
@@ -1333,7 +1343,7 @@ body.booting .boot-splash {
|
|
|
1333
1343
|
justify-content: space-between;
|
|
1334
1344
|
gap: 6px;
|
|
1335
1345
|
margin-top: 4px;
|
|
1336
|
-
font-size:
|
|
1346
|
+
font-size: 11px;
|
|
1337
1347
|
font-family: var(--font-mono);
|
|
1338
1348
|
color: var(--text-tertiary);
|
|
1339
1349
|
white-space: nowrap;
|
|
@@ -1936,7 +1946,7 @@ body.booting .boot-splash {
|
|
|
1936
1946
|
.view-progress .progress-text {
|
|
1937
1947
|
font-size: 14px;
|
|
1938
1948
|
font-weight: 500;
|
|
1939
|
-
color: var(--accent);
|
|
1949
|
+
color: var(--accent-text);
|
|
1940
1950
|
}
|
|
1941
1951
|
|
|
1942
1952
|
.icon-btn {
|
|
@@ -2111,7 +2121,7 @@ body.booting .boot-splash {
|
|
|
2111
2121
|
color: var(--text-tertiary);
|
|
2112
2122
|
}
|
|
2113
2123
|
.column-title.in-progress {
|
|
2114
|
-
color: var(--accent);
|
|
2124
|
+
color: var(--accent-text);
|
|
2115
2125
|
}
|
|
2116
2126
|
.column-title.completed {
|
|
2117
2127
|
color: var(--success);
|
|
@@ -2131,7 +2141,7 @@ body.booting .boot-splash {
|
|
|
2131
2141
|
|
|
2132
2142
|
.column-count.in-progress {
|
|
2133
2143
|
background: var(--accent-dim);
|
|
2134
|
-
color: var(--accent);
|
|
2144
|
+
color: var(--accent-text);
|
|
2135
2145
|
}
|
|
2136
2146
|
|
|
2137
2147
|
.column-count.completed {
|
|
@@ -2242,7 +2252,6 @@ body.booting .boot-splash {
|
|
|
2242
2252
|
}
|
|
2243
2253
|
|
|
2244
2254
|
.task-card.completed {
|
|
2245
|
-
opacity: 0.85;
|
|
2246
2255
|
border-left: 2px solid var(--success);
|
|
2247
2256
|
}
|
|
2248
2257
|
|
|
@@ -2313,7 +2322,7 @@ body.booting .boot-splash {
|
|
|
2313
2322
|
border-top: 1px solid var(--border);
|
|
2314
2323
|
font-size: 11px;
|
|
2315
2324
|
font-weight: 500;
|
|
2316
|
-
color: var(--accent);
|
|
2325
|
+
color: var(--accent-text);
|
|
2317
2326
|
}
|
|
2318
2327
|
|
|
2319
2328
|
.task-active::before {
|
|
@@ -2343,7 +2352,7 @@ body.booting .boot-splash {
|
|
|
2343
2352
|
}
|
|
2344
2353
|
|
|
2345
2354
|
.task-chip-accent {
|
|
2346
|
-
color: var(--accent);
|
|
2355
|
+
color: var(--accent-text);
|
|
2347
2356
|
}
|
|
2348
2357
|
|
|
2349
2358
|
.task-desc {
|
|
@@ -2554,7 +2563,7 @@ body.booting .boot-splash {
|
|
|
2554
2563
|
|
|
2555
2564
|
.detail-status.in_progress {
|
|
2556
2565
|
background: var(--accent-dim);
|
|
2557
|
-
color: var(--accent);
|
|
2566
|
+
color: var(--accent-text);
|
|
2558
2567
|
border: 1px solid var(--accent);
|
|
2559
2568
|
}
|
|
2560
2569
|
|
|
@@ -2596,7 +2605,7 @@ body.booting .boot-splash {
|
|
|
2596
2605
|
}
|
|
2597
2606
|
|
|
2598
2607
|
.detail-box.active strong {
|
|
2599
|
-
color: var(--accent);
|
|
2608
|
+
color: var(--accent-text);
|
|
2600
2609
|
}
|
|
2601
2610
|
|
|
2602
2611
|
.detail-desc {
|
|
@@ -2944,7 +2953,7 @@ code.ct .ct-has[aria-expanded='false'] .ct-name::after {
|
|
|
2944
2953
|
font-weight: 600;
|
|
2945
2954
|
text-transform: uppercase;
|
|
2946
2955
|
letter-spacing: 0.05em;
|
|
2947
|
-
color: var(--accent);
|
|
2956
|
+
color: var(--accent-text);
|
|
2948
2957
|
margin: 0 0 8px 0;
|
|
2949
2958
|
}
|
|
2950
2959
|
|
|
@@ -2994,7 +3003,7 @@ code.ct .ct-has[aria-expanded='false'] .ct-name::after {
|
|
|
2994
3003
|
.shared-tasklist-badge {
|
|
2995
3004
|
display: inline-flex;
|
|
2996
3005
|
align-items: center;
|
|
2997
|
-
color: var(--accent);
|
|
3006
|
+
color: var(--accent-text);
|
|
2998
3007
|
flex-shrink: 0;
|
|
2999
3008
|
}
|
|
3000
3009
|
|
|
@@ -3006,6 +3015,7 @@ code.ct .ct-has[aria-expanded='false'] .ct-name::after {
|
|
|
3006
3015
|
.loop-badge,
|
|
3007
3016
|
.workflow-badge,
|
|
3008
3017
|
.dispatched-badge,
|
|
3018
|
+
.fork-badge,
|
|
3009
3019
|
.terminal-badge {
|
|
3010
3020
|
width: 18px;
|
|
3011
3021
|
height: 18px;
|
|
@@ -3021,6 +3031,17 @@ code.ct .ct-has[aria-expanded='false'] .ct-name::after {
|
|
|
3021
3031
|
transition: all 0.15s ease;
|
|
3022
3032
|
}
|
|
3023
3033
|
|
|
3034
|
+
/* A 22×24px hit area around each 18px icon without growing the card. The 5px row gap
|
|
3035
|
+
keeps neighbouring areas from overlapping. */
|
|
3036
|
+
.session-indicators > [onclick] {
|
|
3037
|
+
position: relative;
|
|
3038
|
+
}
|
|
3039
|
+
.session-indicators > [onclick]::after {
|
|
3040
|
+
content: '';
|
|
3041
|
+
position: absolute;
|
|
3042
|
+
inset: -3px -2px;
|
|
3043
|
+
}
|
|
3044
|
+
|
|
3024
3045
|
.team-info-btn:hover,
|
|
3025
3046
|
.loop-badge:hover,
|
|
3026
3047
|
.workflow-badge:hover {
|
|
@@ -3440,7 +3461,7 @@ code.ct .ct-has[aria-expanded='false'] .ct-name::after {
|
|
|
3440
3461
|
|
|
3441
3462
|
.team-member-card .member-tasks {
|
|
3442
3463
|
font-size: 11px;
|
|
3443
|
-
color: var(--accent);
|
|
3464
|
+
color: var(--accent-text);
|
|
3444
3465
|
margin-top: 4px;
|
|
3445
3466
|
}
|
|
3446
3467
|
|
|
@@ -3458,6 +3479,18 @@ code.ct .ct-has[aria-expanded='false'] .ct-name::after {
|
|
|
3458
3479
|
min-height: 0;
|
|
3459
3480
|
padding-right: 8px;
|
|
3460
3481
|
}
|
|
3482
|
+
/* Scroll shadows: the covers scroll with the content (local), the shadows stay at the edges,
|
|
3483
|
+
so a shadow shows only while more content is above or below. */
|
|
3484
|
+
.modal-help .modal-body {
|
|
3485
|
+
padding-bottom: 16px;
|
|
3486
|
+
--scroll-shadow: color-mix(in srgb, var(--text-primary) 30%, transparent);
|
|
3487
|
+
background:
|
|
3488
|
+
linear-gradient(var(--bg-surface) 30%, transparent) center top / 100% 40px no-repeat local,
|
|
3489
|
+
linear-gradient(transparent, var(--bg-surface) 70%) center bottom / 100% 40px no-repeat local,
|
|
3490
|
+
radial-gradient(farthest-side at 50% 0, var(--scroll-shadow), transparent) center top / 100% 18px no-repeat scroll,
|
|
3491
|
+
radial-gradient(farthest-side at 50% 100%, var(--scroll-shadow), transparent) center bottom / 100% 18px no-repeat
|
|
3492
|
+
scroll;
|
|
3493
|
+
}
|
|
3461
3494
|
#team-modal .modal-footer {
|
|
3462
3495
|
flex-shrink: 0;
|
|
3463
3496
|
}
|
|
@@ -3532,6 +3565,10 @@ code.ct .ct-has[aria-expanded='false'] .ct-name::after {
|
|
|
3532
3565
|
border-top: 1px solid var(--border);
|
|
3533
3566
|
}
|
|
3534
3567
|
|
|
3568
|
+
.team-modal-meta:first-child {
|
|
3569
|
+
margin-top: 0;
|
|
3570
|
+
}
|
|
3571
|
+
|
|
3535
3572
|
.info-grid {
|
|
3536
3573
|
display: grid;
|
|
3537
3574
|
grid-template-columns: auto 1fr auto;
|
|
@@ -3541,10 +3578,11 @@ code.ct .ct-has[aria-expanded='false'] .ct-name::after {
|
|
|
3541
3578
|
}
|
|
3542
3579
|
/* Shared hover-reveal icon-button group, also used by the linked-doc rows. Each host
|
|
3543
3580
|
supplies its own reveal trigger — the base only sets the resting opacity. */
|
|
3581
|
+
/* 0.55 is the lowest opacity that keeps the icons at 3:1 in light and dark. */
|
|
3544
3582
|
.row-actions {
|
|
3545
3583
|
display: flex;
|
|
3546
3584
|
gap: 4px;
|
|
3547
|
-
opacity: 0.
|
|
3585
|
+
opacity: 0.55;
|
|
3548
3586
|
transition: opacity 0.15s ease;
|
|
3549
3587
|
}
|
|
3550
3588
|
.info-grid:hover .row-actions {
|
|
@@ -4286,7 +4324,7 @@ body.light .show-card.focused {
|
|
|
4286
4324
|
}
|
|
4287
4325
|
|
|
4288
4326
|
.show-md a {
|
|
4289
|
-
color: var(--accent);
|
|
4327
|
+
color: var(--accent-text);
|
|
4290
4328
|
}
|
|
4291
4329
|
|
|
4292
4330
|
.show-md blockquote {
|
|
@@ -4968,7 +5006,7 @@ body.show-resizing iframe {
|
|
|
4968
5006
|
|
|
4969
5007
|
.pane-tool:disabled,
|
|
4970
5008
|
.pane-split-btn:disabled {
|
|
4971
|
-
opacity: 0.
|
|
5009
|
+
opacity: 0.55;
|
|
4972
5010
|
cursor: default;
|
|
4973
5011
|
background: none;
|
|
4974
5012
|
}
|
|
@@ -5470,6 +5508,27 @@ body.show-resizing iframe {
|
|
|
5470
5508
|
.message-panel-content > * + * {
|
|
5471
5509
|
margin-top: 8px;
|
|
5472
5510
|
}
|
|
5511
|
+
/* Under the pinned block, rows scrolled past the top fade out instead of showing as a cut row.
|
|
5512
|
+
The fade grows over the first 64px of scroll, so an unscrolled list shows its first row whole.
|
|
5513
|
+
Its top 24px are fully clear, which covers the meta line of a cut row. */
|
|
5514
|
+
@property --msg-top-fade {
|
|
5515
|
+
syntax: '<length>';
|
|
5516
|
+
inherits: false;
|
|
5517
|
+
initial-value: 0px;
|
|
5518
|
+
}
|
|
5519
|
+
@keyframes msg-top-fade {
|
|
5520
|
+
to {
|
|
5521
|
+
--msg-top-fade: 64px;
|
|
5522
|
+
}
|
|
5523
|
+
}
|
|
5524
|
+
@supports (animation-timeline: scroll()) {
|
|
5525
|
+
#message-panel-pinned:not(:empty) + .message-panel-content {
|
|
5526
|
+
mask-image: linear-gradient(to bottom, transparent calc(var(--msg-top-fade) * 0.375), #000 var(--msg-top-fade));
|
|
5527
|
+
animation: msg-top-fade linear both;
|
|
5528
|
+
animation-timeline: scroll(self);
|
|
5529
|
+
animation-range: 0 64px;
|
|
5530
|
+
}
|
|
5531
|
+
}
|
|
5473
5532
|
.msg-item {
|
|
5474
5533
|
display: flex;
|
|
5475
5534
|
gap: 8px;
|
|
@@ -5624,7 +5683,7 @@ body.show-resizing iframe {
|
|
|
5624
5683
|
font-size: 9px;
|
|
5625
5684
|
}
|
|
5626
5685
|
.msg-agent-link {
|
|
5627
|
-
color: var(--accent);
|
|
5686
|
+
color: var(--accent-text);
|
|
5628
5687
|
font-size: 0.85rem;
|
|
5629
5688
|
margin-left: 4px;
|
|
5630
5689
|
opacity: 0.7;
|
|
@@ -5669,6 +5728,10 @@ body.show-resizing iframe {
|
|
|
5669
5728
|
#message-panel-pinned {
|
|
5670
5729
|
flex-shrink: 0;
|
|
5671
5730
|
padding: 8px 16px;
|
|
5731
|
+
border-bottom: 1px solid var(--border);
|
|
5732
|
+
box-shadow: 0 4px 6px -4px color-mix(in srgb, var(--text-primary) 25%, transparent);
|
|
5733
|
+
position: relative;
|
|
5734
|
+
z-index: 1;
|
|
5672
5735
|
}
|
|
5673
5736
|
.pinned-section {
|
|
5674
5737
|
border: 1px solid color-mix(in srgb, var(--accent) 40%, transparent);
|
|
@@ -5679,7 +5742,7 @@ body.show-resizing iframe {
|
|
|
5679
5742
|
padding: 6px 10px;
|
|
5680
5743
|
font-size: 11px;
|
|
5681
5744
|
font-weight: 600;
|
|
5682
|
-
color: var(--accent);
|
|
5745
|
+
color: var(--accent-text);
|
|
5683
5746
|
cursor: pointer;
|
|
5684
5747
|
display: flex;
|
|
5685
5748
|
align-items: center;
|
|
@@ -5807,7 +5870,7 @@ body.show-resizing iframe {
|
|
|
5807
5870
|
border-bottom-color: var(--text-muted);
|
|
5808
5871
|
}
|
|
5809
5872
|
.agent-tab.active {
|
|
5810
|
-
color: var(--accent);
|
|
5873
|
+
color: var(--accent-text);
|
|
5811
5874
|
border-bottom-color: var(--accent);
|
|
5812
5875
|
}
|
|
5813
5876
|
.agent-tab-panel {
|
|
@@ -5900,7 +5963,7 @@ body.show-resizing iframe {
|
|
|
5900
5963
|
}
|
|
5901
5964
|
.toast.toast-info {
|
|
5902
5965
|
border-color: var(--accent);
|
|
5903
|
-
color: var(--accent);
|
|
5966
|
+
color: var(--accent-text);
|
|
5904
5967
|
}
|
|
5905
5968
|
.rendered-md h1,
|
|
5906
5969
|
.rendered-md h2,
|
|
@@ -5931,7 +5994,7 @@ body.show-resizing iframe {
|
|
|
5931
5994
|
list-style: none;
|
|
5932
5995
|
}
|
|
5933
5996
|
.rendered-md a {
|
|
5934
|
-
color: var(--accent);
|
|
5997
|
+
color: var(--accent-text);
|
|
5935
5998
|
}
|
|
5936
5999
|
.rendered-md pre {
|
|
5937
6000
|
margin: 0.6em 0;
|
|
@@ -6049,7 +6112,7 @@ body.show-resizing iframe {
|
|
|
6049
6112
|
.expand-toggle-btn {
|
|
6050
6113
|
background: none;
|
|
6051
6114
|
border: none;
|
|
6052
|
-
color: var(--accent);
|
|
6115
|
+
color: var(--accent-text);
|
|
6053
6116
|
cursor: pointer;
|
|
6054
6117
|
text-decoration: underline;
|
|
6055
6118
|
margin-left: 6px;
|
|
@@ -6247,12 +6310,15 @@ body.show-resizing iframe {
|
|
|
6247
6310
|
cursor: pointer;
|
|
6248
6311
|
transition: all 0.15s ease;
|
|
6249
6312
|
}
|
|
6313
|
+
/* --accent-text is tuned to 4.5:1 on --bg-surface, so the pair holds as fill and text in every theme. */
|
|
6250
6314
|
.waiting-btn-allow {
|
|
6251
|
-
color: var(--
|
|
6252
|
-
|
|
6315
|
+
color: var(--bg-surface);
|
|
6316
|
+
background: var(--accent-text);
|
|
6317
|
+
border-color: var(--accent-text);
|
|
6318
|
+
font-weight: 600;
|
|
6253
6319
|
}
|
|
6254
6320
|
.waiting-btn-allow:hover:not(:disabled) {
|
|
6255
|
-
background: color-mix(in srgb, var(--accent)
|
|
6321
|
+
background: color-mix(in srgb, var(--accent-text) 85%, var(--text-primary));
|
|
6256
6322
|
}
|
|
6257
6323
|
.waiting-btn-deny {
|
|
6258
6324
|
color: var(--text-secondary);
|
|
@@ -6287,7 +6353,7 @@ body.show-resizing iframe {
|
|
|
6287
6353
|
font-weight: 600;
|
|
6288
6354
|
text-transform: uppercase;
|
|
6289
6355
|
letter-spacing: 0.5px;
|
|
6290
|
-
color: var(--accent);
|
|
6356
|
+
color: var(--accent-text);
|
|
6291
6357
|
margin-bottom: 4px;
|
|
6292
6358
|
}
|
|
6293
6359
|
.waiting-question-text {
|
|
@@ -6447,7 +6513,7 @@ body.show-resizing iframe {
|
|
|
6447
6513
|
}
|
|
6448
6514
|
.waiting-option.selected .waiting-option-key {
|
|
6449
6515
|
border-color: var(--accent);
|
|
6450
|
-
color: var(--accent);
|
|
6516
|
+
color: var(--accent-text);
|
|
6451
6517
|
}
|
|
6452
6518
|
.waiting-qtabs {
|
|
6453
6519
|
display: flex;
|
|
@@ -6562,12 +6628,12 @@ body.show-resizing iframe {
|
|
|
6562
6628
|
.perm-wait {
|
|
6563
6629
|
font-family: var(--mono);
|
|
6564
6630
|
font-size: 11px;
|
|
6565
|
-
color: var(--text-
|
|
6631
|
+
color: var(--text-tertiary);
|
|
6566
6632
|
}
|
|
6567
6633
|
.perm-label {
|
|
6568
|
-
font-size:
|
|
6634
|
+
font-size: 11px;
|
|
6569
6635
|
letter-spacing: 0.3px;
|
|
6570
|
-
color: var(--text-
|
|
6636
|
+
color: var(--text-tertiary);
|
|
6571
6637
|
font-family: var(--mono);
|
|
6572
6638
|
word-break: break-all;
|
|
6573
6639
|
}
|
|
@@ -6589,7 +6655,7 @@ body.show-resizing iframe {
|
|
|
6589
6655
|
.perm-cwd {
|
|
6590
6656
|
font-family: var(--mono);
|
|
6591
6657
|
font-size: 11px;
|
|
6592
|
-
color: var(--text-
|
|
6658
|
+
color: var(--text-tertiary);
|
|
6593
6659
|
}
|
|
6594
6660
|
.perm-diff {
|
|
6595
6661
|
border: 1px solid var(--border);
|
|
@@ -6705,8 +6771,8 @@ body.show-resizing iframe {
|
|
|
6705
6771
|
color: var(--text-muted);
|
|
6706
6772
|
}
|
|
6707
6773
|
.msg-time {
|
|
6708
|
-
font-size:
|
|
6709
|
-
color: var(--text-
|
|
6774
|
+
font-size: 11px;
|
|
6775
|
+
color: var(--text-tertiary);
|
|
6710
6776
|
margin-top: 4px;
|
|
6711
6777
|
}
|
|
6712
6778
|
.msg-empty {
|
|
@@ -7105,13 +7171,6 @@ body.show-resizing iframe {
|
|
|
7105
7171
|
color: var(--text-primary);
|
|
7106
7172
|
}
|
|
7107
7173
|
|
|
7108
|
-
.agent-dismiss-btn {
|
|
7109
|
-
font-size: 12px;
|
|
7110
|
-
padding: 4px 10px;
|
|
7111
|
-
background: var(--bg-elevated);
|
|
7112
|
-
color: var(--text-secondary);
|
|
7113
|
-
border: 1px solid var(--border);
|
|
7114
|
-
}
|
|
7115
7174
|
.agent-badge {
|
|
7116
7175
|
display: inline-flex;
|
|
7117
7176
|
align-items: center;
|
|
@@ -7130,6 +7189,10 @@ body.show-resizing iframe {
|
|
|
7130
7189
|
.dispatched-badge:not([onclick]) {
|
|
7131
7190
|
cursor: default;
|
|
7132
7191
|
}
|
|
7192
|
+
.fork-badge {
|
|
7193
|
+
cursor: pointer;
|
|
7194
|
+
}
|
|
7195
|
+
.fork-badge:hover,
|
|
7133
7196
|
.dispatched-badge[onclick]:hover {
|
|
7134
7197
|
color: var(--accent, var(--text-primary));
|
|
7135
7198
|
}
|
|
@@ -7729,7 +7792,7 @@ body.light {
|
|
|
7729
7792
|
--text-primary: #0a0a0a;
|
|
7730
7793
|
--text-secondary: #2c2c2c;
|
|
7731
7794
|
--text-tertiary: #565656;
|
|
7732
|
-
--text-muted: #
|
|
7795
|
+
--text-muted: #666666;
|
|
7733
7796
|
--accent-text: #a0501c;
|
|
7734
7797
|
--accent-dim: rgba(184, 90, 32, 0.18);
|
|
7735
7798
|
--accent-glow: rgba(232, 111, 51, 0.5);
|
|
@@ -8248,7 +8311,7 @@ body.light .msg-assistant .msg-text {
|
|
|
8248
8311
|
}
|
|
8249
8312
|
|
|
8250
8313
|
.preview-fm .fm-k {
|
|
8251
|
-
color: var(--accent);
|
|
8314
|
+
color: var(--accent-text);
|
|
8252
8315
|
font-weight: 600;
|
|
8253
8316
|
}
|
|
8254
8317
|
|
|
@@ -8429,8 +8492,8 @@ body.light .msg-assistant .msg-text {
|
|
|
8429
8492
|
small type, and scrolls its body (rule shared with #team-modal) instead of growing past
|
|
8430
8493
|
the viewport cap. */
|
|
8431
8494
|
.modal-help {
|
|
8432
|
-
max-width:
|
|
8433
|
-
height: min(
|
|
8495
|
+
max-width: 1080px;
|
|
8496
|
+
height: min(800px, 90vh);
|
|
8434
8497
|
padding: 16px 20px 20px;
|
|
8435
8498
|
display: flex;
|
|
8436
8499
|
flex-direction: column;
|
|
@@ -8470,8 +8533,8 @@ body.light .msg-assistant .msg-text {
|
|
|
8470
8533
|
.shortcuts {
|
|
8471
8534
|
margin: 0;
|
|
8472
8535
|
display: grid;
|
|
8473
|
-
grid-template-columns:
|
|
8474
|
-
column-gap:
|
|
8536
|
+
grid-template-columns: fit-content(160px) 1fr 32px fit-content(160px) 1fr;
|
|
8537
|
+
column-gap: 16px;
|
|
8475
8538
|
}
|
|
8476
8539
|
|
|
8477
8540
|
.shortcuts dt.sc-l {
|
|
@@ -8496,6 +8559,7 @@ body.light .msg-assistant .msg-text {
|
|
|
8496
8559
|
.shortcuts dt {
|
|
8497
8560
|
margin: 0;
|
|
8498
8561
|
display: flex;
|
|
8562
|
+
flex-wrap: wrap;
|
|
8499
8563
|
align-items: center;
|
|
8500
8564
|
align-self: center;
|
|
8501
8565
|
gap: 4px;
|
|
@@ -8621,9 +8685,10 @@ body.light .msg-assistant .msg-text {
|
|
|
8621
8685
|
.modal-close {
|
|
8622
8686
|
width: 32px;
|
|
8623
8687
|
height: 32px;
|
|
8624
|
-
|
|
8688
|
+
flex-shrink: 0;
|
|
8689
|
+
border: 1px solid var(--border);
|
|
8625
8690
|
background: none;
|
|
8626
|
-
color: var(--text-
|
|
8691
|
+
color: var(--text-tertiary);
|
|
8627
8692
|
cursor: pointer;
|
|
8628
8693
|
display: flex;
|
|
8629
8694
|
align-items: center;
|
|
@@ -8632,9 +8697,15 @@ body.light .msg-assistant .msg-text {
|
|
|
8632
8697
|
transition: all 0.15s ease;
|
|
8633
8698
|
}
|
|
8634
8699
|
|
|
8700
|
+
.modal-close svg {
|
|
8701
|
+
width: 16px;
|
|
8702
|
+
height: 16px;
|
|
8703
|
+
}
|
|
8704
|
+
|
|
8635
8705
|
.modal-close:hover {
|
|
8636
8706
|
background: var(--bg-hover);
|
|
8637
8707
|
color: var(--text-primary);
|
|
8708
|
+
border-color: var(--text-muted);
|
|
8638
8709
|
}
|
|
8639
8710
|
|
|
8640
8711
|
.modal-body {
|
|
@@ -9163,6 +9234,10 @@ select.form-input option:checked {
|
|
|
9163
9234
|
background: var(--bg-hover);
|
|
9164
9235
|
}
|
|
9165
9236
|
|
|
9237
|
+
.sp-row:hover .sp-branch {
|
|
9238
|
+
background: var(--bg-elevated);
|
|
9239
|
+
}
|
|
9240
|
+
|
|
9166
9241
|
.sp-row.selected {
|
|
9167
9242
|
background: var(--bg-elevated);
|
|
9168
9243
|
border-color: var(--accent);
|
|
@@ -9182,7 +9257,7 @@ select.form-input option:checked {
|
|
|
9182
9257
|
}
|
|
9183
9258
|
|
|
9184
9259
|
.sp-state.active {
|
|
9185
|
-
color: var(--accent);
|
|
9260
|
+
color: var(--accent-text);
|
|
9186
9261
|
}
|
|
9187
9262
|
|
|
9188
9263
|
.sp-state.waiting {
|
|
@@ -9387,7 +9462,7 @@ select.form-input option:checked {
|
|
|
9387
9462
|
}
|
|
9388
9463
|
|
|
9389
9464
|
.ns-notched legend {
|
|
9390
|
-
margin: 0
|
|
9465
|
+
margin: 0 auto 0 8px;
|
|
9391
9466
|
padding: 0 4px;
|
|
9392
9467
|
font-size: 11px;
|
|
9393
9468
|
font-weight: 500;
|
|
@@ -9502,7 +9577,7 @@ select.form-input option:checked {
|
|
|
9502
9577
|
margin-top: 4px;
|
|
9503
9578
|
font-family: var(--mono);
|
|
9504
9579
|
font-size: 11px;
|
|
9505
|
-
color: var(--text-
|
|
9580
|
+
color: var(--text-tertiary);
|
|
9506
9581
|
}
|
|
9507
9582
|
|
|
9508
9583
|
.ns-body textarea.form-input {
|
|
@@ -9785,10 +9860,11 @@ select.form-input option:checked {
|
|
|
9785
9860
|
gap: 6px;
|
|
9786
9861
|
}
|
|
9787
9862
|
|
|
9863
|
+
/* The pure status colors on their own 15% tint measure 2.7–3.8:1 in light. Mixing in the text color keeps the hue and passes 4.5:1. */
|
|
9788
9864
|
.badge-success {
|
|
9789
9865
|
display: inline-block;
|
|
9790
9866
|
background: color-mix(in srgb, var(--success) 15%, transparent);
|
|
9791
|
-
color: var(--success);
|
|
9867
|
+
color: color-mix(in srgb, var(--success) 65%, var(--text-primary));
|
|
9792
9868
|
border-radius: 4px;
|
|
9793
9869
|
padding: 1px 6px;
|
|
9794
9870
|
font-size: 12px;
|
|
@@ -9798,7 +9874,7 @@ select.form-input option:checked {
|
|
|
9798
9874
|
.badge-failed {
|
|
9799
9875
|
display: inline-block;
|
|
9800
9876
|
background: color-mix(in srgb, var(--danger) 15%, transparent);
|
|
9801
|
-
color: var(--danger);
|
|
9877
|
+
color: color-mix(in srgb, var(--danger) 65%, var(--text-primary));
|
|
9802
9878
|
border-radius: 4px;
|
|
9803
9879
|
padding: 1px 6px;
|
|
9804
9880
|
font-size: 12px;
|
|
@@ -9808,7 +9884,7 @@ select.form-input option:checked {
|
|
|
9808
9884
|
.badge-rejected {
|
|
9809
9885
|
display: inline-block;
|
|
9810
9886
|
background: color-mix(in srgb, var(--warning) 15%, transparent);
|
|
9811
|
-
color: var(--warning);
|
|
9887
|
+
color: color-mix(in srgb, var(--warning) 65%, var(--text-primary));
|
|
9812
9888
|
border-radius: 4px;
|
|
9813
9889
|
padding: 1px 6px;
|
|
9814
9890
|
font-size: 12px;
|
|
@@ -9832,7 +9908,7 @@ select.form-input option:checked {
|
|
|
9832
9908
|
height: 100%;
|
|
9833
9909
|
border-radius: 3px;
|
|
9834
9910
|
background: var(--accent);
|
|
9835
|
-
min-width:
|
|
9911
|
+
min-width: 4px;
|
|
9836
9912
|
}
|
|
9837
9913
|
|
|
9838
9914
|
.impact-pct {
|
|
@@ -10059,7 +10135,7 @@ select.form-input option:checked {
|
|
|
10059
10135
|
|
|
10060
10136
|
.storage-tab.active,
|
|
10061
10137
|
.help-tab.active {
|
|
10062
|
-
color: var(--accent);
|
|
10138
|
+
color: var(--accent-text);
|
|
10063
10139
|
border-bottom-color: var(--accent);
|
|
10064
10140
|
}
|
|
10065
10141
|
|
|
@@ -10120,7 +10196,7 @@ select.form-input option:checked {
|
|
|
10120
10196
|
|
|
10121
10197
|
.storage-item-badge.pinned {
|
|
10122
10198
|
background: color-mix(in srgb, var(--accent) 15%, transparent);
|
|
10123
|
-
color: var(--accent);
|
|
10199
|
+
color: var(--accent-text);
|
|
10124
10200
|
}
|
|
10125
10201
|
|
|
10126
10202
|
.storage-item-badge.sticky {
|
|
@@ -10242,7 +10318,7 @@ select.form-input option:checked {
|
|
|
10242
10318
|
--text-primary: #0a0a0a;
|
|
10243
10319
|
--text-secondary: #2c2c2c;
|
|
10244
10320
|
--text-tertiary: #565656;
|
|
10245
|
-
--text-muted: #
|
|
10321
|
+
--text-muted: #666666;
|
|
10246
10322
|
--accent-text: #a0501c;
|
|
10247
10323
|
--accent-dim: rgba(184, 90, 32, 0.18);
|
|
10248
10324
|
--accent-glow: rgba(232, 111, 51, 0.5);
|
|
@@ -10710,7 +10786,7 @@ pre.mermaid[data-mermaid-error]::before {
|
|
|
10710
10786
|
}
|
|
10711
10787
|
|
|
10712
10788
|
.session-group-header.sg-zen {
|
|
10713
|
-
color: var(--accent);
|
|
10789
|
+
color: var(--accent-text);
|
|
10714
10790
|
}
|
|
10715
10791
|
|
|
10716
10792
|
.sg-sub-label {
|