agentic-orchestrator 0.1.25 → 0.1.26

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.
Files changed (177) hide show
  1. package/agentic/orchestrator/defaults/policy.defaults.yaml +1 -0
  2. package/agentic/orchestrator/policy.yaml +1 -0
  3. package/agentic/orchestrator/schemas/policy.schema.json +4 -0
  4. package/agentic/orchestrator/schemas/policy.user.schema.json +4 -0
  5. package/apps/control-plane/src/application/services/activity-monitor-service.ts +42 -0
  6. package/apps/control-plane/src/application/services/collision-queue-service.ts +48 -0
  7. package/apps/control-plane/src/application/services/cost-tracking-service.ts +80 -0
  8. package/apps/control-plane/src/application/services/feature-deletion-service.ts +57 -0
  9. package/apps/control-plane/src/application/services/feature-lifecycle-service.ts +65 -0
  10. package/apps/control-plane/src/application/services/feature-state-service.ts +87 -0
  11. package/apps/control-plane/src/application/services/gate-selection-service.ts +28 -0
  12. package/apps/control-plane/src/application/services/gate-service.ts +148 -0
  13. package/apps/control-plane/src/application/services/issue-tracker-service.ts +28 -0
  14. package/apps/control-plane/src/application/services/lock-service.ts +88 -0
  15. package/apps/control-plane/src/application/services/merge-service.ts +63 -0
  16. package/apps/control-plane/src/application/services/notifier-service.ts +70 -0
  17. package/apps/control-plane/src/application/services/patch-service.ts +95 -0
  18. package/apps/control-plane/src/application/services/performance-analytics-service.ts +90 -0
  19. package/apps/control-plane/src/application/services/plan-service.ts +184 -0
  20. package/apps/control-plane/src/application/services/pr-monitor-service.ts +58 -0
  21. package/apps/control-plane/src/application/services/qa-index-service.ts +68 -0
  22. package/apps/control-plane/src/application/services/reactions-service.ts +77 -0
  23. package/apps/control-plane/src/application/services/reporting-service.ts +79 -0
  24. package/apps/control-plane/src/application/services/run-lease-service.ts +79 -0
  25. package/apps/control-plane/src/application/tools/tool-router.ts +76 -0
  26. package/apps/control-plane/src/mcp/tool-runtime.ts +4 -0
  27. package/apps/control-plane/src/providers/providers.ts +96 -0
  28. package/apps/control-plane/src/providers/worker-provider-factory.ts +4 -0
  29. package/apps/control-plane/src/supervisor/build-wave-executor.ts +4 -0
  30. package/apps/control-plane/src/supervisor/planning-wave-executor.ts +4 -0
  31. package/apps/control-plane/src/supervisor/qa-wave-executor.ts +4 -0
  32. package/apps/control-plane/src/supervisor/run-coordinator.ts +4 -0
  33. package/apps/control-plane/src/supervisor/runtime.ts +4 -0
  34. package/apps/control-plane/src/supervisor/session-orchestrator.ts +4 -0
  35. package/apps/control-plane/test/dashboard-api.integration.spec.ts +310 -1
  36. package/apps/control-plane/test/dashboard-client.spec.ts +136 -1
  37. package/apps/control-plane/test/dashboard-live-feed.spec.ts +153 -0
  38. package/apps/control-plane/test/dashboard-ui-utils.spec.ts +132 -0
  39. package/apps/control-plane/test/mcp.spec.ts +96 -0
  40. package/apps/control-plane/test/tool-runtime.spec.ts +68 -0
  41. package/config/agentic/orchestrator/policy.yaml +1 -0
  42. package/dist/apps/control-plane/application/services/activity-monitor-service.d.ts +42 -0
  43. package/dist/apps/control-plane/application/services/activity-monitor-service.js +42 -0
  44. package/dist/apps/control-plane/application/services/activity-monitor-service.js.map +1 -1
  45. package/dist/apps/control-plane/application/services/collision-queue-service.d.ts +48 -0
  46. package/dist/apps/control-plane/application/services/collision-queue-service.js +48 -0
  47. package/dist/apps/control-plane/application/services/collision-queue-service.js.map +1 -1
  48. package/dist/apps/control-plane/application/services/cost-tracking-service.d.ts +79 -0
  49. package/dist/apps/control-plane/application/services/cost-tracking-service.js +76 -0
  50. package/dist/apps/control-plane/application/services/cost-tracking-service.js.map +1 -1
  51. package/dist/apps/control-plane/application/services/feature-deletion-service.d.ts +57 -0
  52. package/dist/apps/control-plane/application/services/feature-deletion-service.js +57 -0
  53. package/dist/apps/control-plane/application/services/feature-deletion-service.js.map +1 -1
  54. package/dist/apps/control-plane/application/services/feature-lifecycle-service.d.ts +64 -0
  55. package/dist/apps/control-plane/application/services/feature-lifecycle-service.js +61 -0
  56. package/dist/apps/control-plane/application/services/feature-lifecycle-service.js.map +1 -1
  57. package/dist/apps/control-plane/application/services/feature-state-service.d.ts +86 -0
  58. package/dist/apps/control-plane/application/services/feature-state-service.js +83 -0
  59. package/dist/apps/control-plane/application/services/feature-state-service.js.map +1 -1
  60. package/dist/apps/control-plane/application/services/gate-selection-service.d.ts +28 -0
  61. package/dist/apps/control-plane/application/services/gate-selection-service.js +28 -0
  62. package/dist/apps/control-plane/application/services/gate-selection-service.js.map +1 -1
  63. package/dist/apps/control-plane/application/services/gate-service.d.ts +148 -0
  64. package/dist/apps/control-plane/application/services/gate-service.js +120 -0
  65. package/dist/apps/control-plane/application/services/gate-service.js.map +1 -1
  66. package/dist/apps/control-plane/application/services/issue-tracker-service.d.ts +28 -0
  67. package/dist/apps/control-plane/application/services/issue-tracker-service.js +28 -0
  68. package/dist/apps/control-plane/application/services/issue-tracker-service.js.map +1 -1
  69. package/dist/apps/control-plane/application/services/lock-service.d.ts +88 -0
  70. package/dist/apps/control-plane/application/services/lock-service.js +64 -0
  71. package/dist/apps/control-plane/application/services/lock-service.js.map +1 -1
  72. package/dist/apps/control-plane/application/services/merge-service.d.ts +62 -0
  73. package/dist/apps/control-plane/application/services/merge-service.js +59 -0
  74. package/dist/apps/control-plane/application/services/merge-service.js.map +1 -1
  75. package/dist/apps/control-plane/application/services/notifier-service.d.ts +70 -0
  76. package/dist/apps/control-plane/application/services/notifier-service.js +70 -0
  77. package/dist/apps/control-plane/application/services/notifier-service.js.map +1 -1
  78. package/dist/apps/control-plane/application/services/patch-service.d.ts +94 -0
  79. package/dist/apps/control-plane/application/services/patch-service.js +91 -0
  80. package/dist/apps/control-plane/application/services/patch-service.js.map +1 -1
  81. package/dist/apps/control-plane/application/services/performance-analytics-service.d.ts +89 -0
  82. package/dist/apps/control-plane/application/services/performance-analytics-service.js +86 -0
  83. package/dist/apps/control-plane/application/services/performance-analytics-service.js.map +1 -1
  84. package/dist/apps/control-plane/application/services/plan-service.d.ts +287 -0
  85. package/dist/apps/control-plane/application/services/plan-service.js +207 -0
  86. package/dist/apps/control-plane/application/services/plan-service.js.map +1 -1
  87. package/dist/apps/control-plane/application/services/pr-monitor-service.d.ts +58 -0
  88. package/dist/apps/control-plane/application/services/pr-monitor-service.js +58 -0
  89. package/dist/apps/control-plane/application/services/pr-monitor-service.js.map +1 -1
  90. package/dist/apps/control-plane/application/services/qa-index-service.d.ts +67 -0
  91. package/dist/apps/control-plane/application/services/qa-index-service.js +64 -0
  92. package/dist/apps/control-plane/application/services/qa-index-service.js.map +1 -1
  93. package/dist/apps/control-plane/application/services/reactions-service.d.ts +76 -0
  94. package/dist/apps/control-plane/application/services/reactions-service.js +73 -0
  95. package/dist/apps/control-plane/application/services/reactions-service.js.map +1 -1
  96. package/dist/apps/control-plane/application/services/reporting-service.d.ts +78 -0
  97. package/dist/apps/control-plane/application/services/reporting-service.js +75 -0
  98. package/dist/apps/control-plane/application/services/reporting-service.js.map +1 -1
  99. package/dist/apps/control-plane/application/services/run-lease-service.d.ts +79 -0
  100. package/dist/apps/control-plane/application/services/run-lease-service.js +79 -0
  101. package/dist/apps/control-plane/application/services/run-lease-service.js.map +1 -1
  102. package/dist/apps/control-plane/application/tools/tool-router.d.ts +76 -0
  103. package/dist/apps/control-plane/application/tools/tool-router.js +62 -0
  104. package/dist/apps/control-plane/application/tools/tool-router.js.map +1 -1
  105. package/dist/apps/control-plane/mcp/tool-runtime.d.ts +3 -0
  106. package/dist/apps/control-plane/mcp/tool-runtime.js +3 -0
  107. package/dist/apps/control-plane/mcp/tool-runtime.js.map +1 -1
  108. package/dist/apps/control-plane/providers/providers.d.ts +88 -0
  109. package/dist/apps/control-plane/providers/providers.js.map +1 -1
  110. package/dist/apps/control-plane/providers/worker-provider-factory.d.ts +3 -0
  111. package/dist/apps/control-plane/providers/worker-provider-factory.js.map +1 -1
  112. package/dist/apps/control-plane/supervisor/build-wave-executor.d.ts +3 -0
  113. package/dist/apps/control-plane/supervisor/build-wave-executor.js +3 -0
  114. package/dist/apps/control-plane/supervisor/build-wave-executor.js.map +1 -1
  115. package/dist/apps/control-plane/supervisor/planning-wave-executor.d.ts +3 -0
  116. package/dist/apps/control-plane/supervisor/planning-wave-executor.js +3 -0
  117. package/dist/apps/control-plane/supervisor/planning-wave-executor.js.map +1 -1
  118. package/dist/apps/control-plane/supervisor/qa-wave-executor.d.ts +3 -0
  119. package/dist/apps/control-plane/supervisor/qa-wave-executor.js +3 -0
  120. package/dist/apps/control-plane/supervisor/qa-wave-executor.js.map +1 -1
  121. package/dist/apps/control-plane/supervisor/run-coordinator.d.ts +3 -0
  122. package/dist/apps/control-plane/supervisor/run-coordinator.js +3 -0
  123. package/dist/apps/control-plane/supervisor/run-coordinator.js.map +1 -1
  124. package/dist/apps/control-plane/supervisor/runtime.d.ts +3 -0
  125. package/dist/apps/control-plane/supervisor/runtime.js +3 -0
  126. package/dist/apps/control-plane/supervisor/runtime.js.map +1 -1
  127. package/dist/apps/control-plane/supervisor/session-orchestrator.d.ts +3 -0
  128. package/dist/apps/control-plane/supervisor/session-orchestrator.js +3 -0
  129. package/dist/apps/control-plane/supervisor/session-orchestrator.js.map +1 -1
  130. package/package.json +1 -1
  131. package/packages/web-dashboard/src/app/analytics/page.tsx +451 -0
  132. package/packages/web-dashboard/src/app/api/analytics/route.ts +62 -0
  133. package/packages/web-dashboard/src/app/api/collisions/route.ts +63 -0
  134. package/packages/web-dashboard/src/app/api/features/[id]/cost/route.ts +29 -0
  135. package/packages/web-dashboard/src/app/api/features/[id]/review-brief/route.ts +31 -0
  136. package/packages/web-dashboard/src/app/api/features/[id]/route.ts +5 -8
  137. package/packages/web-dashboard/src/app/api/features/[id]/test-index/route.ts +31 -0
  138. package/packages/web-dashboard/src/app/api/flaky/route.ts +20 -0
  139. package/packages/web-dashboard/src/app/api/policy/budget/route.ts +31 -0
  140. package/packages/web-dashboard/src/app/api/run/route.ts +162 -0
  141. package/packages/web-dashboard/src/app/api/status/route.ts +2 -5
  142. package/packages/web-dashboard/src/app/feature/[id]/page.tsx +112 -0
  143. package/packages/web-dashboard/src/app/page.tsx +379 -77
  144. package/packages/web-dashboard/src/components/agent-pipeline-stepper.tsx +100 -0
  145. package/packages/web-dashboard/src/components/dependency-chains.tsx +58 -0
  146. package/packages/web-dashboard/src/components/detail-panel.tsx +215 -5
  147. package/packages/web-dashboard/src/components/feature-card.tsx +5 -0
  148. package/packages/web-dashboard/src/components/feature-cost-panel.tsx +66 -0
  149. package/packages/web-dashboard/src/components/feature-list-view.tsx +336 -0
  150. package/packages/web-dashboard/src/components/gate-step-drilldown.tsx +92 -0
  151. package/packages/web-dashboard/src/components/kanban-board.tsx +3 -0
  152. package/packages/web-dashboard/src/components/live-event-feed.tsx +60 -0
  153. package/packages/web-dashboard/src/components/lock-resource-map.tsx +73 -0
  154. package/packages/web-dashboard/src/components/plan-revision-timeline.tsx +55 -0
  155. package/packages/web-dashboard/src/components/plan-risk-annotations.tsx +63 -0
  156. package/packages/web-dashboard/src/components/plan-scope-tree.tsx +285 -0
  157. package/packages/web-dashboard/src/components/qa-coverage-map.tsx +174 -0
  158. package/packages/web-dashboard/src/components/quick-launch-panel.tsx +70 -0
  159. package/packages/web-dashboard/src/components/review-brief-panel.tsx +75 -0
  160. package/packages/web-dashboard/src/components/run-health-panel.tsx +85 -0
  161. package/packages/web-dashboard/src/components/summary-bar.tsx +59 -2
  162. package/packages/web-dashboard/src/components/verification-signals.tsx +167 -0
  163. package/packages/web-dashboard/src/lib/analytics-utils.ts +3 -0
  164. package/packages/web-dashboard/src/lib/aop-client.ts +510 -11
  165. package/packages/web-dashboard/src/lib/api-envelope.ts +48 -0
  166. package/packages/web-dashboard/src/lib/authz-adapter.ts +33 -0
  167. package/packages/web-dashboard/src/lib/dashboard-utils.ts +304 -0
  168. package/packages/web-dashboard/src/lib/live-feed.ts +218 -0
  169. package/packages/web-dashboard/src/lib/policy-reader.ts +22 -0
  170. package/packages/web-dashboard/src/lib/types.ts +114 -0
  171. package/packages/web-dashboard/src/styles/dashboard.module.css +341 -1
  172. package/spec-files/{outstanding → completed}/agentic_orchestrator_dashboard_advanced_ux_spec.md +1 -1
  173. package/spec-files/outstanding/agentic_orchestrator_evidence_integrity_doctor_spec.md +561 -0
  174. package/spec-files/outstanding/agentic_orchestrator_kernel_simplification_spec.md +834 -0
  175. package/spec-files/outstanding/agentic_orchestrator_observability_integrity_diagnostics_spec.md +12 -5
  176. package/spec-files/outstanding/agentic_orchestrator_observability_replay_spec.md +442 -0
  177. package/spec-files/progress.md +174 -1
@@ -19,6 +19,8 @@
19
19
  max-width: 1780px;
20
20
  margin: 0 auto;
21
21
  padding: 1.25rem;
22
+ overflow-x: hidden;
23
+ overflow-x: clip;
22
24
  background: var(--bg-page);
23
25
  color: var(--text-primary);
24
26
  font-family: 'IBM Plex Sans', 'Segoe UI', 'Helvetica Neue', sans-serif;
@@ -54,6 +56,8 @@
54
56
  display: flex;
55
57
  align-items: center;
56
58
  gap: 0.65rem;
59
+ flex-wrap: wrap;
60
+ justify-content: flex-end;
57
61
  }
58
62
 
59
63
  .label {
@@ -106,7 +110,7 @@
106
110
 
107
111
  .summaryBar {
108
112
  display: grid;
109
- grid-template-columns: repeat(5, minmax(0, 1fr));
113
+ grid-template-columns: repeat(6, minmax(0, 1fr));
110
114
  gap: 0.65rem;
111
115
  margin-bottom: 0.75rem;
112
116
  }
@@ -116,6 +120,7 @@
116
120
  border-radius: 0.75rem;
117
121
  background: linear-gradient(145deg, rgba(24, 34, 60, 0.95), rgba(10, 16, 34, 0.9));
118
122
  color: var(--text-primary);
123
+ text-decoration: none;
119
124
  padding: 0.75rem;
120
125
  text-align: left;
121
126
  box-shadow: var(--shadow-soft);
@@ -151,6 +156,11 @@
151
156
  font-size: 0.75rem;
152
157
  }
153
158
 
159
+ .sparklinePoint {
160
+ fill: rgba(127, 198, 255, 0.01);
161
+ stroke: transparent;
162
+ }
163
+
154
164
  .filterBar {
155
165
  border: 1px solid var(--border-weak);
156
166
  border-radius: 0.78rem;
@@ -209,6 +219,26 @@
209
219
  gap: 0.95rem;
210
220
  }
211
221
 
222
+ .operatorGrid {
223
+ display: grid;
224
+ grid-template-columns: repeat(2, minmax(0, 1fr));
225
+ gap: 0.65rem;
226
+ margin-bottom: 0.75rem;
227
+ }
228
+
229
+ .focusHeader {
230
+ display: flex;
231
+ justify-content: space-between;
232
+ align-items: flex-start;
233
+ gap: 0.8rem;
234
+ margin-bottom: 0.9rem;
235
+ }
236
+
237
+ .focusLayout {
238
+ display: grid;
239
+ grid-template-columns: minmax(0, 1fr);
240
+ }
241
+
212
242
  .kanbanGrid {
213
243
  display: grid;
214
244
  grid-template-columns: repeat(3, minmax(14rem, 1fr));
@@ -534,6 +564,108 @@
534
564
  font-size: 0.74rem;
535
565
  }
536
566
 
567
+ .tableWrapper {
568
+ width: 100%;
569
+ overflow-x: auto;
570
+ }
571
+
572
+ .listTable {
573
+ width: 100%;
574
+ border-collapse: collapse;
575
+ font-size: 0.74rem;
576
+ min-width: 34rem;
577
+ }
578
+
579
+ .listTable th,
580
+ .listTable td {
581
+ border: 1px solid var(--border-weak);
582
+ padding: 0.36rem 0.42rem;
583
+ text-align: left;
584
+ }
585
+
586
+ .listHeaderButton {
587
+ background: transparent;
588
+ color: inherit;
589
+ border: 0;
590
+ font: inherit;
591
+ cursor: pointer;
592
+ padding: 0;
593
+ text-align: left;
594
+ }
595
+
596
+ .listRow {
597
+ cursor: pointer;
598
+ transition: background-color 100ms ease;
599
+ }
600
+
601
+ .listRow:hover {
602
+ background: rgba(34, 53, 89, 0.45);
603
+ }
604
+
605
+ .listRowSelected {
606
+ background: rgba(20, 62, 88, 0.6);
607
+ }
608
+
609
+ .listRowFocused {
610
+ outline: 2px solid rgba(127, 198, 255, 0.7);
611
+ outline-offset: -2px;
612
+ }
613
+
614
+ .listPagination {
615
+ display: flex;
616
+ justify-content: space-between;
617
+ align-items: center;
618
+ gap: 0.5rem;
619
+ flex-wrap: wrap;
620
+ }
621
+
622
+ .listActions {
623
+ display: flex;
624
+ gap: 0.35rem;
625
+ align-items: center;
626
+ justify-content: flex-start;
627
+ }
628
+
629
+ .listActionMenuWrap {
630
+ position: relative;
631
+ }
632
+
633
+ .listActionMenu {
634
+ position: absolute;
635
+ right: 0;
636
+ top: calc(100% + 0.25rem);
637
+ z-index: 8;
638
+ min-width: 9.8rem;
639
+ border: 1px solid var(--border-weak);
640
+ border-radius: 0.55rem;
641
+ background: rgba(8, 16, 35, 0.97);
642
+ box-shadow: var(--shadow-soft);
643
+ padding: 0.2rem;
644
+ display: flex;
645
+ flex-direction: column;
646
+ gap: 0.15rem;
647
+ }
648
+
649
+ .listActionMenuItem {
650
+ border: 1px solid transparent;
651
+ border-radius: 0.4rem;
652
+ background: transparent;
653
+ color: var(--text-primary);
654
+ text-decoration: none;
655
+ text-align: left;
656
+ font: inherit;
657
+ font-size: 0.72rem;
658
+ padding: 0.3rem 0.4rem;
659
+ cursor: pointer;
660
+ }
661
+
662
+ .listActionMenuItem:hover,
663
+ .listActionMenuItem:focus-visible {
664
+ border-color: var(--border-strong);
665
+ background: rgba(27, 45, 81, 0.88);
666
+ outline: none;
667
+ }
668
+
537
669
  .table th,
538
670
  .table td {
539
671
  border: 1px solid var(--border-weak);
@@ -566,6 +698,113 @@
566
698
  padding: 0.45rem;
567
699
  }
568
700
 
701
+ .planTreeList {
702
+ list-style: none;
703
+ padding: 0;
704
+ margin: 0;
705
+ display: flex;
706
+ flex-direction: column;
707
+ gap: 0.35rem;
708
+ }
709
+
710
+ .planTreeBranch {
711
+ border: 1px solid var(--border-weak);
712
+ border-radius: 0.55rem;
713
+ background: rgba(10, 18, 38, 0.78);
714
+ padding: 0.4rem;
715
+ }
716
+
717
+ .planTreeLeaf {
718
+ border: 1px solid var(--border-weak);
719
+ border-radius: 0.55rem;
720
+ background: rgba(10, 18, 38, 0.88);
721
+ padding: 0.35rem 0.45rem;
722
+ display: flex;
723
+ align-items: center;
724
+ justify-content: space-between;
725
+ gap: 0.35rem;
726
+ }
727
+
728
+ .planPolicyGroup {
729
+ display: flex;
730
+ flex-direction: column;
731
+ gap: 0.25rem;
732
+ }
733
+
734
+ .planTreePager {
735
+ display: flex;
736
+ justify-content: space-between;
737
+ align-items: center;
738
+ gap: 0.5rem;
739
+ flex-wrap: wrap;
740
+ }
741
+
742
+ .pipelineStepper {
743
+ list-style: none;
744
+ margin: 0;
745
+ padding: 0;
746
+ display: flex;
747
+ flex-wrap: wrap;
748
+ gap: 0.4rem;
749
+ }
750
+
751
+ .pipelineStep {
752
+ border: 1px solid var(--border-weak);
753
+ border-radius: 999px;
754
+ padding: 0.2rem 0.5rem;
755
+ display: inline-flex;
756
+ align-items: center;
757
+ gap: 0.3rem;
758
+ font-size: 0.7rem;
759
+ text-transform: uppercase;
760
+ }
761
+
762
+ .pipelineIcon {
763
+ width: 0.9rem;
764
+ display: inline-flex;
765
+ justify-content: center;
766
+ }
767
+
768
+ .pipelineIconRunning {
769
+ animation: pipelineBlink 1s ease-in-out infinite;
770
+ }
771
+
772
+ @keyframes pipelineBlink {
773
+ 0% {
774
+ opacity: 0.4;
775
+ }
776
+ 50% {
777
+ opacity: 1;
778
+ }
779
+ 100% {
780
+ opacity: 0.4;
781
+ }
782
+ }
783
+
784
+ .stepDone {
785
+ border-color: rgba(39, 182, 117, 0.7);
786
+ color: #8af2bf;
787
+ }
788
+
789
+ .stepRunning {
790
+ border-color: rgba(110, 187, 247, 0.8);
791
+ color: #bde6ff;
792
+ }
793
+
794
+ .stepBlocked {
795
+ border-color: rgba(235, 90, 108, 0.7);
796
+ color: #ffbac2;
797
+ }
798
+
799
+ .stepReady {
800
+ border-color: rgba(236, 196, 101, 0.7);
801
+ color: #ffe2a6;
802
+ }
803
+
804
+ .stepUnknown {
805
+ color: #b7c6da;
806
+ }
807
+
569
808
  .diffContainer,
570
809
  .preContent,
571
810
  .evidenceContent {
@@ -702,6 +941,13 @@
702
941
  font-size: 0.74rem;
703
942
  }
704
943
 
944
+ .stickyReviewFooter {
945
+ position: sticky;
946
+ bottom: 0;
947
+ z-index: 4;
948
+ border-color: rgba(134, 181, 237, 0.7);
949
+ }
950
+
705
951
  .collisionPanel {
706
952
  border: 1px solid rgba(245, 123, 136, 0.55);
707
953
  border-radius: 0.84rem;
@@ -884,6 +1130,10 @@
884
1130
  grid-template-columns: repeat(2, minmax(0, 1fr));
885
1131
  }
886
1132
 
1133
+ .operatorGrid {
1134
+ grid-template-columns: 1fr;
1135
+ }
1136
+
887
1137
  .column {
888
1138
  max-height: 28rem;
889
1139
  }
@@ -895,6 +1145,14 @@
895
1145
  align-items: flex-start;
896
1146
  }
897
1147
 
1148
+ .metaControls {
1149
+ justify-content: flex-start;
1150
+ }
1151
+
1152
+ .focusHeader {
1153
+ flex-direction: column;
1154
+ }
1155
+
898
1156
  .summaryBar,
899
1157
  .kanbanGrid {
900
1158
  grid-template-columns: 1fr;
@@ -903,4 +1161,86 @@
903
1161
  .actionGrid {
904
1162
  grid-template-columns: 1fr;
905
1163
  }
1164
+
1165
+ .listTable {
1166
+ min-width: 0;
1167
+ }
1168
+ }
1169
+
1170
+ @media (max-width: 420px) {
1171
+ .dashboardRoot {
1172
+ padding: 0.7rem;
1173
+ }
1174
+
1175
+ .metaControls {
1176
+ width: 100%;
1177
+ gap: 0.45rem;
1178
+ }
1179
+
1180
+ .inlineActions {
1181
+ width: 100%;
1182
+ flex-wrap: wrap;
1183
+ }
1184
+
1185
+ .listPagination {
1186
+ align-items: stretch;
1187
+ }
1188
+
1189
+ .listActions {
1190
+ flex-wrap: wrap;
1191
+ }
1192
+
1193
+ .listActionMenu {
1194
+ left: 0;
1195
+ right: auto;
1196
+ }
1197
+
1198
+ .button,
1199
+ .linkButton {
1200
+ min-height: 2.15rem;
1201
+ flex: 1 1 auto;
1202
+ }
1203
+
1204
+ .filterRow {
1205
+ align-items: stretch;
1206
+ }
1207
+
1208
+ .filterSearch {
1209
+ min-width: 0;
1210
+ width: 100%;
1211
+ }
1212
+
1213
+ .filterGroup {
1214
+ width: 100%;
1215
+ }
1216
+
1217
+ .filterToggle {
1218
+ flex: 1 1 auto;
1219
+ text-align: center;
1220
+ }
1221
+
1222
+ .detailPanel {
1223
+ padding: 0.75rem;
1224
+ }
1225
+
1226
+ .evidenceRowHeader {
1227
+ flex-wrap: wrap;
1228
+ align-items: flex-start;
1229
+ }
1230
+
1231
+ .toastStack {
1232
+ left: 0.5rem;
1233
+ right: 0.5rem;
1234
+ }
1235
+
1236
+ .toast {
1237
+ min-width: 0;
1238
+ width: 100%;
1239
+ max-width: none;
1240
+ }
1241
+
1242
+ .modalActions {
1243
+ flex-direction: column-reverse;
1244
+ align-items: stretch;
1245
+ }
906
1246
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  **Version:** 2.0 (rewritten for execution quality)
6
6
  **Date:** 2026-03-05
7
- **Status:** Draft
7
+ **Status:** Completed
8
8
  **Roadmap Mapping:** M45
9
9
  **Depends On:** M44 (UX-01..UX-20 complete)
10
10