From 319c604e9da29f0d66e3b9191a8ef2c486b843d0 Mon Sep 17 00:00:00 2001 From: Huarch Date: Mon, 20 Jul 2026 17:17:55 +0800 Subject: [PATCH] fix: stabilize agent UI and SCADA card --- app/globals.css | 13 +- .../agent/components/agent-collapsed-rail.tsx | 5 +- .../agent/components/agent-command-panel.tsx | 61 +--- .../components/agent-message-details.tsx | 98 +++--- .../components/agent-ui-envelope-renderer.tsx | 1 - .../streaming-token-response-state.ts | 301 ------------------ .../components/streaming-token-response.tsx | 57 +--- .../streaming-token-response-state.test.ts | 132 -------- .../agent/streaming-token-response.test.ts | 17 + .../components/drainage-feature-icons.tsx | 11 + .../workbench/components/feature-popover.tsx | 128 +------- .../browser/agent-streaming-stability.e2e.ts | 284 +++++++++++++++++ 12 files changed, 408 insertions(+), 700 deletions(-) delete mode 100644 features/agent/components/streaming-token-response-state.ts delete mode 100644 features/agent/streaming-token-response-state.test.ts create mode 100644 features/agent/streaming-token-response.test.ts create mode 100644 tests/browser/agent-streaming-stability.e2e.ts diff --git a/app/globals.css b/app/globals.css index cf4eab4..aaa49f0 100644 --- a/app/globals.css +++ b/app/globals.css @@ -324,6 +324,16 @@ input:focus-visible { border-color: var(--acrylic-border); } +.agent-panel-header { + position: relative; + z-index: 1; + border-top-left-radius: inherit; + border-top-right-radius: inherit; + box-shadow: + inset 0 1px 0 rgba(255, 255, 255, 0.86), + 0 10px 24px rgba(15, 23, 42, 0.07); +} + .agent-panel-band { background: var(--surface-control); } @@ -507,7 +517,6 @@ input:focus-visible { agent-panel-reveal 170ms cubic-bezier(0.22, 1, 0.36, 1), agent-panel-fade 150ms ease-out; transform-origin: left top; - will-change: opacity, transform; } .agent-panel-collapse { @@ -516,7 +525,6 @@ input:focus-visible { agent-panel-dim 150ms ease-in forwards; pointer-events: none; transform-origin: left top; - will-change: opacity, transform; } .agent-rail-enter { @@ -524,7 +532,6 @@ input:focus-visible { agent-rail-shell 170ms cubic-bezier(0.22, 1, 0.36, 1), agent-panel-fade 130ms ease-out; transform-origin: left top; - will-change: opacity, transform; } .agent-rail-item { diff --git a/features/agent/components/agent-collapsed-rail.tsx b/features/agent/components/agent-collapsed-rail.tsx index 62104b4..a0009cc 100644 --- a/features/agent/components/agent-collapsed-rail.tsx +++ b/features/agent/components/agent-collapsed-rail.tsx @@ -14,7 +14,10 @@ type AgentCollapsedRailProps = { export function AgentCollapsedRail({ personaState, statusLabel = "Agent", onExpand }: AgentCollapsedRailProps) { return ( -