mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-07 23:31:07 +00:00
fix(ui): prevent overview access grid layout overlap on resize (#56924)
Merged via squash.
Prepared head SHA: ab327093fc
Co-authored-by: bbddbb1 <75060417+bbddbb1@users.noreply.github.com>
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Reviewed-by: @altaywtf
This commit is contained in:
@@ -111,6 +111,7 @@ Docs: https://docs.openclaw.ai
|
||||
- Agents/compaction: keep assistant tool calls and displaced tool results in the same compaction chunk so strict summarization providers stop rejecting orphaned tool pairs. (#58849) Thanks @openperf.
|
||||
- Outbound/sanitizer: strip leaked `<tool_call>`, `<function_calls>`, and model special tokens from shared user-visible assistant text, including truncated tool-call streams, so internal scaffolding no longer bleeds into replies across surfaces. (#60619) Thanks @oliviareid-svg.
|
||||
- Control UI/avatar: honor `ui.assistant.avatar` when serving `/avatar/:agentId` so Appearance UI avatar paths stop falling back to initials placeholders. (#60778) Thanks @hannasdev.
|
||||
- Control UI/Overview: prevent gateway access token/password visibility toggle buttons from overlapping their inputs at narrow widths. (#56924) Thanks @bbddbb1.
|
||||
|
||||
## 2026.4.2
|
||||
|
||||
|
||||
@@ -221,11 +221,11 @@ export function renderOverview(props: OverviewProps) {
|
||||
: html`
|
||||
<label class="field">
|
||||
<span>${t("overview.access.token")}</span>
|
||||
<div style="display: flex; align-items: center; gap: 8px;">
|
||||
<div style="display: flex; align-items: center; gap: 8px; min-width: 0;">
|
||||
<input
|
||||
type=${props.showGatewayToken ? "text" : "password"}
|
||||
autocomplete="off"
|
||||
style="flex: 1;"
|
||||
style="flex: 1 1 0%; min-width: 0; box-sizing: border-box;"
|
||||
.value=${props.settings.token}
|
||||
@input=${(e: Event) => {
|
||||
const v = (e.target as HTMLInputElement).value;
|
||||
@@ -236,7 +236,7 @@ export function renderOverview(props: OverviewProps) {
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn--icon ${props.showGatewayToken ? "active" : ""}"
|
||||
style="width: 36px; height: 36px;"
|
||||
style="flex-shrink: 0; width: 36px; height: 36px; box-sizing: border-box;"
|
||||
title=${props.showGatewayToken ? "Hide token" : "Show token"}
|
||||
aria-label="Toggle token visibility"
|
||||
aria-pressed=${props.showGatewayToken}
|
||||
@@ -248,11 +248,11 @@ export function renderOverview(props: OverviewProps) {
|
||||
</label>
|
||||
<label class="field">
|
||||
<span>${t("overview.access.password")}</span>
|
||||
<div style="display: flex; align-items: center; gap: 8px;">
|
||||
<div style="display: flex; align-items: center; gap: 8px; min-width: 0;">
|
||||
<input
|
||||
type=${props.showGatewayPassword ? "text" : "password"}
|
||||
autocomplete="off"
|
||||
style="flex: 1;"
|
||||
style="flex: 1 1 0%; min-width: 0; width: 100%; box-sizing: border-box;"
|
||||
.value=${props.password}
|
||||
@input=${(e: Event) => {
|
||||
const v = (e.target as HTMLInputElement).value;
|
||||
@@ -263,7 +263,7 @@ export function renderOverview(props: OverviewProps) {
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn--icon ${props.showGatewayPassword ? "active" : ""}"
|
||||
style="width: 36px; height: 36px;"
|
||||
style="flex-shrink: 0; width: 36px; height: 36px; box-sizing: border-box;"
|
||||
title=${props.showGatewayPassword ? "Hide password" : "Show password"}
|
||||
aria-label="Toggle password visibility"
|
||||
aria-pressed=${props.showGatewayPassword}
|
||||
|
||||
Reference in New Issue
Block a user