claude-code-workflow 6.3.29 → 6.3.30

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.
@@ -429,14 +429,16 @@
429
429
  border: 1px solid hsl(var(--border));
430
430
  border-radius: 0.75rem;
431
431
  overflow: hidden;
432
+ margin-bottom: 1rem;
433
+ box-shadow: 0 1px 3px hsl(var(--foreground) / 0.04);
432
434
  }
433
435
 
434
436
  .queue-group-header {
435
437
  display: flex;
436
438
  align-items: center;
437
439
  justify-content: space-between;
438
- padding: 0.75rem 1rem;
439
- background: hsl(var(--muted) / 0.5);
440
+ padding: 0.875rem 1.25rem;
441
+ background: hsl(var(--muted) / 0.3);
440
442
  border-bottom: 1px solid hsl(var(--border));
441
443
  }
442
444
 
@@ -1256,6 +1258,68 @@
1256
1258
  color: hsl(var(--destructive));
1257
1259
  }
1258
1260
 
1261
+ /* Search Highlight */
1262
+ .search-highlight {
1263
+ background: hsl(45 93% 47% / 0.3);
1264
+ color: inherit;
1265
+ padding: 0 2px;
1266
+ border-radius: 2px;
1267
+ font-weight: 500;
1268
+ }
1269
+
1270
+ /* Search Suggestions Dropdown */
1271
+ .search-suggestions {
1272
+ position: absolute;
1273
+ top: 100%;
1274
+ left: 0;
1275
+ right: 0;
1276
+ margin-top: 0.25rem;
1277
+ background: hsl(var(--card));
1278
+ border: 1px solid hsl(var(--border));
1279
+ border-radius: 0.5rem;
1280
+ box-shadow: 0 4px 12px hsl(var(--foreground) / 0.1);
1281
+ max-height: 300px;
1282
+ overflow-y: auto;
1283
+ z-index: 50;
1284
+ display: none;
1285
+ }
1286
+
1287
+ .search-suggestions.show {
1288
+ display: block;
1289
+ }
1290
+
1291
+ .search-suggestion-item {
1292
+ padding: 0.625rem 0.875rem;
1293
+ cursor: pointer;
1294
+ border-bottom: 1px solid hsl(var(--border) / 0.5);
1295
+ transition: background 0.15s ease;
1296
+ }
1297
+
1298
+ .search-suggestion-item:hover,
1299
+ .search-suggestion-item.selected {
1300
+ background: hsl(var(--muted));
1301
+ }
1302
+
1303
+ .search-suggestion-item:last-child {
1304
+ border-bottom: none;
1305
+ }
1306
+
1307
+ .suggestion-id {
1308
+ font-family: var(--font-mono);
1309
+ font-size: 0.7rem;
1310
+ color: hsl(var(--muted-foreground));
1311
+ margin-bottom: 0.125rem;
1312
+ }
1313
+
1314
+ .suggestion-title {
1315
+ font-size: 0.8125rem;
1316
+ color: hsl(var(--foreground));
1317
+ line-height: 1.3;
1318
+ overflow: hidden;
1319
+ text-overflow: ellipsis;
1320
+ white-space: nowrap;
1321
+ }
1322
+
1259
1323
  /* ==========================================
1260
1324
  CREATE BUTTON
1261
1325
  ========================================== */
@@ -1780,61 +1844,147 @@
1780
1844
  }
1781
1845
 
1782
1846
  .queue-items {
1783
- padding: 0.75rem;
1847
+ padding: 1rem;
1784
1848
  display: flex;
1785
1849
  flex-direction: column;
1786
- gap: 0.5rem;
1850
+ gap: 0.75rem;
1787
1851
  }
1788
1852
 
1853
+ /* Parallel items use CSS Grid for uniform sizing */
1789
1854
  .queue-items.parallel {
1790
- flex-direction: row;
1791
- flex-wrap: wrap;
1855
+ display: grid;
1856
+ grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
1857
+ gap: 0.75rem;
1792
1858
  }
1793
1859
 
1794
1860
  .queue-items.parallel .queue-item {
1795
- flex: 1;
1796
- min-width: 200px;
1861
+ display: grid;
1862
+ grid-template-areas:
1863
+ "id id delete"
1864
+ "issue issue issue"
1865
+ "solution solution solution";
1866
+ grid-template-columns: 1fr 1fr auto;
1867
+ grid-template-rows: auto auto 1fr;
1868
+ align-items: start;
1869
+ padding: 0.75rem;
1870
+ min-height: 90px;
1871
+ gap: 0.25rem;
1797
1872
  }
1798
1873
 
1799
- .queue-group-type {
1874
+ /* Card content layout */
1875
+ .queue-items.parallel .queue-item .queue-item-id {
1876
+ grid-area: id;
1877
+ font-size: 0.875rem;
1878
+ font-weight: 700;
1879
+ color: hsl(var(--foreground));
1880
+ }
1881
+
1882
+ .queue-items.parallel .queue-item .queue-item-issue {
1883
+ grid-area: issue;
1884
+ font-size: 0.6875rem;
1885
+ color: hsl(var(--muted-foreground));
1886
+ white-space: nowrap;
1887
+ overflow: hidden;
1888
+ text-overflow: ellipsis;
1889
+ line-height: 1.3;
1890
+ }
1891
+
1892
+ .queue-items.parallel .queue-item .queue-item-solution {
1893
+ grid-area: solution;
1800
1894
  display: flex;
1801
1895
  align-items: center;
1896
+ gap: 0.25rem;
1897
+ font-size: 0.75rem;
1898
+ font-weight: 500;
1899
+ color: hsl(var(--foreground));
1900
+ align-self: end;
1901
+ }
1902
+
1903
+ /* Hide extra elements in parallel view */
1904
+ .queue-items.parallel .queue-item .queue-item-files,
1905
+ .queue-items.parallel .queue-item .queue-item-priority,
1906
+ .queue-items.parallel .queue-item .queue-item-deps,
1907
+ .queue-items.parallel .queue-item .queue-item-task {
1908
+ display: none;
1909
+ }
1910
+
1911
+ /* Delete button positioned in corner */
1912
+ .queue-items.parallel .queue-item .queue-item-delete {
1913
+ grid-area: delete;
1914
+ justify-self: end;
1915
+ padding: 0.125rem;
1916
+ opacity: 0;
1917
+ }
1918
+
1919
+ .queue-group-type {
1920
+ display: inline-flex;
1921
+ align-items: center;
1802
1922
  gap: 0.375rem;
1803
1923
  font-size: 0.875rem;
1804
1924
  font-weight: 600;
1925
+ padding: 0.25rem 0.625rem;
1926
+ border-radius: 0.375rem;
1805
1927
  }
1806
1928
 
1807
1929
  .queue-group-type.parallel {
1808
- color: hsl(142 71% 45%);
1930
+ color: hsl(142 71% 40%);
1931
+ background: hsl(142 71% 45% / 0.1);
1809
1932
  }
1810
1933
 
1811
1934
  .queue-group-type.sequential {
1812
- color: hsl(262 83% 58%);
1935
+ color: hsl(262 83% 50%);
1936
+ background: hsl(262 83% 58% / 0.1);
1813
1937
  }
1814
1938
 
1815
- /* Queue Item Status Colors */
1939
+ /* Queue Item Status Colors - Enhanced visual distinction */
1940
+
1941
+ /* Pending - Default subtle state */
1942
+ .queue-item.pending,
1943
+ .queue-item:not(.ready):not(.executing):not(.completed):not(.failed):not(.blocked) {
1944
+ border-color: hsl(var(--border));
1945
+ background: hsl(var(--card));
1946
+ }
1947
+
1948
+ /* Ready - Blue tint, ready to execute */
1816
1949
  .queue-item.ready {
1817
1950
  border-color: hsl(199 89% 48%);
1951
+ background: hsl(199 89% 48% / 0.06);
1952
+ border-left: 3px solid hsl(199 89% 48%);
1818
1953
  }
1819
1954
 
1955
+ /* Executing - Amber with pulse animation */
1820
1956
  .queue-item.executing {
1821
- border-color: hsl(45 93% 47%);
1822
- background: hsl(45 93% 47% / 0.05);
1957
+ border-color: hsl(38 92% 50%);
1958
+ background: hsl(38 92% 50% / 0.08);
1959
+ border-left: 3px solid hsl(38 92% 50%);
1960
+ animation: executing-pulse 2s ease-in-out infinite;
1961
+ }
1962
+
1963
+ @keyframes executing-pulse {
1964
+ 0%, 100% { box-shadow: 0 0 0 0 hsl(38 92% 50% / 0.3); }
1965
+ 50% { box-shadow: 0 0 8px 2px hsl(38 92% 50% / 0.2); }
1823
1966
  }
1824
1967
 
1968
+ /* Completed - Green success state */
1825
1969
  .queue-item.completed {
1826
- border-color: hsl(var(--success));
1827
- background: hsl(var(--success) / 0.05);
1970
+ border-color: hsl(142 71% 45%);
1971
+ background: hsl(142 71% 45% / 0.06);
1972
+ border-left: 3px solid hsl(142 71% 45%);
1828
1973
  }
1829
1974
 
1975
+ /* Failed - Red error state */
1830
1976
  .queue-item.failed {
1831
- border-color: hsl(var(--destructive));
1832
- background: hsl(var(--destructive) / 0.05);
1977
+ border-color: hsl(0 84% 60%);
1978
+ background: hsl(0 84% 60% / 0.06);
1979
+ border-left: 3px solid hsl(0 84% 60%);
1833
1980
  }
1834
1981
 
1982
+ /* Blocked - Purple/violet blocked state */
1835
1983
  .queue-item.blocked {
1836
1984
  border-color: hsl(262 83% 58%);
1837
- opacity: 0.7;
1985
+ background: hsl(262 83% 58% / 0.05);
1986
+ border-left: 3px solid hsl(262 83% 58%);
1987
+ opacity: 0.8;
1838
1988
  }
1839
1989
 
1840
1990
  /* Priority indicator */
@@ -2236,61 +2386,89 @@
2236
2386
  flex-direction: column;
2237
2387
  align-items: center;
2238
2388
  justify-content: center;
2239
- padding: 0.75rem 1rem;
2240
- background: hsl(var(--muted) / 0.3);
2389
+ padding: 1rem 1.25rem;
2390
+ background: hsl(var(--card));
2241
2391
  border: 1px solid hsl(var(--border));
2242
- border-radius: 0.5rem;
2392
+ border-radius: 0.75rem;
2243
2393
  text-align: center;
2394
+ transition: all 0.2s ease;
2395
+ }
2396
+
2397
+ .queue-stat-card:hover {
2398
+ transform: translateY(-1px);
2399
+ box-shadow: 0 2px 8px hsl(var(--foreground) / 0.06);
2244
2400
  }
2245
2401
 
2246
2402
  .queue-stat-card .queue-stat-value {
2247
- font-size: 1.5rem;
2403
+ font-size: 1.75rem;
2248
2404
  font-weight: 700;
2249
2405
  color: hsl(var(--foreground));
2250
2406
  line-height: 1.2;
2251
2407
  }
2252
2408
 
2253
2409
  .queue-stat-card .queue-stat-label {
2254
- font-size: 0.75rem;
2410
+ font-size: 0.6875rem;
2255
2411
  color: hsl(var(--muted-foreground));
2256
2412
  text-transform: uppercase;
2257
- letter-spacing: 0.025em;
2258
- margin-top: 0.25rem;
2413
+ letter-spacing: 0.05em;
2414
+ margin-top: 0.375rem;
2415
+ font-weight: 500;
2259
2416
  }
2260
2417
 
2418
+ /* Pending - Slate/Gray with subtle blue tint */
2261
2419
  .queue-stat-card.pending {
2262
- border-color: hsl(var(--muted-foreground) / 0.3);
2420
+ border-color: hsl(215 20% 65% / 0.4);
2421
+ background: linear-gradient(135deg, hsl(215 20% 95%) 0%, hsl(var(--card)) 100%);
2263
2422
  }
2264
2423
 
2265
2424
  .queue-stat-card.pending .queue-stat-value {
2266
- color: hsl(var(--muted-foreground));
2425
+ color: hsl(215 20% 45%);
2267
2426
  }
2268
2427
 
2428
+ .queue-stat-card.pending .queue-stat-label {
2429
+ color: hsl(215 20% 55%);
2430
+ }
2431
+
2432
+ /* Executing - Amber/Orange - attention-grabbing */
2269
2433
  .queue-stat-card.executing {
2270
- border-color: hsl(45 93% 47% / 0.5);
2271
- background: hsl(45 93% 47% / 0.05);
2434
+ border-color: hsl(38 92% 50% / 0.5);
2435
+ background: linear-gradient(135deg, hsl(38 92% 95%) 0%, hsl(45 93% 97%) 100%);
2272
2436
  }
2273
2437
 
2274
2438
  .queue-stat-card.executing .queue-stat-value {
2275
- color: hsl(45 93% 47%);
2439
+ color: hsl(38 92% 40%);
2440
+ }
2441
+
2442
+ .queue-stat-card.executing .queue-stat-label {
2443
+ color: hsl(38 70% 45%);
2276
2444
  }
2277
2445
 
2446
+ /* Completed - Green - success indicator */
2278
2447
  .queue-stat-card.completed {
2279
- border-color: hsl(var(--success) / 0.5);
2280
- background: hsl(var(--success) / 0.05);
2448
+ border-color: hsl(142 71% 45% / 0.5);
2449
+ background: linear-gradient(135deg, hsl(142 71% 95%) 0%, hsl(142 50% 97%) 100%);
2281
2450
  }
2282
2451
 
2283
2452
  .queue-stat-card.completed .queue-stat-value {
2284
- color: hsl(var(--success));
2453
+ color: hsl(142 71% 35%);
2454
+ }
2455
+
2456
+ .queue-stat-card.completed .queue-stat-label {
2457
+ color: hsl(142 50% 40%);
2285
2458
  }
2286
2459
 
2460
+ /* Failed - Red - error indicator */
2287
2461
  .queue-stat-card.failed {
2288
- border-color: hsl(var(--destructive) / 0.5);
2289
- background: hsl(var(--destructive) / 0.05);
2462
+ border-color: hsl(0 84% 60% / 0.5);
2463
+ background: linear-gradient(135deg, hsl(0 84% 95%) 0%, hsl(0 70% 97%) 100%);
2290
2464
  }
2291
2465
 
2292
2466
  .queue-stat-card.failed .queue-stat-value {
2293
- color: hsl(var(--destructive));
2467
+ color: hsl(0 84% 45%);
2468
+ }
2469
+
2470
+ .queue-stat-card.failed .queue-stat-label {
2471
+ color: hsl(0 60% 50%);
2294
2472
  }
2295
2473
 
2296
2474
  /* ==========================================
@@ -2874,3 +3052,223 @@
2874
3052
  gap: 0.25rem;
2875
3053
  }
2876
3054
  }
3055
+
3056
+ /* ==========================================
3057
+ MULTI-QUEUE CARDS VIEW
3058
+ ========================================== */
3059
+
3060
+ /* Queue Cards Header */
3061
+ .queue-cards-header {
3062
+ display: flex;
3063
+ align-items: center;
3064
+ justify-content: space-between;
3065
+ flex-wrap: wrap;
3066
+ gap: 1rem;
3067
+ }
3068
+
3069
+ /* Queue Cards Grid */
3070
+ .queue-cards-grid {
3071
+ display: grid;
3072
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
3073
+ gap: 1rem;
3074
+ margin-bottom: 1.5rem;
3075
+ }
3076
+
3077
+ /* Individual Queue Card */
3078
+ .queue-card {
3079
+ position: relative;
3080
+ background: hsl(var(--card));
3081
+ border: 1px solid hsl(var(--border));
3082
+ border-radius: 0.75rem;
3083
+ padding: 1rem;
3084
+ cursor: pointer;
3085
+ transition: all 0.2s ease;
3086
+ }
3087
+
3088
+ .queue-card:hover {
3089
+ border-color: hsl(var(--primary) / 0.5);
3090
+ transform: translateY(-2px);
3091
+ box-shadow: 0 4px 12px hsl(var(--foreground) / 0.08);
3092
+ }
3093
+
3094
+ .queue-card.active {
3095
+ border-color: hsl(var(--primary));
3096
+ background: hsl(var(--primary) / 0.05);
3097
+ }
3098
+
3099
+ .queue-card.merged {
3100
+ opacity: 0.6;
3101
+ border-style: dashed;
3102
+ }
3103
+
3104
+ .queue-card.merged:hover {
3105
+ opacity: 0.8;
3106
+ }
3107
+
3108
+ /* Queue Card Header */
3109
+ .queue-card-header {
3110
+ display: flex;
3111
+ align-items: center;
3112
+ justify-content: space-between;
3113
+ margin-bottom: 0.75rem;
3114
+ }
3115
+
3116
+ .queue-card-id {
3117
+ font-size: 0.875rem;
3118
+ font-weight: 600;
3119
+ color: hsl(var(--foreground));
3120
+ }
3121
+
3122
+ .queue-card-badges {
3123
+ display: flex;
3124
+ align-items: center;
3125
+ gap: 0.5rem;
3126
+ }
3127
+
3128
+ /* Queue Card Stats - Progress Bar */
3129
+ .queue-card-stats {
3130
+ margin-bottom: 0.75rem;
3131
+ }
3132
+
3133
+ .queue-card-stats .progress-bar {
3134
+ height: 6px;
3135
+ background: hsl(var(--muted));
3136
+ border-radius: 3px;
3137
+ overflow: hidden;
3138
+ margin-bottom: 0.5rem;
3139
+ }
3140
+
3141
+ .queue-card-stats .progress-fill {
3142
+ height: 100%;
3143
+ background: hsl(var(--primary));
3144
+ border-radius: 3px;
3145
+ transition: width 0.3s ease;
3146
+ }
3147
+
3148
+ .queue-card-stats .progress-fill.completed {
3149
+ background: hsl(var(--success, 142 76% 36%));
3150
+ }
3151
+
3152
+ .queue-card-progress {
3153
+ display: flex;
3154
+ justify-content: space-between;
3155
+ font-size: 0.75rem;
3156
+ color: hsl(var(--foreground));
3157
+ }
3158
+
3159
+ /* Queue Card Meta */
3160
+ .queue-card-meta {
3161
+ display: flex;
3162
+ gap: 1rem;
3163
+ font-size: 0.75rem;
3164
+ color: hsl(var(--muted-foreground));
3165
+ margin-bottom: 0.75rem;
3166
+ }
3167
+
3168
+ /* Queue Card Actions */
3169
+ .queue-card-actions {
3170
+ display: flex;
3171
+ gap: 0.5rem;
3172
+ padding-top: 0.75rem;
3173
+ border-top: 1px solid hsl(var(--border));
3174
+ }
3175
+
3176
+ /* Queue Detail Header */
3177
+ .queue-detail-header {
3178
+ display: flex;
3179
+ align-items: center;
3180
+ gap: 1rem;
3181
+ flex-wrap: wrap;
3182
+ }
3183
+
3184
+ .queue-detail-title {
3185
+ flex: 1;
3186
+ display: flex;
3187
+ align-items: center;
3188
+ gap: 1rem;
3189
+ }
3190
+
3191
+ .queue-detail-actions {
3192
+ display: flex;
3193
+ gap: 0.5rem;
3194
+ }
3195
+
3196
+ /* Queue Item Delete Button */
3197
+ .queue-item-delete {
3198
+ margin-left: auto;
3199
+ padding: 0.25rem;
3200
+ opacity: 0;
3201
+ transition: opacity 0.15s ease;
3202
+ color: hsl(var(--muted-foreground));
3203
+ border-radius: 0.25rem;
3204
+ }
3205
+
3206
+ .queue-item:hover .queue-item-delete {
3207
+ opacity: 1;
3208
+ }
3209
+
3210
+ .queue-item-delete:hover {
3211
+ color: hsl(var(--destructive, 0 84% 60%));
3212
+ background: hsl(var(--destructive, 0 84% 60%) / 0.1);
3213
+ }
3214
+
3215
+ /* Queue Error State */
3216
+ .queue-error {
3217
+ padding: 2rem;
3218
+ text-align: center;
3219
+ }
3220
+
3221
+ /* Responsive adjustments for queue cards */
3222
+ @media (max-width: 640px) {
3223
+ .queue-cards-grid {
3224
+ grid-template-columns: 1fr;
3225
+ }
3226
+
3227
+ .queue-cards-header {
3228
+ flex-direction: column;
3229
+ align-items: flex-start;
3230
+ }
3231
+
3232
+ .queue-detail-header {
3233
+ flex-direction: column;
3234
+ align-items: flex-start;
3235
+ }
3236
+
3237
+ .queue-detail-title {
3238
+ flex-direction: column;
3239
+ align-items: flex-start;
3240
+ gap: 0.5rem;
3241
+ }
3242
+ }
3243
+
3244
+ /* ==========================================
3245
+ WARNING BUTTON STYLE
3246
+ ========================================== */
3247
+
3248
+ .btn-warning,
3249
+ .btn-secondary.btn-warning {
3250
+ color: hsl(38 92% 40%);
3251
+ border-color: hsl(38 92% 50% / 0.5);
3252
+ background: hsl(38 92% 50% / 0.08);
3253
+ }
3254
+
3255
+ .btn-warning:hover,
3256
+ .btn-secondary.btn-warning:hover {
3257
+ background: hsl(38 92% 50% / 0.15);
3258
+ border-color: hsl(38 92% 50%);
3259
+ }
3260
+
3261
+ /* Active queue badge enhancement */
3262
+ .queue-active-badge {
3263
+ display: inline-flex;
3264
+ align-items: center;
3265
+ padding: 0.125rem 0.5rem;
3266
+ font-size: 0.6875rem;
3267
+ font-weight: 600;
3268
+ color: hsl(142 71% 35%);
3269
+ background: hsl(142 71% 45% / 0.15);
3270
+ border: 1px solid hsl(142 71% 45% / 0.3);
3271
+ border-radius: 9999px;
3272
+ text-transform: uppercase;
3273
+ letter-spacing: 0.025em;
3274
+ }
@@ -2269,6 +2269,15 @@ const i18n = {
2269
2269
  'issues.queueCommandInfo': 'After running the command, click "Refresh" to see the updated queue.',
2270
2270
  'issues.alternative': 'Alternative',
2271
2271
  'issues.refreshAfter': 'Refresh Queue',
2272
+ 'issues.activate': 'Activate',
2273
+ 'issues.deactivate': 'Deactivate',
2274
+ 'issues.queueActivated': 'Queue activated',
2275
+ 'issues.queueDeactivated': 'Queue deactivated',
2276
+ 'issues.executionQueues': 'Execution Queues',
2277
+ 'issues.queues': 'queues',
2278
+ 'issues.noQueues': 'No queues found',
2279
+ 'issues.queueEmptyHint': 'Generate execution queue from bound solutions',
2280
+ 'issues.refresh': 'Refresh',
2272
2281
  // issue.* keys (legacy)
2273
2282
  'issue.viewIssues': 'Issues',
2274
2283
  'issue.viewQueue': 'Queue',
@@ -4592,6 +4601,15 @@ const i18n = {
4592
4601
  'issues.queueCommandInfo': '运行命令后,点击"刷新"查看更新后的队列。',
4593
4602
  'issues.alternative': '或者',
4594
4603
  'issues.refreshAfter': '刷新队列',
4604
+ 'issues.activate': '激活',
4605
+ 'issues.deactivate': '取消激活',
4606
+ 'issues.queueActivated': '队列已激活',
4607
+ 'issues.queueDeactivated': '队列已取消激活',
4608
+ 'issues.executionQueues': '执行队列',
4609
+ 'issues.queues': '个队列',
4610
+ 'issues.noQueues': '暂无队列',
4611
+ 'issues.queueEmptyHint': '从绑定的解决方案生成执行队列',
4612
+ 'issues.refresh': '刷新',
4595
4613
  // issue.* keys (legacy)
4596
4614
  'issue.viewIssues': '议题',
4597
4615
  'issue.viewQueue': '队列',
@@ -6381,12 +6381,12 @@ async function showWatcherControlModal() {
6381
6381
 
6382
6382
  // Get first indexed project path as default
6383
6383
  let defaultPath = '';
6384
- if (indexes.success && indexes.projects && indexes.projects.length > 0) {
6385
- // Sort by last_indexed desc and pick the most recent
6386
- const sorted = indexes.projects.sort((a, b) =>
6387
- new Date(b.last_indexed || 0) - new Date(a.last_indexed || 0)
6384
+ if (indexes.success && indexes.indexes && indexes.indexes.length > 0) {
6385
+ // Sort by lastModified desc and pick the most recent
6386
+ const sorted = indexes.indexes.sort((a, b) =>
6387
+ new Date(b.lastModified || 0) - new Date(a.lastModified || 0)
6388
6388
  );
6389
- defaultPath = sorted[0].source_root || '';
6389
+ defaultPath = sorted[0].path || '';
6390
6390
  }
6391
6391
 
6392
6392
  const modalHtml = buildWatcherControlContent(status, defaultPath);