From fe35b280ff2f25305c906ec0e02fe603e865e662 Mon Sep 17 00:00:00 2001 From: Lily Shen <115414357+lilyshen0722@users.noreply.github.com> Date: Sun, 1 Nov 2026 06:44:21 -0800 Subject: [PATCH 1/2] fix(agent-settings): frame column cap, phone fold chrome, header stack, phone rows (TASK-731) Review HOLD at 02cd7e935: body column had no 1000px cap; the phone fold button picked up the old button chrome; the header used flex where the frame sets display:block; phone list rows wrapped the value cell, which the frame omits at 390. Co-Authored-By: Claude Haiku 5.5 Co-authored-by: kite Agent-Model: claude/claude-haiku-5-5/default --- frontend/src/v2/__tests__/v2-layout-invariants.test.ts | 2 +- frontend/src/v2/agents/v2-agent-settings-surface.css | 4 +++- frontend/src/v2/agents/v2-agent-settings.css | 8 ++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/frontend/src/v2/__tests__/v2-layout-invariants.test.ts b/frontend/src/v2/__tests__/v2-layout-invariants.test.ts index 084c4edce..d387deb22 100644 --- a/frontend/src/v2/__tests__/v2-layout-invariants.test.ts +++ b/frontend/src/v2/__tests__/v2-layout-invariants.test.ts @@ -221,7 +221,7 @@ describe('v2 layout invariants (CSS rule presence)', () => { }); test('agent Settings buttons retain their chrome over the v2 button reset', () => { - const button = ruleBody(agentSettings, '.v2-root .v2-agent-settings button:not(.MuiButtonBase-root):not(.b):not(.seg > button)'); + const button = ruleBody(agentSettings, '.v2-root .v2-agent-settings button:not(.MuiButtonBase-root):not(.b):not(.seg > button):not(.v2-agent-wake-pods__fold)'); expect(button).toContain('border: 1px solid var(--v2-border)'); expect(button).toContain('background: var(--v2-surface)'); expect(ruleBody(agentSettings, '.v2-root .v2-agent-settings .v2-agent-settings__section-head button')).toContain('background: var(--v2-ink)'); diff --git a/frontend/src/v2/agents/v2-agent-settings-surface.css b/frontend/src/v2/agents/v2-agent-settings-surface.css index e194c3ffe..460f0f2f0 100644 --- a/frontend/src/v2/agents/v2-agent-settings-surface.css +++ b/frontend/src/v2/agents/v2-agent-settings-surface.css @@ -80,7 +80,7 @@ .v2-agent-settings-page .ph { flex: none; min-height: 76px; display: flex; align-items: center; gap: 10px; padding: 0 20px 0 28px; border-bottom: 1px solid var(--d); box-sizing: border-box; } .v2-agent-settings-page .ph h1 { font: 800 24px/1 var(--f-display); letter-spacing: -0.03em; margin: 0; white-space: nowrap; } .v2-agent-settings-page .ph .sp { flex: 1; } -.v2-agent-settings-page .ahead { display: flex; align-items: center; gap: 12px; } +.v2-agent-settings-page .ahead { display: block; } .v2-agent-settings-page .ahead h1 { font: 800 24px/1 var(--f-display); letter-spacing: -0.03em; margin: 0; } .v2-agent-settings-page .ahead .st { display: flex; align-items: center; gap: 6px; font: 500 11.5px/1 var(--f-mono); color: var(--mu); margin-top: 5px; } .v2-agent-settings-page .mo { font-family: var(--f-mono); } @@ -90,6 +90,7 @@ .v2-agent-settings-page .gtitle { font: 500 11.5px/1 var(--f-mono); color: var(--mu); margin: 18px 4px 8px; display: flex; align-items: center; gap: 8px; } .v2-agent-settings-page .gtitle:first-child { margin-top: 0; } .v2-agent-settings-page .list { border-radius: 12px; box-shadow: inset 0 0 0 1px var(--d); background: var(--sf); } +.v2-agent-settings-page__col { max-width: 1000px; margin: 0 auto; } .v2-agent-settings-page .lrow { display: grid; grid-template-columns: 180px minmax(0, 1fr) auto; align-items: center; gap: 14px; min-height: 52px; padding: 8px 14px 8px 16px; border-top: 1px solid var(--d); } .v2-agent-settings-page .lrow:first-child { border-top: 0; } .v2-agent-settings-page .lrow .lb { font-size: 13px; font-weight: 600; color: var(--ink); display: flex; align-items: center; gap: 8px; } @@ -130,6 +131,7 @@ .v2-agent-settings-page .ph .sp { display: none; } .v2-agent-settings-page .lrow { grid-template-columns: minmax(0, 1fr) auto; min-height: 48px; padding: 8px 12px; } .v2-agent-settings-page .lrow .lb { font-weight: 500; } + .v2-agent-settings-page .lrow .vl { display: none; } } @media (max-width: 600px) { .v2-agent-settings-page .wt thead { display: none; } diff --git a/frontend/src/v2/agents/v2-agent-settings.css b/frontend/src/v2/agents/v2-agent-settings.css index 0a83dcd48..2cc62bf1d 100644 --- a/frontend/src/v2/agents/v2-agent-settings.css +++ b/frontend/src/v2/agents/v2-agent-settings.css @@ -43,7 +43,7 @@ .v2-agent-settings__section h2 { margin: 0; font-family: var(--v2-font-display); font-size: 20px; } /* Lifted buttons (.b, icon .ib, segment tabs) belong to the surface (v2-agent-settings-surface.css); excluded here so this (0,3,1) rule does not out-rank their sizing or focus ring. */ -.v2-root .v2-agent-settings button:not(.MuiButtonBase-root):not(.b):not(.seg > button) { +.v2-root .v2-agent-settings button:not(.MuiButtonBase-root):not(.b):not(.seg > button):not(.v2-agent-wake-pods__fold) { min-height: 34px; padding: 6px 12px; border: 1px solid var(--v2-border); @@ -55,9 +55,9 @@ font-weight: 600; cursor: pointer; } -.v2-root .v2-agent-settings button:not(.b):not(.seg > button):hover { background: var(--v2-surface-hover); } -.v2-root .v2-agent-settings button:not(.b):not(.seg > button):focus-visible { box-shadow: var(--v2-focus-ring); outline: 1px solid var(--v2-accent); } -.v2-root .v2-agent-settings button:not(.b):not(.seg > button):disabled { opacity: .55; cursor: default; } +.v2-root .v2-agent-settings button:not(.b):not(.seg > button):not(.v2-agent-wake-pods__fold):hover { background: var(--v2-surface-hover); } +.v2-root .v2-agent-settings button:not(.b):not(.seg > button):not(.v2-agent-wake-pods__fold):focus-visible { box-shadow: var(--v2-focus-ring); outline: 1px solid var(--v2-accent); } +.v2-root .v2-agent-settings button:not(.b):not(.seg > button):not(.v2-agent-wake-pods__fold):disabled { opacity: .55; cursor: default; } .v2-root .v2-agent-settings .v2-agent-settings__section-head button { background: var(--v2-ink); color: var(--v2-on-ink); border-color: var(--v2-ink); } .v2-root .v2-agent-settings .v2-agent-settings__actions button:first-child { background: var(--v2-ink); color: var(--v2-on-ink); border-color: var(--v2-ink); } .v2-root .v2-agent-settings .v2-agent-settings__section-head button:hover, From 08796e0f73621c0a095656be29197c628ff12fc4 Mon Sep 17 00:00:00 2001 From: Lily Shen <115414357+lilyshen0722@users.noreply.github.com> Date: Sun, 1 Nov 2026 06:48:01 -0800 Subject: [PATCH 2/2] fix(agent-settings): keep phone status line visible under the label (TASK-731) The 390 fix hid every .lrow .vl, which dropped the Connection status on phones. The value now sits on a second line under the label and the action spans both lines, so each row still starts on one line. Co-Authored-By: Claude Haiku 5.5 Co-authored-by: kite Agent-Model: claude/claude-haiku-5-5/default --- frontend/src/v2/__tests__/v2-layout-invariants.test.ts | 7 +++++++ frontend/src/v2/agents/v2-agent-settings-surface.css | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/frontend/src/v2/__tests__/v2-layout-invariants.test.ts b/frontend/src/v2/__tests__/v2-layout-invariants.test.ts index d387deb22..e0a56ba6d 100644 --- a/frontend/src/v2/__tests__/v2-layout-invariants.test.ts +++ b/frontend/src/v2/__tests__/v2-layout-invariants.test.ts @@ -220,6 +220,13 @@ describe('v2 layout invariants (CSS rule presence)', () => { expect(header).toContain('align-items: flex-start'); }); + test('agent Settings phone rows keep the value cell visible under the label', () => { + const surface = read('../agents/v2-agent-settings-surface.css'); + const phone = surface.slice(surface.indexOf('@media (max-width: 600px)')); + expect(ruleBody(phone, '.v2-agent-settings-page .lrow .vl')).toContain('grid-row: 2'); + expect(ruleBody(phone, '.v2-agent-settings-page .lrow .ac')).toContain('grid-row: 1 / span 2'); + }); + test('agent Settings buttons retain their chrome over the v2 button reset', () => { const button = ruleBody(agentSettings, '.v2-root .v2-agent-settings button:not(.MuiButtonBase-root):not(.b):not(.seg > button):not(.v2-agent-wake-pods__fold)'); expect(button).toContain('border: 1px solid var(--v2-border)'); diff --git a/frontend/src/v2/agents/v2-agent-settings-surface.css b/frontend/src/v2/agents/v2-agent-settings-surface.css index 460f0f2f0..f024037df 100644 --- a/frontend/src/v2/agents/v2-agent-settings-surface.css +++ b/frontend/src/v2/agents/v2-agent-settings-surface.css @@ -131,7 +131,8 @@ .v2-agent-settings-page .ph .sp { display: none; } .v2-agent-settings-page .lrow { grid-template-columns: minmax(0, 1fr) auto; min-height: 48px; padding: 8px 12px; } .v2-agent-settings-page .lrow .lb { font-weight: 500; } - .v2-agent-settings-page .lrow .vl { display: none; } + .v2-agent-settings-page .lrow .vl { grid-column: 1; grid-row: 2; font-size: 12px; } + .v2-agent-settings-page .lrow .ac { grid-row: 1 / span 2; } } @media (max-width: 600px) { .v2-agent-settings-page .wt thead { display: none; }