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.
- package/ccw/dist/core/data-aggregator.js +20 -7
- package/ccw/dist/core/data-aggregator.js.map +1 -1
- package/ccw/dist/core/routes/issue-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/issue-routes.js +249 -4
- package/ccw/dist/core/routes/issue-routes.js.map +1 -1
- package/ccw/src/core/data-aggregator.ts +19 -7
- package/ccw/src/core/routes/issue-routes.ts +275 -4
- package/ccw/src/templates/dashboard-css/32-issue-manager.css +435 -37
- package/ccw/src/templates/dashboard-js/i18n.js +18 -0
- package/ccw/src/templates/dashboard-js/views/codexlens-manager.js +5 -5
- package/ccw/src/templates/dashboard-js/views/issue-manager.js +744 -29
- package/ccw/src/templates/dashboard-js/views/skills-manager.js +2 -4
- package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-312.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/commands.py +78 -0
- package/package.json +1 -1
|
@@ -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.
|
|
439
|
-
background: hsl(var(--muted) / 0.
|
|
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:
|
|
1847
|
+
padding: 1rem;
|
|
1784
1848
|
display: flex;
|
|
1785
1849
|
flex-direction: column;
|
|
1786
|
-
gap: 0.
|
|
1850
|
+
gap: 0.75rem;
|
|
1787
1851
|
}
|
|
1788
1852
|
|
|
1853
|
+
/* Parallel items use CSS Grid for uniform sizing */
|
|
1789
1854
|
.queue-items.parallel {
|
|
1790
|
-
|
|
1791
|
-
|
|
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
|
-
|
|
1796
|
-
|
|
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
|
-
|
|
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%
|
|
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%
|
|
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(
|
|
1822
|
-
background: hsl(
|
|
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(
|
|
1827
|
-
background: hsl(
|
|
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(
|
|
1832
|
-
background: hsl(
|
|
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
|
-
|
|
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:
|
|
2240
|
-
background: hsl(var(--
|
|
2389
|
+
padding: 1rem 1.25rem;
|
|
2390
|
+
background: hsl(var(--card));
|
|
2241
2391
|
border: 1px solid hsl(var(--border));
|
|
2242
|
-
border-radius: 0.
|
|
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.
|
|
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.
|
|
2410
|
+
font-size: 0.6875rem;
|
|
2255
2411
|
color: hsl(var(--muted-foreground));
|
|
2256
2412
|
text-transform: uppercase;
|
|
2257
|
-
letter-spacing: 0.
|
|
2258
|
-
margin-top: 0.
|
|
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(
|
|
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(
|
|
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(
|
|
2271
|
-
background: hsl(45 93%
|
|
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(
|
|
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(
|
|
2280
|
-
background: hsl(
|
|
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(
|
|
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(
|
|
2289
|
-
background: hsl(
|
|
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(
|
|
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.
|
|
6385
|
-
// Sort by
|
|
6386
|
-
const sorted = indexes.
|
|
6387
|
-
new Date(b.
|
|
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].
|
|
6389
|
+
defaultPath = sorted[0].path || '';
|
|
6390
6390
|
}
|
|
6391
6391
|
|
|
6392
6392
|
const modalHtml = buildWatcherControlContent(status, defaultPath);
|