@pennyfarthing/cyclist 10.0.3 → 10.2.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/dist/api/agent-load.d.ts +3 -0
- package/dist/api/agent-load.d.ts.map +1 -0
- package/dist/api/agent-load.js +124 -0
- package/dist/api/agent-load.js.map +1 -0
- package/dist/api/code-markers.d.ts +9 -0
- package/dist/api/code-markers.d.ts.map +1 -0
- package/dist/api/code-markers.js +62 -0
- package/dist/api/code-markers.js.map +1 -0
- package/dist/api/complexity.d.ts +3 -0
- package/dist/api/complexity.d.ts.map +1 -0
- package/dist/api/complexity.js +47 -0
- package/dist/api/complexity.js.map +1 -0
- package/dist/api/dead-code.d.ts +3 -0
- package/dist/api/dead-code.d.ts.map +1 -0
- package/dist/api/dead-code.js +70 -0
- package/dist/api/dead-code.js.map +1 -0
- package/dist/api/dependencies.d.ts +3 -0
- package/dist/api/dependencies.d.ts.map +1 -0
- package/dist/api/dependencies.js +43 -0
- package/dist/api/dependencies.js.map +1 -0
- package/dist/api/git.d.ts +3 -2
- package/dist/api/git.d.ts.map +1 -1
- package/dist/api/git.js +11 -6
- package/dist/api/git.js.map +1 -1
- package/dist/api/health-score.d.ts +3 -0
- package/dist/api/health-score.d.ts.map +1 -0
- package/dist/api/health-score.js +47 -0
- package/dist/api/health-score.js.map +1 -0
- package/dist/api/hotspots.d.ts.map +1 -1
- package/dist/api/hotspots.js +9 -1
- package/dist/api/hotspots.js.map +1 -1
- package/dist/api/index.d.ts +7 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +12 -2
- package/dist/api/index.js.map +1 -1
- package/dist/api/persona.d.ts +2 -0
- package/dist/api/persona.d.ts.map +1 -1
- package/dist/api/persona.js +19 -1
- package/dist/api/persona.js.map +1 -1
- package/dist/api/settings.js +1 -1
- package/dist/api/settings.js.map +1 -1
- package/dist/claude-service.d.ts +8 -2
- package/dist/claude-service.d.ts.map +1 -1
- package/dist/claude-service.js +21 -2
- package/dist/claude-service.js.map +1 -1
- package/dist/git-diff.d.ts.map +1 -1
- package/dist/git-diff.js +6 -5
- package/dist/git-diff.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +11 -2
- package/dist/main.js.map +1 -1
- package/dist/plugin-loader.d.ts +49 -0
- package/dist/plugin-loader.d.ts.map +1 -0
- package/dist/plugin-loader.js +92 -0
- package/dist/plugin-loader.js.map +1 -0
- package/dist/preload.js +12 -1
- package/dist/preload.js.map +1 -1
- package/dist/prime.d.ts +3 -2
- package/dist/prime.d.ts.map +1 -1
- package/dist/prime.js +25 -8
- package/dist/prime.js.map +1 -1
- package/dist/public/css/react.css +1 -1
- package/dist/public/js/react/react.js +50 -39
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +19 -16
- package/dist/server.js.map +1 -1
- package/dist/sprint-data.d.ts +6 -0
- package/dist/sprint-data.d.ts.map +1 -1
- package/dist/sprint-data.js +118 -67
- package/dist/sprint-data.js.map +1 -1
- package/dist/story-parser.js +1 -1
- package/dist/story-parser.js.map +1 -1
- package/dist/theme-metadata.js +2 -2
- package/dist/theme-metadata.js.map +1 -1
- package/dist/websocket.d.ts +0 -6
- package/dist/websocket.d.ts.map +1 -1
- package/dist/websocket.js +36 -40
- package/dist/websocket.js.map +1 -1
- package/package.json +2 -1
- package/portraits/fifth-element/large/cornelius-54343.png +0 -0
- package/portraits/fifth-element/large/diva-53453.png +0 -0
- package/portraits/fifth-element/large/korben-34232.png +0 -0
- package/portraits/fifth-element/large/leeloo-54333.png +0 -0
- package/portraits/fifth-element/large/lindberg-34432.png +0 -0
- package/portraits/fifth-element/large/mondoshawan-55131.png +0 -0
- package/portraits/fifth-element/large/munro-25321.png +0 -0
- package/portraits/fifth-element/large/pacoli-45232.png +0 -0
- package/portraits/fifth-element/large/ruby-53544.png +0 -0
- package/portraits/fifth-element/large/zorg-45312.png +0 -0
- package/portraits/fifth-element/medium/cornelius-54343.png +0 -0
- package/portraits/fifth-element/medium/diva-53453.png +0 -0
- package/portraits/fifth-element/medium/korben-34232.png +0 -0
- package/portraits/fifth-element/medium/leeloo-54333.png +0 -0
- package/portraits/fifth-element/medium/lindberg-34432.png +0 -0
- package/portraits/fifth-element/medium/mondoshawan-55131.png +0 -0
- package/portraits/fifth-element/medium/munro-25321.png +0 -0
- package/portraits/fifth-element/medium/pacoli-45232.png +0 -0
- package/portraits/fifth-element/medium/ruby-53544.png +0 -0
- package/portraits/fifth-element/medium/zorg-45312.png +0 -0
- package/src/public/App.tsx +0 -2
- package/src/public/components/AgentLoadDialog.tsx +202 -0
- package/src/public/components/AgentPopup.tsx +3 -5
- package/src/public/components/ContextSparkline.tsx +56 -0
- package/src/public/components/ControlBar.tsx +140 -6
- package/src/public/components/DeadCodeDialog.tsx +169 -0
- package/src/public/components/DockviewWorkspace.tsx +0 -3
- package/src/public/components/FullFileTree.tsx +18 -4
- package/src/public/components/HealthGauge.tsx +181 -0
- package/src/public/components/MessageView.tsx +23 -6
- package/src/public/components/PersonaHeader.tsx +46 -3
- package/src/public/components/TandemPortrait.tsx +71 -0
- package/src/public/components/ToolCallBlock.tsx +21 -6
- package/src/public/components/dialogs/CodeMarkersDialog.tsx +169 -0
- package/src/public/components/dialogs/ComplexityDialog.tsx +163 -0
- package/src/public/components/dialogs/DependenciesDialog.tsx +120 -0
- package/src/public/components/dialogs/HotspotsDialog.tsx +451 -0
- package/src/public/components/dialogs/ToolDialog.tsx +43 -0
- package/src/public/components/panels/ACPanel.tsx +1 -1
- package/src/public/components/panels/AcceptanceCriteriaPanel.tsx +15 -30
- package/src/public/components/panels/DebugPanel.tsx +79 -3
- package/src/public/components/panels/GitPanel.tsx +25 -30
- package/src/public/components/panels/MessagePanel.tsx +44 -2
- package/src/public/components/panels/SettingsPanel.tsx +4 -4
- package/src/public/components/panels/SprintPanel.tsx +247 -123
- package/src/public/components/panels/index.ts +0 -1
- package/src/public/components/ui/dialog.tsx +3 -3
- package/src/public/css/theme-system.css +98 -11
- package/src/public/hooks/index.ts +4 -0
- package/src/public/hooks/useAgentLoad.ts +105 -0
- package/src/public/hooks/useCodeMarkers.ts +101 -0
- package/src/public/hooks/useColorScheme.ts +25 -10
- package/src/public/hooks/useComplexity.ts +80 -0
- package/src/public/hooks/useDeadCode.ts +99 -0
- package/src/public/hooks/useDependencies.ts +82 -0
- package/src/public/hooks/useHealthScore.ts +69 -0
- package/src/public/hooks/useHotspots.ts +11 -1
- package/src/public/hooks/usePersona.ts +26 -3
- package/src/public/hooks/useSprint.ts +7 -1
- package/src/public/styles/tailwind.css +389 -83
- package/src/public/utils/messageFilters.ts +77 -6
- package/src/public/utils/slash-commands.ts +3 -35
- package/dist/hooks/cyclist-pretooluse-hook.d.ts +0 -60
- package/dist/hooks/cyclist-pretooluse-hook.d.ts.map +0 -1
- package/dist/hooks/cyclist-pretooluse-hook.js +0 -57
- package/dist/hooks/cyclist-pretooluse-hook.js.map +0 -1
- package/dist/hooks/pretooluse-hook.d.ts +0 -89
- package/dist/hooks/pretooluse-hook.d.ts.map +0 -1
- package/dist/hooks/pretooluse-hook.js +0 -235
- package/dist/hooks/pretooluse-hook.js.map +0 -1
- package/dist/notification-sound.d.ts +0 -59
- package/dist/notification-sound.d.ts.map +0 -1
- package/dist/notification-sound.js +0 -219
- package/dist/notification-sound.js.map +0 -1
- package/src/public/types/electron.d.ts +0 -18
|
@@ -20,6 +20,12 @@ export interface SprintStory {
|
|
|
20
20
|
status: 'backlog' | 'in_progress' | 'done' | 'cancelled' | 'blocked';
|
|
21
21
|
jiraKey: string | null;
|
|
22
22
|
hasContext?: boolean;
|
|
23
|
+
assignedTo?: string | null;
|
|
24
|
+
completed?: string | null;
|
|
25
|
+
started?: string | null;
|
|
26
|
+
workflow?: string | null;
|
|
27
|
+
priority?: string | null;
|
|
28
|
+
description?: string | null;
|
|
23
29
|
}
|
|
24
30
|
|
|
25
31
|
export interface SprintEpic {
|
|
@@ -94,7 +100,7 @@ export function useSprint(): UseSprintResult {
|
|
|
94
100
|
const msg = JSON.parse(event.data) as SprintMessage;
|
|
95
101
|
if (msg.type === 'init' || msg.type === 'update') {
|
|
96
102
|
// Extract data, excluding type field
|
|
97
|
-
const { type, ...sprintData } = msg;
|
|
103
|
+
const { type: _type, ...sprintData } = msg;
|
|
98
104
|
setData((prev) => {
|
|
99
105
|
if (!prev) return sprintData as SprintData;
|
|
100
106
|
// Merge partial updates
|
|
@@ -7,6 +7,19 @@
|
|
|
7
7
|
Docking Workspace Styles
|
|
8
8
|
============================================================================= */
|
|
9
9
|
|
|
10
|
+
/* Screen reader only — visually hidden but accessible */
|
|
11
|
+
.visually-hidden {
|
|
12
|
+
position: absolute;
|
|
13
|
+
width: 1px;
|
|
14
|
+
height: 1px;
|
|
15
|
+
padding: 0;
|
|
16
|
+
margin: -1px;
|
|
17
|
+
overflow: hidden;
|
|
18
|
+
clip: rect(0, 0, 0, 0);
|
|
19
|
+
white-space: nowrap;
|
|
20
|
+
border: 0;
|
|
21
|
+
}
|
|
22
|
+
|
|
10
23
|
.cyclist-app {
|
|
11
24
|
position: absolute;
|
|
12
25
|
top: 0;
|
|
@@ -266,6 +279,8 @@
|
|
|
266
279
|
border-bottom: 1px solid var(--border-color, #3c3c3c);
|
|
267
280
|
flex-shrink: 0;
|
|
268
281
|
position: relative;
|
|
282
|
+
overflow: visible;
|
|
283
|
+
min-width: 0;
|
|
269
284
|
}
|
|
270
285
|
|
|
271
286
|
.persona-header.empty {
|
|
@@ -287,10 +302,23 @@
|
|
|
287
302
|
outline-offset: 2px;
|
|
288
303
|
}
|
|
289
304
|
|
|
290
|
-
/* Portrait group: portrait +
|
|
305
|
+
/* Portrait group: portrait + tandem positioned together */
|
|
291
306
|
.persona-portrait-group {
|
|
292
|
-
|
|
307
|
+
container-type: inline-size;
|
|
308
|
+
container-name: portrait-group;
|
|
309
|
+
display: flex;
|
|
310
|
+
flex-direction: column;
|
|
311
|
+
align-items: flex-start;
|
|
312
|
+
gap: 8px;
|
|
293
313
|
flex-shrink: 0;
|
|
314
|
+
width: 100px;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/* Container query: hide backseat portrait when panel is narrow */
|
|
318
|
+
@container portrait-group (max-width: 180px) {
|
|
319
|
+
.persona-tandem-portrait {
|
|
320
|
+
display: none;
|
|
321
|
+
}
|
|
294
322
|
}
|
|
295
323
|
|
|
296
324
|
.persona-portrait {
|
|
@@ -299,6 +327,9 @@
|
|
|
299
327
|
border-radius: 50%;
|
|
300
328
|
overflow: hidden;
|
|
301
329
|
flex-shrink: 0;
|
|
330
|
+
min-width: 48px;
|
|
331
|
+
min-height: 48px;
|
|
332
|
+
aspect-ratio: 1;
|
|
302
333
|
background: var(--bg-tertiary, #2d2d2d);
|
|
303
334
|
display: flex;
|
|
304
335
|
align-items: center;
|
|
@@ -333,8 +364,10 @@
|
|
|
333
364
|
display: flex;
|
|
334
365
|
flex-direction: column;
|
|
335
366
|
gap: 2px;
|
|
336
|
-
min-width: 0;
|
|
337
367
|
flex: 1;
|
|
368
|
+
min-width: 0;
|
|
369
|
+
width: 0;
|
|
370
|
+
overflow: hidden;
|
|
338
371
|
}
|
|
339
372
|
|
|
340
373
|
.persona-branding {
|
|
@@ -356,10 +389,48 @@
|
|
|
356
389
|
font-size: 1.2rem;
|
|
357
390
|
}
|
|
358
391
|
|
|
392
|
+
.persona-header.compact .persona-tandem-portrait {
|
|
393
|
+
display: none;
|
|
394
|
+
}
|
|
395
|
+
|
|
359
396
|
.persona-header.compact .persona-branding {
|
|
360
397
|
height: 32px;
|
|
361
398
|
}
|
|
362
399
|
|
|
400
|
+
/* Tandem portrait: backseat agent below primary (Story 96-1) */
|
|
401
|
+
.persona-tandem-portrait {
|
|
402
|
+
width: 48px;
|
|
403
|
+
height: 48px;
|
|
404
|
+
border-radius: 50%;
|
|
405
|
+
opacity: 0.55;
|
|
406
|
+
transition: opacity 300ms ease-in-out;
|
|
407
|
+
position: relative;
|
|
408
|
+
overflow: hidden;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
.persona-tandem-portrait .tandem-portrait-image {
|
|
412
|
+
width: 100%;
|
|
413
|
+
height: 100%;
|
|
414
|
+
object-fit: cover;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
.persona-tandem-portrait .tandem-portrait-fallback {
|
|
418
|
+
font-size: 1.2rem;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
.tandem-role-badge {
|
|
422
|
+
position: absolute;
|
|
423
|
+
bottom: -2px;
|
|
424
|
+
right: -2px;
|
|
425
|
+
font-size: 9px;
|
|
426
|
+
font-weight: 700;
|
|
427
|
+
line-height: 16px;
|
|
428
|
+
padding: 0 4px;
|
|
429
|
+
border-radius: 8px;
|
|
430
|
+
background: var(--accent-color, #007acc);
|
|
431
|
+
color: #fff;
|
|
432
|
+
}
|
|
433
|
+
|
|
363
434
|
.persona-header.compact .persona-catchphrase {
|
|
364
435
|
display: none;
|
|
365
436
|
}
|
|
@@ -391,18 +462,25 @@
|
|
|
391
462
|
display: flex;
|
|
392
463
|
align-items: center;
|
|
393
464
|
gap: 8px;
|
|
394
|
-
flex-wrap:
|
|
465
|
+
flex-wrap: nowrap;
|
|
466
|
+
overflow: hidden;
|
|
395
467
|
}
|
|
396
468
|
|
|
397
469
|
.persona-character {
|
|
398
470
|
font-weight: 600;
|
|
399
471
|
color: var(--text-primary, #d4d4d4);
|
|
400
472
|
font-size: 0.95rem;
|
|
473
|
+
overflow: hidden;
|
|
474
|
+
text-overflow: ellipsis;
|
|
475
|
+
white-space: nowrap;
|
|
401
476
|
}
|
|
402
477
|
|
|
403
478
|
.persona-theme {
|
|
404
479
|
color: var(--text-secondary, #8b8b8b);
|
|
405
480
|
font-size: 0.8rem;
|
|
481
|
+
overflow: hidden;
|
|
482
|
+
text-overflow: ellipsis;
|
|
483
|
+
white-space: nowrap;
|
|
406
484
|
}
|
|
407
485
|
|
|
408
486
|
.persona-catchphrase {
|
|
@@ -429,10 +507,25 @@
|
|
|
429
507
|
min-height: 0;
|
|
430
508
|
}
|
|
431
509
|
|
|
510
|
+
.message-panel-resize-handle {
|
|
511
|
+
height: 4px;
|
|
512
|
+
flex-shrink: 0;
|
|
513
|
+
cursor: row-resize;
|
|
514
|
+
background: var(--border-color, #3c3c3c);
|
|
515
|
+
transition: background 0.15s ease;
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
.message-panel-resize-handle:hover {
|
|
519
|
+
background: var(--accent-color, #007acc);
|
|
520
|
+
}
|
|
521
|
+
|
|
432
522
|
.message-panel-editor {
|
|
433
523
|
flex-shrink: 0;
|
|
434
|
-
border-top: 1px solid var(--border-color, #3c3c3c);
|
|
435
524
|
background: var(--bg-secondary, #252526);
|
|
525
|
+
overflow: visible;
|
|
526
|
+
display: flex;
|
|
527
|
+
flex-direction: column;
|
|
528
|
+
min-height: 120px;
|
|
436
529
|
}
|
|
437
530
|
|
|
438
531
|
/* Message View - the conversation area */
|
|
@@ -616,6 +709,7 @@
|
|
|
616
709
|
gap: 0.5rem;
|
|
617
710
|
padding: 0.25rem 0;
|
|
618
711
|
margin-bottom: 0.25rem;
|
|
712
|
+
padding-left: 2.75rem; /* align with message content: avatar 2rem + gap 0.75rem */
|
|
619
713
|
}
|
|
620
714
|
|
|
621
715
|
.turn-speaker {
|
|
@@ -752,6 +846,54 @@
|
|
|
752
846
|
animation: avatar-throb 1.2s ease-in-out infinite;
|
|
753
847
|
}
|
|
754
848
|
|
|
849
|
+
/* Backseat thinking indicator - subtler throb for tandem portrait */
|
|
850
|
+
@keyframes tandem-throb {
|
|
851
|
+
0%, 100% {
|
|
852
|
+
transform: scale(1);
|
|
853
|
+
box-shadow: 0 0 0 0 var(--accent-color, #007acc);
|
|
854
|
+
}
|
|
855
|
+
50% {
|
|
856
|
+
transform: scale(1.04);
|
|
857
|
+
box-shadow: 0 0 6px 1px var(--accent-color, #007acc);
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
.avatar-tandem-thinking {
|
|
862
|
+
animation: tandem-throb 1.8s ease-in-out infinite;
|
|
863
|
+
}
|
|
864
|
+
|
|
865
|
+
/* Observation pulse - one-shot on primary portrait when backseat observation injected */
|
|
866
|
+
@keyframes observation-pulse {
|
|
867
|
+
0% {
|
|
868
|
+
box-shadow: 0 0 12px 4px var(--accent-color, #007acc);
|
|
869
|
+
}
|
|
870
|
+
100% {
|
|
871
|
+
box-shadow: 0 0 0 0 var(--accent-color, #007acc);
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
.avatar-observation-pulse {
|
|
876
|
+
animation: observation-pulse 600ms ease-out 1;
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
@media (prefers-reduced-motion: reduce) {
|
|
880
|
+
.avatar-thinking {
|
|
881
|
+
animation: none;
|
|
882
|
+
opacity: 0.85;
|
|
883
|
+
border: 2px solid var(--accent-color, #007acc);
|
|
884
|
+
}
|
|
885
|
+
.avatar-tandem-thinking {
|
|
886
|
+
animation: none;
|
|
887
|
+
opacity: 0.85;
|
|
888
|
+
border: 2px solid var(--accent-color, #007acc);
|
|
889
|
+
}
|
|
890
|
+
.avatar-observation-pulse {
|
|
891
|
+
animation: none;
|
|
892
|
+
opacity: 0.9;
|
|
893
|
+
border: 2px solid var(--accent-color, #007acc);
|
|
894
|
+
}
|
|
895
|
+
}
|
|
896
|
+
|
|
755
897
|
.message-avatar.avatar-fallback::after {
|
|
756
898
|
content: '🤖';
|
|
757
899
|
font-size: 1.25rem;
|
|
@@ -958,7 +1100,7 @@
|
|
|
958
1100
|
display: flex;
|
|
959
1101
|
align-items: center;
|
|
960
1102
|
justify-content: center;
|
|
961
|
-
|
|
1103
|
+
flex: 1;
|
|
962
1104
|
color: var(--text-secondary, #8b8b8b);
|
|
963
1105
|
font-size: 0.875rem;
|
|
964
1106
|
text-align: center;
|
|
@@ -986,12 +1128,15 @@
|
|
|
986
1128
|
.editor-with-controls {
|
|
987
1129
|
display: flex;
|
|
988
1130
|
gap: 8px;
|
|
989
|
-
align-items:
|
|
1131
|
+
align-items: stretch;
|
|
1132
|
+
height: 100%;
|
|
990
1133
|
}
|
|
991
1134
|
|
|
992
1135
|
.editor-area {
|
|
993
1136
|
flex: 1;
|
|
994
1137
|
min-width: 0; /* Prevent overflow */
|
|
1138
|
+
display: flex;
|
|
1139
|
+
flex-direction: column;
|
|
995
1140
|
}
|
|
996
1141
|
|
|
997
1142
|
.editor-container {
|
|
@@ -999,6 +1144,7 @@
|
|
|
999
1144
|
flex-direction: column;
|
|
1000
1145
|
padding: 8px;
|
|
1001
1146
|
min-width: 0; /* Prevent overflow */
|
|
1147
|
+
flex: 1;
|
|
1002
1148
|
}
|
|
1003
1149
|
|
|
1004
1150
|
.mode-toolbar {
|
|
@@ -1032,12 +1178,15 @@
|
|
|
1032
1178
|
.editor-wrapper {
|
|
1033
1179
|
position: relative;
|
|
1034
1180
|
min-width: 0; /* Prevent overflow */
|
|
1181
|
+
flex: 1;
|
|
1182
|
+
display: flex;
|
|
1183
|
+
flex-direction: column;
|
|
1035
1184
|
}
|
|
1036
1185
|
|
|
1037
1186
|
.editor-textarea {
|
|
1038
1187
|
width: 100%;
|
|
1039
1188
|
min-height: 60px;
|
|
1040
|
-
|
|
1189
|
+
flex: 1;
|
|
1041
1190
|
padding: 8px;
|
|
1042
1191
|
background: var(--bg-primary, #1e1e1e);
|
|
1043
1192
|
border: 1px solid var(--border-color, #3c3c3c);
|
|
@@ -1181,6 +1330,7 @@
|
|
|
1181
1330
|
gap: 4px;
|
|
1182
1331
|
padding: 8px;
|
|
1183
1332
|
flex-shrink: 0;
|
|
1333
|
+
align-self: flex-end;
|
|
1184
1334
|
}
|
|
1185
1335
|
|
|
1186
1336
|
.btn-stop {
|
|
@@ -1396,6 +1546,16 @@
|
|
|
1396
1546
|
opacity: 0.7;
|
|
1397
1547
|
}
|
|
1398
1548
|
|
|
1549
|
+
/* Completed Epics Section */
|
|
1550
|
+
.enhanced-sprint-panel [data-section="completed-epics"] .epic-group {
|
|
1551
|
+
opacity: 0.5;
|
|
1552
|
+
border-color: var(--border-color, #3c3c3c);
|
|
1553
|
+
}
|
|
1554
|
+
|
|
1555
|
+
.enhanced-sprint-panel [data-section="completed-epics"] .epic-group:hover {
|
|
1556
|
+
opacity: 0.7;
|
|
1557
|
+
}
|
|
1558
|
+
|
|
1399
1559
|
/* Epic Header */
|
|
1400
1560
|
.enhanced-sprint-panel .epic-header {
|
|
1401
1561
|
display: flex;
|
|
@@ -1510,15 +1670,59 @@
|
|
|
1510
1670
|
background: var(--bg-hover, rgba(255, 255, 255, 0.03));
|
|
1511
1671
|
}
|
|
1512
1672
|
|
|
1513
|
-
.enhanced-sprint-panel .story-item .story-
|
|
1673
|
+
.enhanced-sprint-panel .story-item .story-info {
|
|
1514
1674
|
flex: 1;
|
|
1515
1675
|
min-width: 0;
|
|
1676
|
+
display: flex;
|
|
1677
|
+
flex-direction: column;
|
|
1678
|
+
gap: 1px;
|
|
1679
|
+
}
|
|
1680
|
+
|
|
1681
|
+
.enhanced-sprint-panel .story-item .story-title {
|
|
1516
1682
|
overflow: hidden;
|
|
1517
1683
|
text-overflow: ellipsis;
|
|
1518
1684
|
white-space: nowrap;
|
|
1519
1685
|
font-size: 0.75rem;
|
|
1520
1686
|
}
|
|
1521
1687
|
|
|
1688
|
+
.enhanced-sprint-panel .story-item .story-meta {
|
|
1689
|
+
display: flex;
|
|
1690
|
+
align-items: center;
|
|
1691
|
+
gap: 6px;
|
|
1692
|
+
}
|
|
1693
|
+
|
|
1694
|
+
.enhanced-sprint-panel .story-item .story-assignee {
|
|
1695
|
+
font-size: 0.625rem;
|
|
1696
|
+
color: var(--text-tertiary, #6b6b6b);
|
|
1697
|
+
font-style: italic;
|
|
1698
|
+
}
|
|
1699
|
+
|
|
1700
|
+
.enhanced-sprint-panel .story-item .story-workflow-badge {
|
|
1701
|
+
font-size: 0.5625rem;
|
|
1702
|
+
text-transform: uppercase;
|
|
1703
|
+
letter-spacing: 0.05em;
|
|
1704
|
+
color: var(--text-secondary, #8b8b8b);
|
|
1705
|
+
background: var(--bg-tertiary, #2d2d2d);
|
|
1706
|
+
padding: 0 4px;
|
|
1707
|
+
border-radius: 2px;
|
|
1708
|
+
}
|
|
1709
|
+
|
|
1710
|
+
.enhanced-sprint-panel .story-item .story-completed-date {
|
|
1711
|
+
font-size: 0.625rem;
|
|
1712
|
+
font-variant-numeric: tabular-nums;
|
|
1713
|
+
font-family: var(--font-mono, monospace);
|
|
1714
|
+
color: var(--text-tertiary, #6b6b6b);
|
|
1715
|
+
}
|
|
1716
|
+
|
|
1717
|
+
.enhanced-sprint-panel .story-item .priority-label {
|
|
1718
|
+
font-size: 0.6rem;
|
|
1719
|
+
font-weight: 500;
|
|
1720
|
+
color: var(--text-tertiary, #6b6b6b);
|
|
1721
|
+
flex-shrink: 0;
|
|
1722
|
+
opacity: 0.7;
|
|
1723
|
+
font-family: var(--font-mono, 'SF Mono', Monaco, monospace);
|
|
1724
|
+
}
|
|
1725
|
+
|
|
1522
1726
|
.enhanced-sprint-panel .story-item .story-points {
|
|
1523
1727
|
font-size: 0.65rem;
|
|
1524
1728
|
color: var(--text-secondary, #8b8b8b);
|
|
@@ -1791,42 +1995,41 @@
|
|
|
1791
1995
|
margin-bottom: 4px;
|
|
1792
1996
|
}
|
|
1793
1997
|
|
|
1794
|
-
/* Develop
|
|
1795
|
-
.git-panel .develop-behind
|
|
1998
|
+
/* Develop-behind indicator */
|
|
1999
|
+
.git-panel .develop-behind {
|
|
2000
|
+
color: var(--status-warning, #cca700);
|
|
2001
|
+
}
|
|
2002
|
+
|
|
2003
|
+
/* Sync all repos action bar */
|
|
2004
|
+
.git-panel .git-panel-actions {
|
|
2005
|
+
padding: 0 0 4px;
|
|
2006
|
+
}
|
|
2007
|
+
|
|
2008
|
+
.git-panel .sync-all-btn {
|
|
1796
2009
|
display: flex;
|
|
1797
2010
|
align-items: center;
|
|
2011
|
+
justify-content: center;
|
|
1798
2012
|
gap: 6px;
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
border: 1px solid var(--warning-color, #cca700);
|
|
2013
|
+
width: 100%;
|
|
2014
|
+
padding: 6px 10px;
|
|
2015
|
+
border: 1px solid var(--border-secondary, rgba(255, 255, 255, 0.08));
|
|
1803
2016
|
border-radius: 4px;
|
|
2017
|
+
background: var(--bg-tertiary, #2d2d2d);
|
|
2018
|
+
color: var(--text-secondary, #8b8b8b);
|
|
1804
2019
|
font-size: 0.75rem;
|
|
2020
|
+
font-family: var(--font-mono, 'SF Mono', Monaco, monospace);
|
|
2021
|
+
cursor: pointer;
|
|
2022
|
+
transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
|
|
1805
2023
|
}
|
|
1806
2024
|
|
|
1807
|
-
.git-panel .
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
.git-panel .develop-behind-warning .warning-text {
|
|
1812
|
-
flex: 1;
|
|
1813
|
-
color: var(--warning-color, #cca700);
|
|
1814
|
-
}
|
|
1815
|
-
|
|
1816
|
-
.git-panel .develop-behind-warning .pull-develop-btn {
|
|
1817
|
-
padding: 2px 8px;
|
|
1818
|
-
background: var(--warning-color, #cca700);
|
|
1819
|
-
color: #000;
|
|
1820
|
-
border: none;
|
|
1821
|
-
border-radius: 3px;
|
|
1822
|
-
font-size: 0.7rem;
|
|
1823
|
-
font-weight: 600;
|
|
1824
|
-
cursor: pointer;
|
|
1825
|
-
text-transform: uppercase;
|
|
2025
|
+
.git-panel .sync-all-btn:hover {
|
|
2026
|
+
background: var(--bg-hover, #3d3d3d);
|
|
2027
|
+
color: var(--text-primary, #e0e0e0);
|
|
2028
|
+
border-color: var(--accent-color, #007acc);
|
|
1826
2029
|
}
|
|
1827
2030
|
|
|
1828
|
-
.git-panel .
|
|
1829
|
-
|
|
2031
|
+
.git-panel .sync-all-btn:active {
|
|
2032
|
+
background: var(--bg-active, #4d4d4d);
|
|
1830
2033
|
}
|
|
1831
2034
|
|
|
1832
2035
|
.git-panel .repo-status .file-status {
|
|
@@ -2196,38 +2399,6 @@
|
|
|
2196
2399
|
padding: 8px 0;
|
|
2197
2400
|
}
|
|
2198
2401
|
|
|
2199
|
-
/* AC content within Progress panel */
|
|
2200
|
-
.ac-content {
|
|
2201
|
-
padding: 4px 0;
|
|
2202
|
-
}
|
|
2203
|
-
|
|
2204
|
-
.ac-content .ac-list {
|
|
2205
|
-
margin-top: 8px;
|
|
2206
|
-
}
|
|
2207
|
-
|
|
2208
|
-
.ac-content .ac-item {
|
|
2209
|
-
display: flex;
|
|
2210
|
-
align-items: flex-start;
|
|
2211
|
-
gap: 6px;
|
|
2212
|
-
padding: 4px 0;
|
|
2213
|
-
font-size: 0.8rem;
|
|
2214
|
-
color: var(--text-primary, #d4d4d4);
|
|
2215
|
-
}
|
|
2216
|
-
|
|
2217
|
-
.ac-content .ac-item.ac-done {
|
|
2218
|
-
color: var(--success-color, #4ec9b0);
|
|
2219
|
-
}
|
|
2220
|
-
|
|
2221
|
-
.ac-content .ac-icon {
|
|
2222
|
-
flex-shrink: 0;
|
|
2223
|
-
width: 14px;
|
|
2224
|
-
}
|
|
2225
|
-
|
|
2226
|
-
.ac-content .ac-text {
|
|
2227
|
-
flex: 1;
|
|
2228
|
-
line-height: 1.3;
|
|
2229
|
-
}
|
|
2230
|
-
|
|
2231
2402
|
/* Todo content wrapper */
|
|
2232
2403
|
.todo-content {
|
|
2233
2404
|
padding: 4px 0;
|
|
@@ -2457,6 +2628,17 @@
|
|
|
2457
2628
|
background: var(--accent-color, #007acc);
|
|
2458
2629
|
}
|
|
2459
2630
|
|
|
2631
|
+
.context-sparkline {
|
|
2632
|
+
width: 100%;
|
|
2633
|
+
height: 32px;
|
|
2634
|
+
margin: 4px 0;
|
|
2635
|
+
}
|
|
2636
|
+
|
|
2637
|
+
.context-sparkline svg {
|
|
2638
|
+
width: 100%;
|
|
2639
|
+
height: 100%;
|
|
2640
|
+
}
|
|
2641
|
+
|
|
2460
2642
|
.debug-panel .context-text {
|
|
2461
2643
|
font-size: 0.75rem;
|
|
2462
2644
|
color: var(--text-primary, #d4d4d4);
|
|
@@ -2626,6 +2808,84 @@
|
|
|
2626
2808
|
font-family: var(--font-mono, 'SF Mono', Monaco, monospace);
|
|
2627
2809
|
}
|
|
2628
2810
|
|
|
2811
|
+
/* HealthGauge header and controls */
|
|
2812
|
+
|
|
2813
|
+
.health-gauge-header {
|
|
2814
|
+
display: flex;
|
|
2815
|
+
justify-content: space-between;
|
|
2816
|
+
align-items: center;
|
|
2817
|
+
margin-bottom: 0.25rem;
|
|
2818
|
+
}
|
|
2819
|
+
|
|
2820
|
+
.health-gauge-age {
|
|
2821
|
+
font-size: 0.75rem;
|
|
2822
|
+
color: var(--text-muted);
|
|
2823
|
+
}
|
|
2824
|
+
|
|
2825
|
+
.health-gauge-error {
|
|
2826
|
+
font-size: 0.75rem;
|
|
2827
|
+
color: var(--color-danger, #ef4444);
|
|
2828
|
+
}
|
|
2829
|
+
|
|
2830
|
+
/* HealthGauge SVG */
|
|
2831
|
+
|
|
2832
|
+
[data-testid="health-gauge"] svg {
|
|
2833
|
+
display: block;
|
|
2834
|
+
margin: 0 auto;
|
|
2835
|
+
}
|
|
2836
|
+
|
|
2837
|
+
/* HealthGauge dimension breakdown */
|
|
2838
|
+
|
|
2839
|
+
.health-gauge-partial {
|
|
2840
|
+
text-align: center;
|
|
2841
|
+
font-size: 0.75rem;
|
|
2842
|
+
color: var(--text-muted);
|
|
2843
|
+
margin-top: 0.25rem;
|
|
2844
|
+
}
|
|
2845
|
+
|
|
2846
|
+
.health-gauge-breakdown {
|
|
2847
|
+
display: flex;
|
|
2848
|
+
flex-direction: column;
|
|
2849
|
+
gap: 0.25rem;
|
|
2850
|
+
margin-top: 0.5rem;
|
|
2851
|
+
padding: 0.5rem 0;
|
|
2852
|
+
border-top: 1px solid var(--border);
|
|
2853
|
+
}
|
|
2854
|
+
|
|
2855
|
+
.health-gauge-dimension {
|
|
2856
|
+
display: flex;
|
|
2857
|
+
justify-content: space-between;
|
|
2858
|
+
align-items: center;
|
|
2859
|
+
cursor: pointer;
|
|
2860
|
+
padding: 0.25rem 0.5rem;
|
|
2861
|
+
border-radius: 4px;
|
|
2862
|
+
}
|
|
2863
|
+
|
|
2864
|
+
.health-gauge-dimension:hover {
|
|
2865
|
+
background: var(--border);
|
|
2866
|
+
}
|
|
2867
|
+
|
|
2868
|
+
.dimension-label {
|
|
2869
|
+
font-size: 0.8125rem;
|
|
2870
|
+
color: var(--text-secondary);
|
|
2871
|
+
text-decoration: underline;
|
|
2872
|
+
text-decoration-color: transparent;
|
|
2873
|
+
transition: text-decoration-color 0.15s, color 0.15s;
|
|
2874
|
+
}
|
|
2875
|
+
|
|
2876
|
+
.health-gauge-dimension:hover .dimension-label {
|
|
2877
|
+
text-decoration-color: currentColor;
|
|
2878
|
+
color: var(--text-primary);
|
|
2879
|
+
}
|
|
2880
|
+
|
|
2881
|
+
.dimension-score {
|
|
2882
|
+
font-size: 0.8125rem;
|
|
2883
|
+
font-variant-numeric: tabular-nums;
|
|
2884
|
+
text-align: right;
|
|
2885
|
+
font-family: var(--font-mono, monospace);
|
|
2886
|
+
color: var(--text-primary);
|
|
2887
|
+
}
|
|
2888
|
+
|
|
2629
2889
|
/* Settings panel */
|
|
2630
2890
|
.settings-panel {
|
|
2631
2891
|
padding: 8px;
|
|
@@ -3998,6 +4258,54 @@
|
|
|
3998
4258
|
margin-bottom: 4px;
|
|
3999
4259
|
}
|
|
4000
4260
|
|
|
4261
|
+
/* Agent Quick Picker (MSSCI-14762) */
|
|
4262
|
+
.agent-quick-picker-wrapper {
|
|
4263
|
+
position: relative;
|
|
4264
|
+
}
|
|
4265
|
+
|
|
4266
|
+
.agent-quick-picker-dropdown {
|
|
4267
|
+
position: absolute;
|
|
4268
|
+
bottom: 100%;
|
|
4269
|
+
left: 0;
|
|
4270
|
+
margin-bottom: 4px;
|
|
4271
|
+
min-width: 120px;
|
|
4272
|
+
max-height: 300px;
|
|
4273
|
+
overflow-y: auto;
|
|
4274
|
+
background: var(--bg-secondary, #1e1e1e);
|
|
4275
|
+
border: 1px solid var(--border-color, #3c3c3c);
|
|
4276
|
+
border-radius: 6px;
|
|
4277
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
|
|
4278
|
+
z-index: 100;
|
|
4279
|
+
padding: 4px;
|
|
4280
|
+
}
|
|
4281
|
+
|
|
4282
|
+
.agent-quick-picker-option {
|
|
4283
|
+
display: flex;
|
|
4284
|
+
align-items: center;
|
|
4285
|
+
gap: 8px;
|
|
4286
|
+
padding: 6px 8px;
|
|
4287
|
+
border-radius: 4px;
|
|
4288
|
+
cursor: pointer;
|
|
4289
|
+
transition: background 0.1s ease;
|
|
4290
|
+
}
|
|
4291
|
+
|
|
4292
|
+
.agent-quick-picker-option:hover {
|
|
4293
|
+
background: var(--bg-hover, #3c3c3c);
|
|
4294
|
+
}
|
|
4295
|
+
|
|
4296
|
+
.agent-quick-picker-option.current {
|
|
4297
|
+
background: var(--bg-tertiary, #2d2d2d);
|
|
4298
|
+
border-left: 2px solid var(--accent, #007acc);
|
|
4299
|
+
}
|
|
4300
|
+
|
|
4301
|
+
.agent-option-role {
|
|
4302
|
+
font-size: 0.7rem;
|
|
4303
|
+
text-transform: uppercase;
|
|
4304
|
+
color: var(--text-secondary, #8b8b8b);
|
|
4305
|
+
min-width: 64px;
|
|
4306
|
+
}
|
|
4307
|
+
|
|
4308
|
+
|
|
4001
4309
|
.btn-toggle {
|
|
4002
4310
|
display: flex;
|
|
4003
4311
|
align-items: center;
|
|
@@ -4017,15 +4325,13 @@
|
|
|
4017
4325
|
border-color: var(--text-secondary, #8b8b8b);
|
|
4018
4326
|
}
|
|
4019
4327
|
|
|
4020
|
-
.btn-toggle
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
filter: grayscale(100%) opacity(0.5);
|
|
4024
|
-
transition: filter 0.15s ease;
|
|
4328
|
+
.btn-toggle svg {
|
|
4329
|
+
opacity: 0.5;
|
|
4330
|
+
transition: opacity 0.15s ease;
|
|
4025
4331
|
}
|
|
4026
4332
|
|
|
4027
|
-
.btn-toggle:hover
|
|
4028
|
-
|
|
4333
|
+
.btn-toggle:hover svg {
|
|
4334
|
+
opacity: 0.8;
|
|
4029
4335
|
}
|
|
4030
4336
|
|
|
4031
4337
|
/* Bell mode active */
|
|
@@ -4034,8 +4340,8 @@
|
|
|
4034
4340
|
border-color: var(--color-warning, #f59e0b);
|
|
4035
4341
|
}
|
|
4036
4342
|
|
|
4037
|
-
.btn-toggle.bell-toggle.active
|
|
4038
|
-
|
|
4343
|
+
.btn-toggle.bell-toggle.active svg {
|
|
4344
|
+
opacity: 1;
|
|
4039
4345
|
}
|
|
4040
4346
|
|
|
4041
4347
|
/* Relay mode active */
|
|
@@ -4044,8 +4350,8 @@
|
|
|
4044
4350
|
border-color: var(--color-purple, #8b5cf6);
|
|
4045
4351
|
}
|
|
4046
4352
|
|
|
4047
|
-
.btn-toggle.relay-toggle.active
|
|
4048
|
-
|
|
4353
|
+
.btn-toggle.relay-toggle.active svg {
|
|
4354
|
+
opacity: 1;
|
|
4049
4355
|
}
|
|
4050
4356
|
|
|
4051
4357
|
/* Active toggle colors (no animation - too distracting) */
|
|
@@ -4063,8 +4369,8 @@
|
|
|
4063
4369
|
border-color: var(--color-cyan, #06b6d4);
|
|
4064
4370
|
}
|
|
4065
4371
|
|
|
4066
|
-
.btn-toggle.pump-toggle
|
|
4067
|
-
|
|
4372
|
+
.btn-toggle.pump-toggle svg {
|
|
4373
|
+
opacity: 1;
|
|
4068
4374
|
}
|
|
4069
4375
|
|
|
4070
4376
|
/* TirePump warning state at 70%+ context */
|
|
@@ -4074,8 +4380,8 @@
|
|
|
4074
4380
|
animation: pump-pulse 1.5s ease-in-out infinite;
|
|
4075
4381
|
}
|
|
4076
4382
|
|
|
4077
|
-
.btn-toggle.pump-toggle.warning
|
|
4078
|
-
|
|
4383
|
+
.btn-toggle.pump-toggle.warning svg {
|
|
4384
|
+
opacity: 1;
|
|
4079
4385
|
}
|
|
4080
4386
|
|
|
4081
4387
|
@keyframes pump-pulse {
|