diff --git a/web/hwlab-cloud-web/scripts/agent-observer-ui-contract.test.ts b/web/hwlab-cloud-web/scripts/agent-observer-ui-contract.test.ts index 95d828d2..e5d7c2ac 100644 --- a/web/hwlab-cloud-web/scripts/agent-observer-ui-contract.test.ts +++ b/web/hwlab-cloud-web/scripts/agent-observer-ui-contract.test.ts @@ -80,6 +80,10 @@ test("AgentRun command bar preserves compact desktop and mobile primary controls assert.match(viewSource, /class="agent-observer-stream"/); }); +test("AgentRun workspace always owns the remaining grid row", () => { + assert.match(styleSource, /agent-observer-workspace \{ grid-row: -2 \/ -1;/); +}); + function readSource(relativePath: string): string { return readFileSync(new URL(relativePath, import.meta.url), "utf8"); } diff --git a/web/hwlab-cloud-web/src/styles/agent-observer.css b/web/hwlab-cloud-web/src/styles/agent-observer.css index 9d0f8f84..ca04708d 100644 --- a/web/hwlab-cloud-web/src/styles/agent-observer.css +++ b/web/hwlab-cloud-web/src/styles/agent-observer.css @@ -45,7 +45,7 @@ .agent-observer-window-warning { border-color: color-mix(in srgb, var(--console-danger) 35%, var(--console-border)); background: color-mix(in srgb, var(--console-danger) 8%, var(--console-surface)); color: var(--console-danger); } .agent-observer-window-note { margin: 0; background: var(--console-surface-muted); color: var(--console-muted); } -.agent-observer-workspace { min-width: 0; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden; } +.agent-observer-workspace { grid-row: -2 / -1; min-width: 0; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden; } .agent-observer-workspace.has-inspector { grid-template-columns: minmax(0, 1fr) minmax(340px, 420px); } .agent-observer-content { min-width: 0; min-height: 0; overflow: hidden; background: var(--console-surface); } .agent-observer-skeleton { height: 100%; padding: 12px; display: grid; align-content: start; gap: 7px; }