Skip to content

fix(ui): prevent Logs filters overlapping entries at larger text scales#112170

Merged
vincentkoc merged 1 commit into
mainfrom
fix/control-ui-logs-responsive
Jul 21, 2026
Merged

fix(ui): prevent Logs filters overlapping entries at larger text scales#112170
vincentkoc merged 1 commit into
mainfrom
fix/control-ui-logs-responsive

Conversation

@vincentkoc

@vincentkoc vincentkoc commented Jul 21, 2026

Copy link
Copy Markdown
Member

What Problem This Solves

Fixes an issue where users opening Logs in the macOS app or a narrow Control UI window at a larger text scale could see the file path, severity filters, and log entries overlap after navigating from Settings.

Why This Change Was Made

The Logs fill-height rules now load with the Logs page instead of arriving as a side effect of the Config page stylesheet. The two control rows keep their content height while the log stream remains the flexible, scrollable region. No macOS shell change is needed because the app embeds the shared Control UI.

User Impact

Logs remain readable and usable in the macOS dashboard viewport and narrow browser windows, including at 125% text scale. Filters wrap normally without log entries rendering through them.

Evidence

  • Before: the new native-layout E2E reproduced the overlap at 863x584 and 125% text scale after navigating Settings -> Logs; it failed because a control row had scrollHeight 69 inside clientHeight 49.

  • After: the same E2E passes and records non-overlapping control rows plus the scrollable log stream.

  • Visual proof:

    Before After
    Logs controls overlapping before the fix Logs controls separated after the fix

    Before recording · After recording · Proof bundle

  • node scripts/run-vitest.mjs run --config test/vitest/vitest.ui-e2e.config.ts --configLoader runner ui/src/e2e/logs-layout.e2e.test.ts ui/src/e2e/logs-autofollow.e2e.test.ts - 2 tests passed.

  • node scripts/run-vitest.mjs run ui/src/pages/logs/view.test.ts ui/src/pages/logs/logs-page.test.ts - 12 tests passed.

  • Blacksmith Testbox production build passed, including Control UI asset and performance checks: https://github.com/openclaw/openclaw/actions/runs/29805732387

  • Blacksmith Testbox node scripts/run-tsgo.mjs -b tsconfig.projects.json - exit 0.

  • oxfmt --check and git diff --check passed.

  • Fresh branch autoreview: no accepted/actionable findings.

AI-assisted: yes.

@vincentkoc vincentkoc self-assigned this Jul 21, 2026
@openclaw-barnacle openclaw-barnacle Bot added app: web-ui App: web-ui size: M maintainer Maintainer-authored PR labels Jul 21, 2026
@clawsweeper

clawsweeper Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper status: review started.

I am starting a fresh review of this pull request: fix(ui): prevent Logs filters overlapping entries at larger text scales This is item 1/1 in the current shard. Shard 0/1.

This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking.

Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted.

@vincentkoc
vincentkoc marked this pull request as ready for review July 21, 2026 06:27
@vincentkoc
vincentkoc merged commit f1d2565 into main Jul 21, 2026
158 of 163 checks passed
@vincentkoc
vincentkoc deleted the fix/control-ui-logs-responsive branch July 21, 2026 06:32
@vincentkoc

Copy link
Copy Markdown
Member Author

Merged via squash.

vincentkoc added a commit that referenced this pull request Jul 21, 2026
* origin/main: (24 commits)
  fix(agents): keep compaction on live session model (#95713)
  fix(plugin-sdk): guard provider catalog live URL parsing against malformed responses (#109986)
  chore(cli): drop dead classifiers and single-use wrappers left by fallback removal (#112191)
  feat(ui): expand the lobster pet's random universe (#112073)
  chore(ci): audit dependency fingerprint exports (#112190)
  fix(ui): preserve graphemes in provider icons (#109509)
  fix(ui): align settings search with navigation rows (#112172)
  fix(agents): allow configless gateway rebind to activate standalone owner (#111841)
  fix(secrets): register secret targets for installed-origin plugins (#104347)
  improve(ui): show real machine identity in the place picker (#112162)
  fix: webChat scrollback history is too limited — older assistant replies and tool outputs disappear when scrolling… (#104250)
  test(ui): run DOM-free suites in Node (#112031)
  feat(nodes): make computer.act eligibility capability-based for desktop nodes (#112107)
  fix(apps): harden mobile gateway and watch state
  fix(ci): restore Z.AI API Platform validation (#112171)
  fix(ui): prevent Logs controls from overlapping (#112170)
  fix #95291: message tool fails to deliver files/images on Feishu (400 volc-dcdn / write ECONNRESET) while same Lark SDK upload succeeds standalone (#95514)
  refactor(cli)!: remove automatic gateway→embedded fallback from openclaw agent (#112074)
  refactor: move provider transports into packages/ai behind a typed host port (#111669)
  fix(anthropic): complete transcript reverse-scan windows across short reads (#109431)
  ...
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: web-ui App: web-ui maintainer Maintainer-authored PR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant