@tea-agent/loop-agent 0.17.1 → 0.18.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/CHANGELOG.md +96 -22
- package/dist/application/dag/args.js +9 -2
- package/dist/executors/dag-pi-executor.js +11 -0
- package/dist/executors/shell-executor.js +62 -2
- package/dist/governance/spine-audit.js +5 -2
- package/dist/worker/console/draft-store.js +81 -3
- package/dist/worker/console/interview/grill-me.js +253 -0
- package/dist/worker/console/operation-runner.js +2 -1
- package/dist/worker/console/operator-actions.js +609 -20
- package/dist/worker/console/pi-readiness.js +2 -0
- package/dist/worker/console/prd-identity.js +102 -0
- package/dist/worker/console/resolve-dag-run-for-task.js +76 -0
- package/dist/worker/console/server.js +11 -2
- package/dist/worker/console/static/assets/index-KUSib7aM.js +16 -0
- package/dist/worker/console/static/assets/index-ucIzpaGJ.css +1 -0
- package/dist/worker/console/static/index.html +3 -3
- package/dist/worker/console/workflow-kinds.js +46 -0
- package/dist/worker/observe/routes.js +8 -1
- package/dist/worker/observe/static/index.html +8 -8
- package/dist/worker/observe/static/styles.css +296 -181
- package/dist/workflows/dag/backend-test-intake-context.js +148 -0
- package/dist/workflows/dag/backend-test-markdown-workflow.js +528 -0
- package/dist/workflows/dag/init-hybrid.js +93 -109
- package/dist/workflows/dag/types.js +4 -0
- package/dist/workflows/loop/benchmark.js +1 -1
- package/docs/README.md +84 -39
- package/docs/architecture/README.md +8 -4
- package/docs/architecture/dag-execution.md +8 -1
- package/docs/architecture/evolution.md +38 -25
- package/docs/architecture/facts-and-state.md +2 -0
- package/docs/architecture/system-overview.md +6 -5
- package/docs/architecture/worker-and-feature.md +15 -8
- package/docs/init-surface.manifest.json +10 -1
- package/docs/templates/agent-dag-decision-gate-dogfood-report.md +1 -1
- package/docs/templates/backend-test-dag.json +74 -219
- package/docs/templates/branch-merge-report.md +1 -1
- package/docs/templates/exec-plan.md +2 -0
- package/docs/templates/progress-log.md +3 -0
- package/package.json +1 -1
- package/skills/init-capability-evolution/SKILL.md +1 -1
- package/skills/loop-agent/references/command-reference.md +1 -1
- package/skills/loop-agent/references/hybrid-dag.md +2 -2
- package/dist/worker/console/static/assets/index-BEIdBogJ.js +0 -9
- package/dist/worker/console/static/assets/index-Rt0TqimP.css +0 -1
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
--hairline-strong: #cfcdc4;
|
|
13
13
|
--orange: #f54e00;
|
|
14
14
|
--orange-active: #d04200;
|
|
15
|
+
--orange-soft: color-mix(in srgb, var(--orange) 12%, white);
|
|
15
16
|
--blue: #3f6ea4;
|
|
16
17
|
--green: #1f8a65;
|
|
17
18
|
--amber: #a66a00;
|
|
@@ -29,11 +30,15 @@
|
|
|
29
30
|
--space-8: 32px;
|
|
30
31
|
--space-10: 40px;
|
|
31
32
|
--space-12: 48px;
|
|
32
|
-
--radius-sm:
|
|
33
|
-
--radius-md:
|
|
34
|
-
--radius-lg:
|
|
33
|
+
--radius-sm: 6px;
|
|
34
|
+
--radius-md: 8px;
|
|
35
|
+
--radius-lg: 12px;
|
|
36
|
+
--radius-pill: 999px;
|
|
35
37
|
--transition-fast: 160ms ease;
|
|
36
|
-
--transition-base:
|
|
38
|
+
--transition-base: 220ms ease;
|
|
39
|
+
--shadow-panel: 0 1px 2px rgb(38 37 30 / 4%), 0 8px 24px rgb(38 37 30 / 3%);
|
|
40
|
+
--shadow-soft: 0 10px 30px rgb(38 37 30 / 6%);
|
|
41
|
+
color-scheme: light;
|
|
37
42
|
}
|
|
38
43
|
|
|
39
44
|
* {
|
|
@@ -41,17 +46,30 @@
|
|
|
41
46
|
}
|
|
42
47
|
|
|
43
48
|
html {
|
|
44
|
-
background:
|
|
49
|
+
background:
|
|
50
|
+
radial-gradient(1200px 480px at 8% -10%, rgb(241 216 203 / 45%), transparent 55%),
|
|
51
|
+
radial-gradient(900px 420px at 100% 0%, rgb(216 234 213 / 35%), transparent 50%),
|
|
52
|
+
var(--canvas);
|
|
53
|
+
min-height: 100%;
|
|
45
54
|
scroll-behavior: smooth;
|
|
46
55
|
}
|
|
47
56
|
|
|
48
57
|
body {
|
|
49
58
|
min-width: 320px;
|
|
50
59
|
margin: 0;
|
|
51
|
-
|
|
60
|
+
min-height: 100vh;
|
|
61
|
+
background: transparent;
|
|
52
62
|
color: var(--ink);
|
|
63
|
+
/* Keep system-ui first for shell contract tests; Chinese fonts follow. */
|
|
53
64
|
font-family:
|
|
54
|
-
system-ui,
|
|
65
|
+
system-ui,
|
|
66
|
+
-apple-system,
|
|
67
|
+
"Segoe UI",
|
|
68
|
+
"PingFang SC",
|
|
69
|
+
"Hiragino Sans GB",
|
|
70
|
+
"Noto Sans SC",
|
|
71
|
+
BlinkMacSystemFont,
|
|
72
|
+
sans-serif;
|
|
55
73
|
font-size: 14px;
|
|
56
74
|
line-height: 1.5;
|
|
57
75
|
}
|
|
@@ -111,35 +129,43 @@ td:first-child,
|
|
|
111
129
|
top: 0;
|
|
112
130
|
z-index: 30;
|
|
113
131
|
display: grid;
|
|
114
|
-
grid-template-columns: auto auto
|
|
132
|
+
grid-template-columns: auto 1fr auto;
|
|
115
133
|
grid-template-areas: "brand nav status" "crumb crumb crumb";
|
|
116
|
-
column-gap: var(--space-
|
|
134
|
+
column-gap: var(--space-5);
|
|
117
135
|
align-items: center;
|
|
118
|
-
min-height:
|
|
119
|
-
margin-bottom: var(--space-
|
|
136
|
+
min-height: 72px;
|
|
137
|
+
margin-bottom: var(--space-6);
|
|
120
138
|
padding: 14px 0 12px;
|
|
121
|
-
background: color-mix(in srgb, var(--canvas)
|
|
139
|
+
background: color-mix(in srgb, var(--canvas) 82%, transparent);
|
|
122
140
|
border-bottom: 1px solid var(--hairline);
|
|
123
|
-
backdrop-filter: blur(
|
|
141
|
+
backdrop-filter: blur(12px);
|
|
124
142
|
}
|
|
125
143
|
|
|
126
144
|
.logo {
|
|
127
145
|
grid-area: brand;
|
|
128
146
|
display: inline-flex;
|
|
129
147
|
align-items: center;
|
|
130
|
-
gap:
|
|
148
|
+
gap: 10px;
|
|
131
149
|
color: var(--ink);
|
|
132
|
-
font-size:
|
|
150
|
+
font-size: 15px;
|
|
133
151
|
font-weight: 650;
|
|
134
|
-
letter-spacing: 0;
|
|
152
|
+
letter-spacing: -0.01em;
|
|
135
153
|
text-decoration: none;
|
|
136
154
|
}
|
|
137
155
|
|
|
138
156
|
.logo > i {
|
|
139
|
-
|
|
140
|
-
|
|
157
|
+
display: inline-flex;
|
|
158
|
+
align-items: center;
|
|
159
|
+
justify-content: center;
|
|
160
|
+
width: 32px;
|
|
161
|
+
height: 32px;
|
|
162
|
+
border-radius: var(--radius-md);
|
|
163
|
+
background: var(--orange-soft);
|
|
164
|
+
color: var(--orange-active);
|
|
165
|
+
font-size: 18px;
|
|
141
166
|
font-weight: 400;
|
|
142
167
|
}
|
|
168
|
+
|
|
143
169
|
.logo:hover {
|
|
144
170
|
color: var(--orange-active);
|
|
145
171
|
}
|
|
@@ -147,18 +173,25 @@ td:first-child,
|
|
|
147
173
|
.top-nav {
|
|
148
174
|
grid-area: nav;
|
|
149
175
|
display: inline-flex;
|
|
176
|
+
flex-wrap: wrap;
|
|
150
177
|
align-items: center;
|
|
151
178
|
gap: 4px;
|
|
179
|
+
justify-self: start;
|
|
180
|
+
padding: 5px;
|
|
181
|
+
border: 1px solid var(--hairline);
|
|
182
|
+
border-radius: var(--radius-pill);
|
|
183
|
+
background: color-mix(in srgb, var(--surface) 88%, transparent);
|
|
184
|
+
box-shadow: var(--shadow-panel);
|
|
152
185
|
}
|
|
153
186
|
|
|
154
187
|
.nav-link {
|
|
155
188
|
display: inline-flex;
|
|
156
189
|
align-items: center;
|
|
157
190
|
gap: 7px;
|
|
158
|
-
min-height:
|
|
159
|
-
padding: 0
|
|
191
|
+
min-height: 34px;
|
|
192
|
+
padding: 0 14px;
|
|
160
193
|
border: 1px solid transparent;
|
|
161
|
-
border-radius: var(--radius-
|
|
194
|
+
border-radius: var(--radius-pill);
|
|
162
195
|
color: var(--body);
|
|
163
196
|
font-size: 13px;
|
|
164
197
|
font-weight: 600;
|
|
@@ -166,24 +199,34 @@ td:first-child,
|
|
|
166
199
|
transition:
|
|
167
200
|
border-color var(--transition-fast),
|
|
168
201
|
background-color var(--transition-fast),
|
|
169
|
-
color var(--transition-fast)
|
|
202
|
+
color var(--transition-fast),
|
|
203
|
+
box-shadow var(--transition-fast);
|
|
170
204
|
}
|
|
171
205
|
|
|
172
206
|
.nav-link > i {
|
|
173
|
-
font-size:
|
|
207
|
+
font-size: 15px;
|
|
174
208
|
font-weight: 400;
|
|
175
209
|
}
|
|
210
|
+
|
|
176
211
|
.nav-link:hover,
|
|
177
212
|
.nav-link:focus-visible {
|
|
178
|
-
border-color:
|
|
213
|
+
border-color: transparent;
|
|
179
214
|
background: var(--surface);
|
|
180
215
|
color: var(--ink);
|
|
181
216
|
outline: none;
|
|
182
217
|
}
|
|
218
|
+
|
|
183
219
|
.nav-link-active {
|
|
184
|
-
border-color:
|
|
185
|
-
background: var(--
|
|
186
|
-
color:
|
|
220
|
+
border-color: transparent;
|
|
221
|
+
background: var(--ink);
|
|
222
|
+
color: #fff;
|
|
223
|
+
box-shadow: none;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.nav-link-active:hover,
|
|
227
|
+
.nav-link-active:focus-visible {
|
|
228
|
+
background: var(--ink);
|
|
229
|
+
color: #fff;
|
|
187
230
|
}
|
|
188
231
|
|
|
189
232
|
.header-meta {
|
|
@@ -191,15 +234,21 @@ td:first-child,
|
|
|
191
234
|
display: inline-flex;
|
|
192
235
|
justify-self: end;
|
|
193
236
|
align-items: center;
|
|
194
|
-
gap:
|
|
237
|
+
gap: 8px;
|
|
238
|
+
min-height: 34px;
|
|
239
|
+
padding: 0 12px;
|
|
240
|
+
border: 1px solid var(--hairline);
|
|
241
|
+
border-radius: var(--radius-pill);
|
|
242
|
+
background: var(--surface);
|
|
195
243
|
color: var(--muted);
|
|
196
244
|
font-size: 12px;
|
|
197
245
|
font-variant-numeric: tabular-nums;
|
|
246
|
+
box-shadow: var(--shadow-panel);
|
|
198
247
|
}
|
|
199
248
|
|
|
200
249
|
.header-meta > i {
|
|
201
|
-
color: var(--green);
|
|
202
|
-
font-size:
|
|
250
|
+
color: color-mix(in srgb, var(--green) 70%, white);
|
|
251
|
+
font-size: 14px;
|
|
203
252
|
}
|
|
204
253
|
|
|
205
254
|
.breadcrumb {
|
|
@@ -247,20 +296,26 @@ td:first-child,
|
|
|
247
296
|
}
|
|
248
297
|
|
|
249
298
|
.view-kicker {
|
|
299
|
+
display: inline-flex;
|
|
300
|
+
align-items: center;
|
|
301
|
+
width: fit-content;
|
|
250
302
|
margin: 0;
|
|
251
|
-
|
|
303
|
+
padding: 4px 10px;
|
|
304
|
+
border-radius: var(--radius-pill);
|
|
305
|
+
background: var(--orange-soft);
|
|
306
|
+
color: var(--orange-active);
|
|
252
307
|
font-size: 11px;
|
|
253
308
|
font-weight: 700;
|
|
254
|
-
letter-spacing: 0.
|
|
309
|
+
letter-spacing: 0.04em;
|
|
255
310
|
}
|
|
256
311
|
|
|
257
312
|
.view h2 {
|
|
258
313
|
margin: 0;
|
|
259
314
|
color: var(--ink);
|
|
260
|
-
font-size:
|
|
261
|
-
font-weight:
|
|
262
|
-
line-height: 1.
|
|
263
|
-
letter-spacing: 0;
|
|
315
|
+
font-size: clamp(24px, 3vw, 30px);
|
|
316
|
+
font-weight: 650;
|
|
317
|
+
line-height: 1.15;
|
|
318
|
+
letter-spacing: -0.02em;
|
|
264
319
|
}
|
|
265
320
|
|
|
266
321
|
.view-heading > p:last-child {
|
|
@@ -271,14 +326,15 @@ td:first-child,
|
|
|
271
326
|
|
|
272
327
|
.panel {
|
|
273
328
|
min-width: 0;
|
|
274
|
-
background: var(--surface);
|
|
329
|
+
background: color-mix(in srgb, var(--surface) 96%, transparent);
|
|
275
330
|
border: 1px solid var(--hairline);
|
|
276
331
|
border-radius: var(--radius-lg);
|
|
277
332
|
padding: var(--space-5);
|
|
333
|
+
box-shadow: var(--shadow-panel);
|
|
278
334
|
}
|
|
279
335
|
|
|
280
336
|
.panel-primary {
|
|
281
|
-
border-color: var(--hairline
|
|
337
|
+
border-color: var(--hairline);
|
|
282
338
|
box-shadow: var(--shadow-panel);
|
|
283
339
|
}
|
|
284
340
|
.panel-features {
|
|
@@ -292,6 +348,7 @@ td:first-child,
|
|
|
292
348
|
.panel-table {
|
|
293
349
|
overflow: hidden;
|
|
294
350
|
padding: 0;
|
|
351
|
+
box-shadow: var(--shadow-panel);
|
|
295
352
|
}
|
|
296
353
|
.panel-output {
|
|
297
354
|
background: #fbfbf9;
|
|
@@ -366,18 +423,20 @@ td:first-child,
|
|
|
366
423
|
}
|
|
367
424
|
.pool-refresh-btn {
|
|
368
425
|
appearance: none;
|
|
369
|
-
border: 1px solid var(--hairline
|
|
370
|
-
border-radius: var(--radius-
|
|
426
|
+
border: 1px solid var(--hairline);
|
|
427
|
+
border-radius: var(--radius-pill);
|
|
371
428
|
background: var(--surface);
|
|
372
429
|
color: var(--ink);
|
|
373
430
|
font-size: 13px;
|
|
374
431
|
font-weight: 700;
|
|
375
432
|
padding: 8px 14px;
|
|
376
433
|
cursor: pointer;
|
|
434
|
+
box-shadow: var(--shadow-panel);
|
|
377
435
|
}
|
|
378
436
|
.pool-refresh-btn:hover {
|
|
379
437
|
border-color: var(--orange);
|
|
380
438
|
color: var(--orange-active);
|
|
439
|
+
background: var(--orange-soft);
|
|
381
440
|
}
|
|
382
441
|
.pool-auto-refresh-label {
|
|
383
442
|
display: inline-flex;
|
|
@@ -403,15 +462,16 @@ td:first-child,
|
|
|
403
462
|
border-radius: var(--radius-md);
|
|
404
463
|
background: var(--canvas-soft);
|
|
405
464
|
border-left: 3px solid var(--hairline-strong);
|
|
465
|
+
box-shadow: none;
|
|
406
466
|
}
|
|
407
467
|
.pool-ops-card-attention {
|
|
408
|
-
border-left-color: var(--red);
|
|
409
|
-
border-color:
|
|
410
|
-
background:
|
|
468
|
+
border-left-color: color-mix(in srgb, var(--red) 70%, var(--hairline));
|
|
469
|
+
border-color: var(--hairline);
|
|
470
|
+
background: color-mix(in srgb, var(--red) 4%, var(--surface));
|
|
411
471
|
}
|
|
412
472
|
.pool-ops-card-ready {
|
|
413
|
-
border-left-color: var(--orange);
|
|
414
|
-
background:
|
|
473
|
+
border-left-color: color-mix(in srgb, var(--orange) 70%, var(--hairline));
|
|
474
|
+
background: color-mix(in srgb, var(--orange) 4%, var(--surface));
|
|
415
475
|
}
|
|
416
476
|
.pool-ops-card-title {
|
|
417
477
|
margin-bottom: 6px;
|
|
@@ -605,8 +665,9 @@ td:first-child,
|
|
|
605
665
|
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
606
666
|
overflow: visible;
|
|
607
667
|
border: 1px solid var(--hairline);
|
|
608
|
-
border-radius: var(--radius-
|
|
668
|
+
border-radius: var(--radius-lg);
|
|
609
669
|
background: var(--surface);
|
|
670
|
+
box-shadow: var(--shadow-panel);
|
|
610
671
|
height: 100%;
|
|
611
672
|
}
|
|
612
673
|
|
|
@@ -683,10 +744,10 @@ td:first-child,
|
|
|
683
744
|
color: var(--muted);
|
|
684
745
|
}
|
|
685
746
|
.kpi-card.kpi-risk .kpi-value {
|
|
686
|
-
color: var(--amber);
|
|
747
|
+
color: color-mix(in srgb, var(--amber) 80%, var(--ink));
|
|
687
748
|
}
|
|
688
749
|
.kpi-card.kpi-danger .kpi-value {
|
|
689
|
-
color: var(--red);
|
|
750
|
+
color: color-mix(in srgb, var(--red) 78%, var(--ink));
|
|
690
751
|
}
|
|
691
752
|
.kpi-value-with-link {
|
|
692
753
|
display: flex;
|
|
@@ -823,16 +884,15 @@ td:first-child,
|
|
|
823
884
|
align-items: start;
|
|
824
885
|
column-gap: var(--space-3);
|
|
825
886
|
row-gap: 4px;
|
|
826
|
-
padding: 14px;
|
|
827
|
-
|
|
828
|
-
border:
|
|
829
|
-
border-left: 3px solid var(--red);
|
|
887
|
+
padding: 14px 16px;
|
|
888
|
+
border: 1px solid var(--hairline);
|
|
889
|
+
border-left: 3px solid color-mix(in srgb, var(--red) 55%, var(--hairline));
|
|
830
890
|
border-radius: var(--radius-md);
|
|
831
|
-
background:
|
|
891
|
+
background: color-mix(in srgb, var(--red) 4%, var(--surface));
|
|
832
892
|
}
|
|
833
893
|
.risk-block-label {
|
|
834
894
|
grid-area: label;
|
|
835
|
-
color: var(--
|
|
895
|
+
color: var(--muted);
|
|
836
896
|
font-size: 11px;
|
|
837
897
|
font-weight: 700;
|
|
838
898
|
letter-spacing: 0.04em;
|
|
@@ -841,15 +901,18 @@ td:first-child,
|
|
|
841
901
|
.risk-total {
|
|
842
902
|
grid-area: total;
|
|
843
903
|
margin: 0;
|
|
844
|
-
color: var(--
|
|
845
|
-
font-size:
|
|
846
|
-
font-weight:
|
|
904
|
+
color: var(--ink);
|
|
905
|
+
font-size: 28px;
|
|
906
|
+
font-weight: 650;
|
|
847
907
|
line-height: 1;
|
|
848
908
|
font-variant-numeric: tabular-nums;
|
|
849
909
|
align-self: center;
|
|
850
910
|
text-align: right;
|
|
851
911
|
min-width: 1.5ch;
|
|
852
912
|
}
|
|
913
|
+
.risk-block:not(:has(.risk-empty)) .risk-total {
|
|
914
|
+
color: color-mix(in srgb, var(--red) 82%, var(--ink));
|
|
915
|
+
}
|
|
853
916
|
.risk-summary {
|
|
854
917
|
grid-area: summary;
|
|
855
918
|
margin: 0;
|
|
@@ -871,13 +934,15 @@ td:first-child,
|
|
|
871
934
|
align-items: flex-start;
|
|
872
935
|
gap: var(--space-3);
|
|
873
936
|
padding: 14px 16px;
|
|
874
|
-
border: 1px solid
|
|
937
|
+
border: 1px solid var(--hairline);
|
|
938
|
+
border-left: 3px solid color-mix(in srgb, var(--red) 55%, var(--hairline));
|
|
875
939
|
border-radius: var(--radius-lg);
|
|
876
|
-
background:
|
|
940
|
+
background: color-mix(in srgb, var(--red) 4%, var(--surface));
|
|
941
|
+
box-shadow: var(--shadow-panel);
|
|
877
942
|
}
|
|
878
943
|
.projection-fault > i {
|
|
879
|
-
color: var(--red);
|
|
880
|
-
font-size:
|
|
944
|
+
color: color-mix(in srgb, var(--red) 75%, var(--ink));
|
|
945
|
+
font-size: 18px;
|
|
881
946
|
line-height: 1.4;
|
|
882
947
|
}
|
|
883
948
|
.projection-fault-body {
|
|
@@ -936,21 +1001,24 @@ td:first-child,
|
|
|
936
1001
|
gap: 10px;
|
|
937
1002
|
}
|
|
938
1003
|
.active-dag-card {
|
|
939
|
-
padding: 14px;
|
|
1004
|
+
padding: 14px 16px;
|
|
940
1005
|
border: 1px solid var(--hairline);
|
|
941
1006
|
border-radius: var(--radius-md);
|
|
942
|
-
background: var(--
|
|
1007
|
+
background: var(--surface);
|
|
943
1008
|
border-left: 3px solid var(--hairline-strong);
|
|
944
|
-
|
|
1009
|
+
box-shadow: var(--shadow-panel);
|
|
1010
|
+
transition:
|
|
1011
|
+
border-color var(--transition-fast),
|
|
1012
|
+
box-shadow var(--transition-fast);
|
|
945
1013
|
}
|
|
946
1014
|
.active-dag-card-running {
|
|
947
|
-
border-left-color: var(--orange);
|
|
948
|
-
background:
|
|
1015
|
+
border-left-color: color-mix(in srgb, var(--orange) 70%, var(--hairline));
|
|
1016
|
+
background: color-mix(in srgb, var(--orange) 4%, var(--surface));
|
|
949
1017
|
}
|
|
950
1018
|
.active-dag-card-attention {
|
|
951
|
-
border-left-color: var(--red);
|
|
952
|
-
border-color:
|
|
953
|
-
background:
|
|
1019
|
+
border-left-color: color-mix(in srgb, var(--red) 55%, var(--hairline));
|
|
1020
|
+
border-color: var(--hairline);
|
|
1021
|
+
background: color-mix(in srgb, var(--red) 4%, var(--surface));
|
|
954
1022
|
}
|
|
955
1023
|
.active-dag-header {
|
|
956
1024
|
display: flex;
|
|
@@ -986,14 +1054,20 @@ td:first-child,
|
|
|
986
1054
|
grid-template-columns: minmax(120px, 0.9fr) minmax(88px, 0.55fr) minmax(0, 1.6fr) auto;
|
|
987
1055
|
align-items: center;
|
|
988
1056
|
gap: var(--space-3);
|
|
989
|
-
padding:
|
|
1057
|
+
padding: 12px 14px;
|
|
990
1058
|
border: 1px solid var(--hairline);
|
|
991
1059
|
border-radius: var(--radius-md);
|
|
992
1060
|
background: var(--surface);
|
|
1061
|
+
box-shadow: var(--shadow-panel);
|
|
993
1062
|
cursor: pointer;
|
|
1063
|
+
transition:
|
|
1064
|
+
border-color var(--transition-fast),
|
|
1065
|
+
background-color var(--transition-fast),
|
|
1066
|
+
transform var(--transition-fast);
|
|
994
1067
|
}
|
|
995
1068
|
.feature-decision-row:hover {
|
|
996
|
-
border-color: var(--hairline
|
|
1069
|
+
border-color: color-mix(in srgb, var(--orange) 35%, var(--hairline));
|
|
1070
|
+
background: color-mix(in srgb, var(--orange) 3%, var(--surface));
|
|
997
1071
|
}
|
|
998
1072
|
.feature-decision-id {
|
|
999
1073
|
min-width: 0;
|
|
@@ -1014,7 +1088,7 @@ td:first-child,
|
|
|
1014
1088
|
white-space: nowrap;
|
|
1015
1089
|
}
|
|
1016
1090
|
.feature-decision-open {
|
|
1017
|
-
color: var(--
|
|
1091
|
+
color: var(--orange-active);
|
|
1018
1092
|
font-size: 12px;
|
|
1019
1093
|
font-weight: 700;
|
|
1020
1094
|
white-space: nowrap;
|
|
@@ -1052,7 +1126,7 @@ table {
|
|
|
1052
1126
|
}
|
|
1053
1127
|
th,
|
|
1054
1128
|
td {
|
|
1055
|
-
padding:
|
|
1129
|
+
padding: 12px 14px;
|
|
1056
1130
|
border-bottom: 1px solid var(--hairline);
|
|
1057
1131
|
text-align: left;
|
|
1058
1132
|
vertical-align: top;
|
|
@@ -1061,10 +1135,11 @@ th {
|
|
|
1061
1135
|
position: sticky;
|
|
1062
1136
|
top: 0;
|
|
1063
1137
|
z-index: 2;
|
|
1064
|
-
background: var(--
|
|
1065
|
-
color: var(--
|
|
1138
|
+
background: color-mix(in srgb, var(--canvas-soft) 88%, var(--surface));
|
|
1139
|
+
color: var(--muted);
|
|
1066
1140
|
font-size: 11px;
|
|
1067
1141
|
font-weight: 700;
|
|
1142
|
+
letter-spacing: 0.02em;
|
|
1068
1143
|
}
|
|
1069
1144
|
td {
|
|
1070
1145
|
color: var(--body);
|
|
@@ -1076,25 +1151,25 @@ tbody tr {
|
|
|
1076
1151
|
transition: background-color var(--transition-fast);
|
|
1077
1152
|
}
|
|
1078
1153
|
tbody tr:hover {
|
|
1079
|
-
background:
|
|
1154
|
+
background: color-mix(in srgb, var(--orange) 4%, var(--surface));
|
|
1080
1155
|
}
|
|
1081
1156
|
tr.clickable {
|
|
1082
1157
|
cursor: pointer;
|
|
1083
1158
|
}
|
|
1084
1159
|
tr.clickable:focus-within {
|
|
1085
|
-
outline: 2px solid var(--orange);
|
|
1160
|
+
outline: 2px solid color-mix(in srgb, var(--orange) 55%, transparent);
|
|
1086
1161
|
outline-offset: -2px;
|
|
1087
1162
|
}
|
|
1088
1163
|
|
|
1089
1164
|
.badge {
|
|
1090
1165
|
display: inline-flex;
|
|
1091
1166
|
align-items: center;
|
|
1092
|
-
min-height:
|
|
1093
|
-
padding: 2px
|
|
1094
|
-
border: 1px solid
|
|
1095
|
-
border-radius:
|
|
1096
|
-
background:
|
|
1097
|
-
color: var(--
|
|
1167
|
+
min-height: 24px;
|
|
1168
|
+
padding: 2px 10px;
|
|
1169
|
+
border: 1px solid transparent;
|
|
1170
|
+
border-radius: var(--radius-pill);
|
|
1171
|
+
background: var(--surface-muted);
|
|
1172
|
+
color: var(--body);
|
|
1098
1173
|
font-size: 11px;
|
|
1099
1174
|
font-weight: 700;
|
|
1100
1175
|
line-height: 1.2;
|
|
@@ -1106,23 +1181,23 @@ tr.clickable:focus-within {
|
|
|
1106
1181
|
.badge-completed,
|
|
1107
1182
|
.badge-done,
|
|
1108
1183
|
.liveness-active {
|
|
1109
|
-
color: var(--green);
|
|
1110
|
-
background:
|
|
1184
|
+
color: color-mix(in srgb, var(--green) 78%, var(--ink));
|
|
1185
|
+
background: color-mix(in srgb, var(--mint) 45%, var(--surface));
|
|
1111
1186
|
}
|
|
1112
1187
|
.badge-failed,
|
|
1113
1188
|
.badge-error,
|
|
1114
1189
|
.liveness-stale {
|
|
1115
|
-
color: var(--red);
|
|
1116
|
-
background:
|
|
1190
|
+
color: color-mix(in srgb, var(--red) 78%, var(--ink));
|
|
1191
|
+
background: color-mix(in srgb, var(--red) 8%, var(--surface));
|
|
1117
1192
|
}
|
|
1118
1193
|
.badge-partial-failed {
|
|
1119
|
-
color:
|
|
1120
|
-
background:
|
|
1194
|
+
color: color-mix(in srgb, var(--red) 70%, var(--ink));
|
|
1195
|
+
background: color-mix(in srgb, var(--red) 6%, var(--surface));
|
|
1121
1196
|
}
|
|
1122
1197
|
.badge-running,
|
|
1123
1198
|
.badge-started {
|
|
1124
1199
|
color: var(--orange-active);
|
|
1125
|
-
background:
|
|
1200
|
+
background: var(--orange-soft);
|
|
1126
1201
|
}
|
|
1127
1202
|
.badge-pending,
|
|
1128
1203
|
.badge-queued,
|
|
@@ -1134,8 +1209,8 @@ tr.clickable:focus-within {
|
|
|
1134
1209
|
.badge-skipped,
|
|
1135
1210
|
.badge-reused,
|
|
1136
1211
|
.liveness-quiet {
|
|
1137
|
-
color: var(--blue);
|
|
1138
|
-
background:
|
|
1212
|
+
color: color-mix(in srgb, var(--blue) 75%, var(--ink));
|
|
1213
|
+
background: color-mix(in srgb, var(--blue) 8%, var(--surface));
|
|
1139
1214
|
}
|
|
1140
1215
|
.liveness-timeout-risk {
|
|
1141
1216
|
color: var(--amber);
|
|
@@ -1159,8 +1234,10 @@ tr.clickable:focus-within {
|
|
|
1159
1234
|
min-width: 0;
|
|
1160
1235
|
padding: 0;
|
|
1161
1236
|
overflow: hidden;
|
|
1162
|
-
border
|
|
1163
|
-
|
|
1237
|
+
border: 1px solid var(--hairline);
|
|
1238
|
+
border-radius: var(--radius-lg);
|
|
1239
|
+
background: var(--surface);
|
|
1240
|
+
box-shadow: var(--shadow-soft);
|
|
1164
1241
|
opacity: 0;
|
|
1165
1242
|
pointer-events: none;
|
|
1166
1243
|
transform: translateX(calc(100% + 24px));
|
|
@@ -1225,9 +1302,9 @@ body.is-resizing-dag-graph {
|
|
|
1225
1302
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
1226
1303
|
gap: var(--space-3);
|
|
1227
1304
|
align-items: start;
|
|
1228
|
-
padding: var(--space-4) var(--space-
|
|
1305
|
+
padding: var(--space-4) var(--space-5) var(--space-3);
|
|
1229
1306
|
border-bottom: 1px solid var(--hairline);
|
|
1230
|
-
background: var(--canvas-soft);
|
|
1307
|
+
background: color-mix(in srgb, var(--canvas-soft) 80%, var(--surface));
|
|
1231
1308
|
}
|
|
1232
1309
|
.dag-inspector-title {
|
|
1233
1310
|
display: grid;
|
|
@@ -1255,8 +1332,8 @@ body.is-resizing-dag-graph {
|
|
|
1255
1332
|
place-items: center;
|
|
1256
1333
|
width: 32px;
|
|
1257
1334
|
height: 32px;
|
|
1258
|
-
border: 1px solid var(--hairline
|
|
1259
|
-
border-radius: var(--radius-
|
|
1335
|
+
border: 1px solid var(--hairline);
|
|
1336
|
+
border-radius: var(--radius-md);
|
|
1260
1337
|
background: var(--surface);
|
|
1261
1338
|
color: var(--body);
|
|
1262
1339
|
cursor: pointer;
|
|
@@ -1265,19 +1342,27 @@ body.is-resizing-dag-graph {
|
|
|
1265
1342
|
.dag-inspector-close:focus-visible {
|
|
1266
1343
|
border-color: var(--orange);
|
|
1267
1344
|
color: var(--orange-active);
|
|
1345
|
+
background: var(--orange-soft);
|
|
1268
1346
|
outline: none;
|
|
1269
1347
|
}
|
|
1270
1348
|
.dag-inspector-tabs {
|
|
1271
1349
|
display: flex;
|
|
1272
1350
|
grid-column: 1 / -1;
|
|
1273
1351
|
gap: 4px;
|
|
1274
|
-
margin-top:
|
|
1352
|
+
margin-top: 4px;
|
|
1353
|
+
padding: 4px;
|
|
1354
|
+
border: 1px solid var(--hairline);
|
|
1355
|
+
border-radius: var(--radius-pill);
|
|
1356
|
+
background: var(--surface);
|
|
1357
|
+
width: fit-content;
|
|
1358
|
+
max-width: 100%;
|
|
1359
|
+
flex-wrap: wrap;
|
|
1275
1360
|
}
|
|
1276
1361
|
.dag-inspector-tab {
|
|
1277
|
-
min-height:
|
|
1278
|
-
padding: 0
|
|
1362
|
+
min-height: 30px;
|
|
1363
|
+
padding: 0 12px;
|
|
1279
1364
|
border: 1px solid transparent;
|
|
1280
|
-
border-radius: var(--radius-
|
|
1365
|
+
border-radius: var(--radius-pill);
|
|
1281
1366
|
background: transparent;
|
|
1282
1367
|
color: var(--muted);
|
|
1283
1368
|
font-size: 12px;
|
|
@@ -1290,9 +1375,9 @@ body.is-resizing-dag-graph {
|
|
|
1290
1375
|
outline: none;
|
|
1291
1376
|
}
|
|
1292
1377
|
.dag-inspector-tab[aria-selected="true"] {
|
|
1293
|
-
border-color:
|
|
1294
|
-
background:
|
|
1295
|
-
color:
|
|
1378
|
+
border-color: transparent;
|
|
1379
|
+
background: var(--ink);
|
|
1380
|
+
color: #fff;
|
|
1296
1381
|
}
|
|
1297
1382
|
.dag-inspector-content {
|
|
1298
1383
|
min-height: 0;
|
|
@@ -1322,19 +1407,21 @@ body.is-resizing-dag-graph {
|
|
|
1322
1407
|
}
|
|
1323
1408
|
.dag-graph-reset {
|
|
1324
1409
|
min-height: 32px;
|
|
1325
|
-
padding: 0
|
|
1326
|
-
border: 1px solid var(--hairline
|
|
1327
|
-
border-radius: var(--radius-
|
|
1410
|
+
padding: 0 12px;
|
|
1411
|
+
border: 1px solid var(--hairline);
|
|
1412
|
+
border-radius: var(--radius-pill);
|
|
1328
1413
|
background: var(--surface);
|
|
1329
1414
|
color: var(--ink);
|
|
1330
1415
|
font-size: 12px;
|
|
1331
1416
|
font-weight: 650;
|
|
1332
1417
|
cursor: pointer;
|
|
1418
|
+
box-shadow: var(--shadow-panel);
|
|
1333
1419
|
}
|
|
1334
1420
|
.dag-graph-reset:hover,
|
|
1335
1421
|
.dag-graph-reset:focus-visible {
|
|
1336
1422
|
border-color: var(--orange);
|
|
1337
1423
|
color: var(--orange-active);
|
|
1424
|
+
background: var(--orange-soft);
|
|
1338
1425
|
outline: none;
|
|
1339
1426
|
}
|
|
1340
1427
|
.dag-graph-viewport {
|
|
@@ -1342,23 +1429,26 @@ body.is-resizing-dag-graph {
|
|
|
1342
1429
|
max-height: 560px;
|
|
1343
1430
|
overflow: auto;
|
|
1344
1431
|
border: 1px solid var(--hairline);
|
|
1345
|
-
border-radius: var(--radius-
|
|
1346
|
-
background:
|
|
1432
|
+
border-radius: var(--radius-lg);
|
|
1433
|
+
background:
|
|
1434
|
+
radial-gradient(800px 280px at 0% 0%, rgb(241 216 203 / 28%), transparent 55%),
|
|
1435
|
+
var(--canvas-soft);
|
|
1347
1436
|
scroll-behavior: auto;
|
|
1437
|
+
box-shadow: inset 0 1px 0 rgb(255 255 255 / 60%);
|
|
1348
1438
|
}
|
|
1349
1439
|
.dag-graph {
|
|
1350
1440
|
display: block;
|
|
1351
1441
|
}
|
|
1352
1442
|
.dag-edge {
|
|
1353
1443
|
fill: none;
|
|
1354
|
-
stroke: var(--hairline-strong);
|
|
1355
|
-
stroke-width:
|
|
1444
|
+
stroke: color-mix(in srgb, var(--hairline-strong) 80%, var(--muted));
|
|
1445
|
+
stroke-width: 1.75;
|
|
1356
1446
|
transition:
|
|
1357
1447
|
opacity var(--transition-fast),
|
|
1358
1448
|
stroke var(--transition-fast);
|
|
1359
1449
|
}
|
|
1360
1450
|
#dag-arrow path {
|
|
1361
|
-
fill: var(--hairline-strong);
|
|
1451
|
+
fill: color-mix(in srgb, var(--hairline-strong) 80%, var(--muted));
|
|
1362
1452
|
}
|
|
1363
1453
|
.dag-graph-node {
|
|
1364
1454
|
cursor: pointer;
|
|
@@ -1366,8 +1456,9 @@ body.is-resizing-dag-graph {
|
|
|
1366
1456
|
}
|
|
1367
1457
|
.dag-graph-node rect {
|
|
1368
1458
|
fill: var(--surface);
|
|
1369
|
-
stroke: var(--hairline
|
|
1459
|
+
stroke: var(--hairline);
|
|
1370
1460
|
stroke-width: 1.5;
|
|
1461
|
+
filter: drop-shadow(0 1px 2px rgb(38 37 30 / 4%));
|
|
1371
1462
|
}
|
|
1372
1463
|
.dag-graph-node:hover rect,
|
|
1373
1464
|
.dag-graph-node:focus-visible rect {
|
|
@@ -1379,17 +1470,18 @@ body.is-resizing-dag-graph {
|
|
|
1379
1470
|
}
|
|
1380
1471
|
.dag-graph-node.selected rect {
|
|
1381
1472
|
stroke: var(--orange);
|
|
1382
|
-
stroke-width:
|
|
1473
|
+
stroke-width: 2.5;
|
|
1474
|
+
fill: color-mix(in srgb, var(--orange) 6%, var(--surface));
|
|
1383
1475
|
}
|
|
1384
1476
|
.dag-graph-node.status-running rect,
|
|
1385
1477
|
.dag-graph-node.status-started rect {
|
|
1386
1478
|
stroke: var(--orange);
|
|
1387
|
-
fill:
|
|
1479
|
+
fill: color-mix(in srgb, var(--orange) 8%, var(--surface));
|
|
1388
1480
|
}
|
|
1389
1481
|
.dag-graph-node.status-failed rect,
|
|
1390
1482
|
.dag-graph-node.status-error rect {
|
|
1391
|
-
stroke: var(--red);
|
|
1392
|
-
fill:
|
|
1483
|
+
stroke: color-mix(in srgb, var(--red) 70%, var(--hairline));
|
|
1484
|
+
fill: color-mix(in srgb, var(--red) 6%, var(--surface));
|
|
1393
1485
|
}
|
|
1394
1486
|
.dag-graph-node.status-succeeded:hover rect,
|
|
1395
1487
|
.dag-graph-node.status-succeeded:focus-visible rect,
|
|
@@ -1399,15 +1491,15 @@ body.is-resizing-dag-graph {
|
|
|
1399
1491
|
.dag-graph-node.status-completed:focus-visible rect,
|
|
1400
1492
|
.dag-graph-node.status-done:hover rect,
|
|
1401
1493
|
.dag-graph-node.status-done:focus-visible rect {
|
|
1402
|
-
stroke: var(--green);
|
|
1403
|
-
fill:
|
|
1494
|
+
stroke: color-mix(in srgb, var(--green) 70%, var(--hairline));
|
|
1495
|
+
fill: color-mix(in srgb, var(--mint) 40%, var(--surface));
|
|
1404
1496
|
}
|
|
1405
1497
|
.dag-graph-node.selected.status-succeeded rect,
|
|
1406
1498
|
.dag-graph-node.selected.status-finished rect,
|
|
1407
1499
|
.dag-graph-node.selected.status-completed rect,
|
|
1408
1500
|
.dag-graph-node.selected.status-done rect {
|
|
1409
|
-
stroke: var(--green);
|
|
1410
|
-
fill:
|
|
1501
|
+
stroke: color-mix(in srgb, var(--green) 70%, var(--hairline));
|
|
1502
|
+
fill: color-mix(in srgb, var(--mint) 40%, var(--surface));
|
|
1411
1503
|
}
|
|
1412
1504
|
.dag-graph-node.status-skipped rect {
|
|
1413
1505
|
stroke-dasharray: 5 4;
|
|
@@ -1861,16 +1953,16 @@ body.is-resizing-dag-graph {
|
|
|
1861
1953
|
.spec-evidence-list li > i { flex-shrink: 0; margin-top: 2px; color: var(--muted); font-size: 13px; }
|
|
1862
1954
|
.spec-evidence-list code { font-size: 11px; }
|
|
1863
1955
|
.spec-evidence-time { margin-left: auto; color: var(--muted); font-size: 10px; font-variant-numeric: tabular-nums; white-space: nowrap; }
|
|
1864
|
-
.spec-evidence-warning { display: flex; align-items: flex-start; gap: 8px; margin-top: var(--space-4); padding: 10px 12px; border: 1px solid color-mix(in srgb, var(--amber)
|
|
1956
|
+
.spec-evidence-warning { display: flex; align-items: flex-start; gap: 8px; margin-top: var(--space-4); padding: 10px 12px; border: 1px solid var(--hairline); border-left: 3px solid color-mix(in srgb, var(--amber) 60%, var(--hairline)); border-radius: var(--radius-md); background: color-mix(in srgb, var(--amber) 8%, var(--surface)); color: var(--body); font-size: 12px; line-height: 1.6; }
|
|
1865
1957
|
.spec-evidence-warning > i { flex-shrink: 0; margin-top: 2px; color: var(--amber); }
|
|
1866
|
-
.spec-evidence-file-btn { display: flex; align-items: flex-start; gap: 6px; width: 100%; padding:
|
|
1867
|
-
.spec-evidence-file-btn:hover, .spec-evidence-file-btn:focus-visible { background:
|
|
1868
|
-
.spec-evidence-file-btn:focus-visible { box-shadow: 0 0 0 2px var(--
|
|
1958
|
+
.spec-evidence-file-btn { display: flex; align-items: flex-start; gap: 6px; width: 100%; padding: 6px 8px; background: none; border: none; text-align: left; cursor: pointer; color: inherit; font: inherit; line-height: 1.5; overflow-wrap: anywhere; border-radius: var(--radius-md); }
|
|
1959
|
+
.spec-evidence-file-btn:hover, .spec-evidence-file-btn:focus-visible { background: var(--orange-soft); outline: none; }
|
|
1960
|
+
.spec-evidence-file-btn:focus-visible { box-shadow: 0 0 0 2px color-mix(in srgb, var(--orange) 35%, transparent); }
|
|
1869
1961
|
.spec-evidence-detail { display: grid; gap: var(--space-3); }
|
|
1870
|
-
.spec-evidence-back { display: inline-flex; align-items: center; gap: 6px; padding:
|
|
1871
|
-
.spec-evidence-back:hover, .spec-evidence-back:focus-visible { background:
|
|
1962
|
+
.spec-evidence-back { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--hairline); border-radius: var(--radius-pill); background: var(--surface); color: var(--ink); font-size: 12px; font-weight: 650; cursor: pointer; }
|
|
1963
|
+
.spec-evidence-back:hover, .spec-evidence-back:focus-visible { background: var(--orange-soft); border-color: var(--orange); color: var(--orange-active); outline: none; }
|
|
1872
1964
|
.spec-evidence-detail-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; color: var(--body); }
|
|
1873
|
-
.spec-evidence-detail-content { min-height: 0; max-width: 100%; margin: 0; padding: var(--space-3); border: 1px solid var(--hairline); border-radius: var(--radius-
|
|
1965
|
+
.spec-evidence-detail-content { min-height: 0; max-width: 100%; margin: 0; padding: var(--space-3); border: 1px solid var(--hairline); border-radius: var(--radius-md); background: var(--canvas-soft); white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; line-height: 1.6; }
|
|
1874
1966
|
.spec-evidence-detail-error { margin: 0; color: var(--red, #c00); font-size: 12px; }
|
|
1875
1967
|
.spec-evidence-detail-truncated { margin: 0; color: var(--muted); font-size: 11px; }
|
|
1876
1968
|
|
|
@@ -1956,22 +2048,26 @@ body.is-resizing-dag-graph {
|
|
|
1956
2048
|
place-items: center;
|
|
1957
2049
|
width: 16px;
|
|
1958
2050
|
height: 16px;
|
|
1959
|
-
border:
|
|
2051
|
+
border: 1.5px solid var(--hairline-strong);
|
|
1960
2052
|
border-radius: 50%;
|
|
1961
2053
|
color: var(--muted);
|
|
1962
2054
|
font-size: 10px;
|
|
2055
|
+
background: var(--surface);
|
|
1963
2056
|
}
|
|
1964
2057
|
.step-marker.succeeded {
|
|
1965
|
-
border-color: var(--green);
|
|
1966
|
-
color: var(--green);
|
|
2058
|
+
border-color: color-mix(in srgb, var(--green) 55%, var(--hairline));
|
|
2059
|
+
color: color-mix(in srgb, var(--green) 75%, var(--ink));
|
|
2060
|
+
background: color-mix(in srgb, var(--mint) 40%, var(--surface));
|
|
1967
2061
|
}
|
|
1968
2062
|
.step-marker.running {
|
|
1969
2063
|
border-color: var(--orange);
|
|
1970
2064
|
color: var(--orange-active);
|
|
2065
|
+
background: var(--orange-soft);
|
|
1971
2066
|
}
|
|
1972
2067
|
.step-marker.failed {
|
|
1973
|
-
border-color: var(--red);
|
|
1974
|
-
color: var(--red);
|
|
2068
|
+
border-color: color-mix(in srgb, var(--red) 55%, var(--hairline));
|
|
2069
|
+
color: color-mix(in srgb, var(--red) 75%, var(--ink));
|
|
2070
|
+
background: color-mix(in srgb, var(--red) 8%, var(--surface));
|
|
1975
2071
|
}
|
|
1976
2072
|
.step-name {
|
|
1977
2073
|
min-width: 0;
|
|
@@ -2053,7 +2149,8 @@ body.is-resizing-dag-graph {
|
|
|
2053
2149
|
.dag-run-timeline-item:focus-visible {
|
|
2054
2150
|
margin-inline: -8px;
|
|
2055
2151
|
padding-inline: 8px;
|
|
2056
|
-
background:
|
|
2152
|
+
background: color-mix(in srgb, var(--orange) 4%, transparent);
|
|
2153
|
+
border-radius: var(--radius-md);
|
|
2057
2154
|
outline: none;
|
|
2058
2155
|
}
|
|
2059
2156
|
.dag-run-timeline-rail {
|
|
@@ -2070,16 +2167,17 @@ body.is-resizing-dag-graph {
|
|
|
2070
2167
|
border: 2px solid var(--surface);
|
|
2071
2168
|
border-radius: 50%;
|
|
2072
2169
|
background: var(--muted-soft);
|
|
2170
|
+
box-shadow: 0 0 0 1px var(--hairline);
|
|
2073
2171
|
}
|
|
2074
2172
|
.dag-run-timeline-dot.status-finished,
|
|
2075
2173
|
.dag-run-timeline-dot.status-succeeded,
|
|
2076
2174
|
.dag-run-timeline-dot.status-completed {
|
|
2077
|
-
background: var(--green);
|
|
2175
|
+
background: color-mix(in srgb, var(--green) 75%, white);
|
|
2078
2176
|
}
|
|
2079
2177
|
.dag-run-timeline-dot.status-failed,
|
|
2080
2178
|
.dag-run-timeline-dot.status-error,
|
|
2081
2179
|
.dag-run-timeline-dot.status-partial_failed {
|
|
2082
|
-
background: var(--red);
|
|
2180
|
+
background: color-mix(in srgb, var(--red) 75%, white);
|
|
2083
2181
|
}
|
|
2084
2182
|
.dag-run-timeline-dot.status-running,
|
|
2085
2183
|
.dag-run-timeline-dot.status-started {
|
|
@@ -2107,8 +2205,8 @@ body.is-resizing-dag-graph {
|
|
|
2107
2205
|
|
|
2108
2206
|
#failures-list .row-failed td:first-child,
|
|
2109
2207
|
#failures-list .row-blocked td:first-child {
|
|
2110
|
-
color: var(--red);
|
|
2111
|
-
font-weight:
|
|
2208
|
+
color: color-mix(in srgb, var(--red) 72%, var(--ink));
|
|
2209
|
+
font-weight: 650;
|
|
2112
2210
|
}
|
|
2113
2211
|
|
|
2114
2212
|
@media (max-width: 1320px) {
|
|
@@ -2154,7 +2252,7 @@ body.is-resizing-dag-graph {
|
|
|
2154
2252
|
width: min(100% - 32px, 1680px);
|
|
2155
2253
|
}
|
|
2156
2254
|
.site-header {
|
|
2157
|
-
grid-template-columns: auto auto
|
|
2255
|
+
grid-template-columns: auto 1fr auto;
|
|
2158
2256
|
grid-template-areas: "brand nav status" "crumb crumb crumb";
|
|
2159
2257
|
row-gap: 8px;
|
|
2160
2258
|
}
|
|
@@ -2267,54 +2365,61 @@ body.is-resizing-dag-graph {
|
|
|
2267
2365
|
|
|
2268
2366
|
/* R3: object relation bar + recommended commands (copy-only) */
|
|
2269
2367
|
.object-relations-panel {
|
|
2270
|
-
padding: var(--space-
|
|
2368
|
+
padding: var(--space-4) var(--space-5);
|
|
2369
|
+
background: color-mix(in srgb, var(--canvas-soft) 70%, var(--surface));
|
|
2271
2370
|
}
|
|
2272
2371
|
|
|
2273
2372
|
.object-relation-bar {
|
|
2274
2373
|
display: flex;
|
|
2275
2374
|
flex-wrap: wrap;
|
|
2276
2375
|
align-items: center;
|
|
2277
|
-
gap: var(--space-2);
|
|
2278
|
-
font-size:
|
|
2376
|
+
gap: var(--space-2) var(--space-3);
|
|
2377
|
+
font-size: 13px;
|
|
2279
2378
|
}
|
|
2280
2379
|
|
|
2281
2380
|
.object-relation-item {
|
|
2282
2381
|
display: inline-flex;
|
|
2283
2382
|
align-items: baseline;
|
|
2284
|
-
gap: 0.
|
|
2383
|
+
gap: 0.35rem;
|
|
2384
|
+
padding: 4px 10px;
|
|
2385
|
+
border: 1px solid var(--hairline);
|
|
2386
|
+
border-radius: var(--radius-pill);
|
|
2387
|
+
background: var(--surface);
|
|
2285
2388
|
}
|
|
2286
2389
|
|
|
2287
2390
|
.object-relation-label {
|
|
2288
|
-
color: var(--muted
|
|
2289
|
-
font-weight:
|
|
2290
|
-
font-size:
|
|
2291
|
-
|
|
2292
|
-
letter-spacing: 0.04em;
|
|
2391
|
+
color: var(--muted);
|
|
2392
|
+
font-weight: 650;
|
|
2393
|
+
font-size: 11px;
|
|
2394
|
+
letter-spacing: 0.02em;
|
|
2293
2395
|
}
|
|
2294
2396
|
|
|
2295
2397
|
.object-relation-sep {
|
|
2296
|
-
color: var(--muted
|
|
2297
|
-
opacity: 0.
|
|
2398
|
+
color: var(--muted-soft);
|
|
2399
|
+
opacity: 0.8;
|
|
2298
2400
|
user-select: none;
|
|
2299
2401
|
}
|
|
2300
2402
|
|
|
2301
2403
|
.object-link {
|
|
2302
|
-
color: var(--
|
|
2404
|
+
color: var(--orange-active);
|
|
2303
2405
|
text-decoration: none;
|
|
2304
2406
|
word-break: break-all;
|
|
2407
|
+
font-weight: 600;
|
|
2305
2408
|
}
|
|
2306
2409
|
|
|
2307
2410
|
.object-link:hover,
|
|
2308
2411
|
.object-link:focus-visible {
|
|
2309
2412
|
text-decoration: underline;
|
|
2413
|
+
text-underline-offset: 2px;
|
|
2310
2414
|
}
|
|
2311
2415
|
|
|
2312
2416
|
.recommended-command {
|
|
2313
|
-
border: 1px solid var(--
|
|
2314
|
-
border-radius:
|
|
2315
|
-
padding: var(--space-
|
|
2417
|
+
border: 1px solid var(--hairline);
|
|
2418
|
+
border-radius: var(--radius-lg);
|
|
2419
|
+
padding: var(--space-4);
|
|
2316
2420
|
margin: var(--space-2) 0;
|
|
2317
|
-
background:
|
|
2421
|
+
background: var(--surface);
|
|
2422
|
+
box-shadow: var(--shadow-panel);
|
|
2318
2423
|
}
|
|
2319
2424
|
|
|
2320
2425
|
.recommended-command-head {
|
|
@@ -2326,14 +2431,15 @@ body.is-resizing-dag-graph {
|
|
|
2326
2431
|
}
|
|
2327
2432
|
|
|
2328
2433
|
.recommended-command-kind {
|
|
2329
|
-
font-size:
|
|
2330
|
-
font-weight:
|
|
2331
|
-
color: var(--
|
|
2434
|
+
font-size: 11px;
|
|
2435
|
+
font-weight: 700;
|
|
2436
|
+
color: var(--orange-active);
|
|
2437
|
+
letter-spacing: 0.03em;
|
|
2332
2438
|
text-transform: uppercase;
|
|
2333
2439
|
}
|
|
2334
2440
|
|
|
2335
2441
|
.recommended-command-label {
|
|
2336
|
-
font-weight:
|
|
2442
|
+
font-weight: 650;
|
|
2337
2443
|
}
|
|
2338
2444
|
|
|
2339
2445
|
.recommended-command-body {
|
|
@@ -2345,36 +2451,44 @@ body.is-resizing-dag-graph {
|
|
|
2345
2451
|
|
|
2346
2452
|
.recommended-command-text {
|
|
2347
2453
|
flex: 1 1 12rem;
|
|
2348
|
-
font-family:
|
|
2349
|
-
font-size:
|
|
2454
|
+
font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
|
|
2455
|
+
font-size: 12px;
|
|
2350
2456
|
word-break: break-all;
|
|
2351
|
-
background:
|
|
2352
|
-
|
|
2353
|
-
|
|
2457
|
+
background: var(--canvas-soft);
|
|
2458
|
+
border: 1px solid var(--hairline);
|
|
2459
|
+
padding: 0.45rem 0.65rem;
|
|
2460
|
+
border-radius: var(--radius-md);
|
|
2354
2461
|
}
|
|
2355
2462
|
|
|
2356
2463
|
button.copy-command {
|
|
2357
2464
|
appearance: none;
|
|
2358
|
-
border: 1px solid var(--
|
|
2359
|
-
background:
|
|
2360
|
-
border-radius:
|
|
2361
|
-
padding: 0.
|
|
2465
|
+
border: 1px solid var(--hairline);
|
|
2466
|
+
background: var(--surface);
|
|
2467
|
+
border-radius: var(--radius-md);
|
|
2468
|
+
padding: 0.4rem 0.85rem;
|
|
2469
|
+
color: var(--ink);
|
|
2470
|
+
font-size: 12px;
|
|
2471
|
+
font-weight: 650;
|
|
2362
2472
|
cursor: pointer;
|
|
2363
|
-
font-size: 0.85rem;
|
|
2364
2473
|
}
|
|
2365
2474
|
|
|
2366
2475
|
button.copy-command:hover,
|
|
2367
2476
|
button.copy-command:focus-visible {
|
|
2368
|
-
border-color: var(--
|
|
2477
|
+
border-color: var(--orange);
|
|
2478
|
+
color: var(--orange-active);
|
|
2479
|
+
background: var(--orange-soft);
|
|
2480
|
+
outline: none;
|
|
2369
2481
|
}
|
|
2370
2482
|
|
|
2371
2483
|
.executed-facts {
|
|
2372
|
-
border-left: 3px solid
|
|
2484
|
+
border-left: 3px solid color-mix(in srgb, var(--green) 55%, var(--hairline));
|
|
2485
|
+
padding-left: var(--space-3);
|
|
2373
2486
|
}
|
|
2374
2487
|
|
|
2375
2488
|
.advisory-note {
|
|
2376
2489
|
margin: 0 0 var(--space-2);
|
|
2377
2490
|
font-size: 0.85rem;
|
|
2491
|
+
color: var(--muted);
|
|
2378
2492
|
}
|
|
2379
2493
|
|
|
2380
2494
|
.blocking-list {
|
|
@@ -2388,7 +2502,7 @@ button.copy-command:focus-visible {
|
|
|
2388
2502
|
|
|
2389
2503
|
.blocking-meta {
|
|
2390
2504
|
font-size: 0.85rem;
|
|
2391
|
-
color: var(--muted
|
|
2505
|
+
color: var(--muted);
|
|
2392
2506
|
margin: 0.15rem 0 0.35rem;
|
|
2393
2507
|
}
|
|
2394
2508
|
|
|
@@ -2396,18 +2510,19 @@ button.copy-command:focus-visible {
|
|
|
2396
2510
|
|
|
2397
2511
|
/* R5: unified view states + information hierarchy */
|
|
2398
2512
|
.view-state {
|
|
2399
|
-
border-radius: var(--radius
|
|
2400
|
-
padding: var(--space-
|
|
2401
|
-
margin: 0 0 var(--space-3
|
|
2513
|
+
border-radius: var(--radius-lg);
|
|
2514
|
+
padding: var(--space-5) var(--space-6);
|
|
2515
|
+
margin: 0 0 var(--space-3);
|
|
2516
|
+
box-shadow: var(--shadow-panel);
|
|
2402
2517
|
}
|
|
2403
2518
|
.view-state-loading {
|
|
2404
|
-
border: 1px dashed var(--
|
|
2405
|
-
background: var(--
|
|
2406
|
-
color: var(--muted
|
|
2519
|
+
border: 1px dashed var(--hairline-strong);
|
|
2520
|
+
background: var(--canvas-soft);
|
|
2521
|
+
color: var(--muted);
|
|
2407
2522
|
}
|
|
2408
2523
|
.view-state-empty {
|
|
2409
|
-
border: 1px solid var(--
|
|
2410
|
-
background: var(--surface
|
|
2524
|
+
border: 1px solid var(--hairline);
|
|
2525
|
+
background: var(--surface);
|
|
2411
2526
|
}
|
|
2412
2527
|
.view-state-degraded {
|
|
2413
2528
|
/* projection-fault styles also apply */
|