diff --git a/CHANGELOG.md b/CHANGELOG.md index 92b6af2d..0ffa45aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -71,6 +71,10 @@ ### Fixed +- **Approval and clarify popups no longer collapse to tiny blank windows on very narrow screens.** On very narrow viewports the clarify card could shrink to an unreadable sliver; it now gets a `min-width` and `overflow:visible` matching the approval card. Thanks @webtecnica. (#6104, #6094) + +- **Stream event timestamps no longer break the row layout on narrow foldable screens.** On screens under 360px the per-event timestamps could spill out of tool/thinking card headers; the headers now clip overflow so the timestamp layout holds. (Tool names stay visible — an earlier draft hid them at ≤360px, which lost tool identity; the header clip alone prevents the spill.) Thanks @webtecnica. (#6106, #6099) + - **Streaming sidebar polls no longer re-run the expensive CLI/cron projection every few seconds.** The per-stream cache TTL was pinned at 30s while the frontend's streaming sidebar poll cadence could approach it, so the state.db CLI/cron projection (and its ~200 sidecar reads) could be re-paid on nearly every poll during a live turn (the #4842/#4808 high-CPU `get_cli_sessions` case). The streaming TTL is now held strictly above the sidebar poll interval (45s) and paired with the stable streaming cache key, so repeated polls reuse the projection; a new test asserts the TTL stays above the poll cadence so this can't silently regress. Thanks @starship-s. (#6102, #4842) - **Delegated subagent sessions in the sidebar now show a meaningful title instead of "Subagent Session".** Generic delegated child sessions previously all displayed the placeholder "Subagent Session" in the conversations list, making them indistinguishable. Their sidebar title is now derived (view-only) from the child's first user message during the existing batched sidebar-metadata pass — without mutating the stored session title, so the read-only boundary is preserved. Only generic "Subagent Session" placeholders are affected; custom titles are left untouched. Thanks @rodboev. (#6056, #6033) diff --git a/static/style.css b/static/style.css index 2b647fae..b031db52 100644 --- a/static/style.css +++ b/static/style.css @@ -3205,7 +3205,7 @@ .send-btn.visible{animation:none;opacity:1;transform:none;} /* Approval card */ .approval-card{padding-left:10px;padding-right:10px;bottom:8px;overflow:visible;} - .approval-inner{max-height:min(52vh,360px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:12px 12px 14px;border-radius:12px;box-shadow:0 -10px 30px rgba(0,0,0,.24);} + .approval-inner{max-height:min(52vh,360px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:12px 12px 14px;border-radius:12px;box-shadow:0 -10px 30px rgba(0,0,0,.24);min-width:min(100%,280px);} @supports (height:100dvh){.approval-inner{max-height:min(60dvh,420px);}} .approval-header{margin-bottom:8px;} .approval-collapse,.approval-dismiss{width:44px;height:44px;line-height:1;overflow:hidden;} @@ -3215,10 +3215,10 @@ .approval-btn.yolo{grid-column:1 / -1;} .approval-kbd{display:none;} /* Clarify card */ - .clarify-card{padding-left:10px;padding-right:10px;max-height:clamp(180px,min(62vh,calc(100vh - 180px)),360px);} + .clarify-card{padding-left:10px;padding-right:10px;overflow:visible;max-height:clamp(180px,min(62vh,calc(100vh - 180px)),360px);} .clarify-card .clarify-inner{max-height:clamp(180px,min(62vh,calc(100vh - 180px)),360px);} @supports (height:100dvh){.clarify-card,.clarify-card .clarify-inner{max-height:clamp(180px,min(62dvh,calc(100dvh - 180px)),360px);}} - .clarify-inner{padding:12px 12px 13px;} + .clarify-inner{padding:12px 12px 13px;min-width:min(100%,280px);} .clarify-response{flex-direction:column;align-items:stretch;} .clarify-input,.clarify-submit{width:100%;min-height:44px;} .clarify-choice{min-height:44px;} @@ -4089,8 +4089,10 @@ body.resizing .sidebar{transition:none!important;} padding:1px 4px 1px 7px; margin-left:0; border-radius:0; + overflow:hidden; color:var(--muted); transition:background .18s ease,color .18s ease; + overflow:hidden; } .transparent-event-row .tool-card-header:hover, .transparent-event-row .thinking-card-header:hover{background:var(--hover-bg);color:var(--text);}