You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Images placed by a TUI app (opencode) render as grey boxes in herdr panes, while the same files render fine in bare Ghostty. There are two distinct failure modes:
Large images: frame dropped by the 32MB cap. opencode's fullscreen viewer transmits ~45MB per frame; herdr logs dropping oversized graphics payload ... graphics_bytes=45360361 max=33554432 and the image never reaches the host terminal. This retried ~15x/sec (114 drops in ~7 min), so the viewer just sits grey.
Small images: silently not painted. A 2KB 400x300 PNG opened fullscreen in the same viewer produces no dropping oversized line and no other WARN/ERROR/GRAPHICS line at all — yet stays grey.
Environment
herdr 0.8.2, stable channel, server + client same version
~/.config/herdr/config.toml contains [experimental] kitty_graphics = true; server fully restarted (herdr server stop + start) after setting it
Plain herdr pane: chafa -f kitty <file> renders fine, so the flag is active and dumb-blast transport works
Same opencode build + same files in bare Ghostty (no herdr): fullscreen viewer renders correctly
Repro
Enable [experimental] kitty_graphics = true, restart the herdr server.
In a herdr pane, run opencode, attach any PNG, open it fullscreen.
4K image: grey box; ~/.config/herdr/herdr-server.log fills with herdr::server::headless: dropping oversized graphics payload for client frame ... graphics_bytes=45360361 max=33554432.
2KB image: grey box; no related log output whatsoever.
Notes / suspected causes
opencode ships the fullscreen image as raw RGBA-ish base64 (~45MB for 3840x2160) per repaint instead of downscaling to the actual cell area — wasteful on its side, but herdr turns it into a silent grey box: the drop is WARN-logged only, nothing surfaces in the UI.
Don't silently drop: chunk oversized graphics across frames (the kitty_graphics.rs continuation machinery suggests this was anticipated), or at minimum surface a visible "image too large" state instead of grey.
Small forwarded placements should paint (same as shell-pane icat path).
Summary
Images placed by a TUI app (opencode) render as grey boxes in herdr panes, while the same files render fine in bare Ghostty. There are two distinct failure modes:
dropping oversized graphics payload ... graphics_bytes=45360361 max=33554432and the image never reaches the host terminal. This retried ~15x/sec (114 drops in ~7 min), so the viewer just sits grey.dropping oversizedline and no other WARN/ERROR/GRAPHICS line at all — yet stays grey.Environment
~/.config/herdr/config.tomlcontains[experimental] kitty_graphics = true; server fully restarted (herdr server stop+ start) after setting itchafa -f kitty <file>renders fine, so the flag is active and dumb-blast transport worksRepro
[experimental] kitty_graphics = true, restart the herdr server.~/.config/herdr/herdr-server.logfills withherdr::server::headless: dropping oversized graphics payload for client frame ... graphics_bytes=45360361 max=33554432.Notes / suspected causes
Expected
kitty_graphics.rscontinuation machinery suggests this was anticipated), or at minimum surface a visible "image too large" state instead of grey.