feat(ui): add browser-local Control UI text size setting#81487
Conversation
|
Codex review: needs maintainer review before merge. Summary Reproducibility: not applicable. this is a feature PR, not a bug reproduction. Current-main source inspection and the linked issue discussion give a high-confidence absence check for the requested Control UI text-size setting. Real behavior proof Next step before merge Security Review detailsBest possible solution: Land the bounded browser-local text-scale setting after normal maintainer review and green relevant checks, keeping server-side gateway typography config out unless explicitly requested. Do we have a high-confidence way to reproduce the issue? Not applicable: this is a feature PR, not a bug reproduction. Current-main source inspection and the linked issue discussion give a high-confidence absence check for the requested Control UI text-size setting. Is this the best way to solve the issue? Yes, as a PR direction: the browser-local What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against c3e5d85ce1df. |
|
Merge verification for PR #81487 on exact head Local proof: git fetch origin main meow/control-ui-text-scale
git merge --ff-only origin/meow/control-ui-text-scale
git diff --check origin/main...HEADResult: GitHub proof:
Known proof gap: I did not rerun local Vitest after the remote branch was refreshed because this worktree has no |
Summary
textScalesetting with bounded stops (90%, 100%, 110%, 125%, 140%) persisted in Control UI settings.Fixes #8547.
Triage / duplicates
origin/main.prtagsduplicate writes/searches were attempted, butprtags.dutiful.devreturned 502 for group search/list, so duplicate tagging is blocked by the curation backend rather than skipped.Security / bug check
Verification
pnpm docs:listgit diff --checkpnpm format:docs:checkpnpm exec oxfmt --check --threads=1 ui/src/ui/storage.ts ui/src/ui/app-settings.ts ui/src/ui/app.ts ui/src/ui/app-view-state.ts ui/src/ui/app-render.ts ui/src/ui/views/config.ts ui/src/ui/views/config-quick.ts ui/src/ui/storage.node.test.ts ui/src/ui/app-settings.test.ts ui/src/ui/views/config-quick.test.ts ui/src/ui/views/config.browser.test.ts ui/src/ui/app-render.assistant-avatar.test.ts ui/src/styles/base.css ui/src/styles/chat/layout.css ui/src/styles/chat/sidebar.css ui/src/styles/chat/text.css ui/src/styles/chat/text.test.ts ui/src/styles/chat/tool-cards.css ui/src/styles/config.css ui/src/styles/chat/layout.test.tspnpm test ui/src/ui/app-settings.test.ts ui/src/ui/storage.node.test.ts ui/src/ui/views/config-quick.test.ts ui/src/ui/views/config.browser.test.ts ui/src/styles/chat/layout.test.ts ui/src/styles/chat/text.test.ts(passed: 95 files, 974 tests)pnpm check:changed: https://github.com/openclaw/openclaw/actions/runs/25815015219src/plugins/registry.runtime-config.test.tson current head (PluginRuntimemock shape and missingconfigSchemain fixture). No changed files are implicated.Local environment note
This worktree did not have
node_modules;pnpm installwas retried and blocked by the repominimumReleaseAgeguard for recently published packages (@pierre/[email protected], then[email protected]). I did not bypass that guard. Local focused tests used the canonical checkout's existing dependency tree; Testbox provided the clean CI-style dependency environment for broad changed checks.