From 260e0938e17d28852236f7bbfc3a5a91667db434 Mon Sep 17 00:00:00 2001 From: Edwin Date: Fri, 22 May 2026 16:11:26 -0700 Subject: [PATCH] fix(tui): hide browser preview caption --- crates/cli/src/app.rs | 9 --------- crates/cli/src/ui.rs | 29 +++-------------------------- 2 files changed, 3 insertions(+), 35 deletions(-) diff --git a/crates/cli/src/app.rs b/crates/cli/src/app.rs index f1fde027..d7be7313 100644 --- a/crates/cli/src/app.rs +++ b/crates/cli/src/app.rs @@ -517,7 +517,6 @@ pub fn decode_browser_preview_image(b64: &str) -> Option, /// When this preview first arrived — drives the matrix-rain @@ -1414,7 +1413,6 @@ impl App { self.browser_previews.insert( session_id, BrowserPreviewState { - preview, hide_after: now + BROWSER_PREVIEW_TTL, hover_started: None, decoded, @@ -5303,13 +5301,6 @@ mod tests { app.browser_previews.insert( "s1".into(), BrowserPreviewState { - preview: agentd_protocol::BrowserPreview { - url: "http://example.com".into(), - title: None, - image: String::new(), - width: 32, - height: 24, - }, hide_after: Instant::now() + Duration::from_secs(60), hover_started: None, decoded: Some(std::sync::Arc::new(image::RgbaImage::from_pixel( diff --git a/crates/cli/src/ui.rs b/crates/cli/src/ui.rs index b054b7d2..33865991 100644 --- a/crates/cli/src/ui.rs +++ b/crates/cli/src/ui.rs @@ -2369,7 +2369,6 @@ fn render_browser_preview_overlay( let Some(preview_state) = preview else { return (None, None); }; - let preview = &preview_state.preview; if area.width < 40 || area.height < 12 { return (None, None); } @@ -2390,9 +2389,8 @@ fn render_browser_preview_overlay( return (None, None); } - let caption_rows = 1; let max_inner_w = max_w.saturating_sub(2).max(1) as u32; - let max_inner_h = max_h.saturating_sub(2 + caption_rows).max(1) as u32; + let max_inner_h = max_h.saturating_sub(2).max(1) as u32; let scale = (max_inner_w as f32 / w as f32).min((max_inner_h as f32 * 2.0) / h as f32); let out_w = ((w as f32 * scale).round() as u32).clamp(1, max_inner_w) as u16; @@ -2400,7 +2398,7 @@ fn render_browser_preview_overlay( let rows = out_h_px.div_ceil(2); let panel_w = out_w + 2; - let panel_h = rows + caption_rows + 2; + let panel_h = rows + 2; let panel = Rect { x: area.x + area.width.saturating_sub(panel_w + 1), @@ -2439,7 +2437,7 @@ fn render_browser_preview_overlay( x: inner.x, y: inner.y, width: inner.width, - height: inner.height.saturating_sub(caption_rows), + height: inner.height, }; if let Some(img) = preview_state.decoded.as_ref() { // Same dial-up reveal/erase as the matrix wallpaper, in sync. @@ -2456,27 +2454,6 @@ fn render_browser_preview_overlay( paint_resized_half_blocks(f, image_area, &resized, 1.0, row_frac); } } - if inner.height > 0 { - let caption = preview - .title - .as_deref() - .filter(|s| !s.is_empty()) - .unwrap_or(&preview.url); - let caption = truncate_to_width(caption, inner.width as usize); - let caption_area = Rect { - x: inner.x, - y: inner.y + inner.height - 1, - width: inner.width, - height: 1, - }; - f.render_widget( - Paragraph::new(Line::from(Span::styled( - caption, - Style::default().fg(theme.dim), - ))), - caption_area, - ); - } (Some(panel), Some(close_bounds)) }