Relationships
#1220 Interactive finder preview corrupts: overlapping/stale lines when preview content overflows the pane
Opened by kneel · 7/17/2026· Shipped 7/17/2026
Description
The interactive fuzzy-finder used by swamp model search, swamp model type search,
swamp data search (and any * search) renders its right-hand preview pane
incorrectly whenever the preview content is taller than the pane. Lines are drawn on
top of one another — the widget writes each line without clearing to end-of-line and
mis-handles vertical overflow — so the preview becomes unreadable overlapping text.
Short previews that fit render perfectly; only overflowing previews corrupt, which is
why it looks intermittent.
The same overflow boundary also truncates a full metadata line down to a single
character: e.g. Created: 12h ago renders as C… and everything below it (the report
body / JSON) is dropped entirely.
This is width-independent — it reproduces at 90, 120, 160, and 200 columns — so it is not a "terminal too narrow" issue; it's a draw/clip bug in the preview renderer (Ink / yoga-layout / marked-terminal stack, cf. #708). Likely related class to #377 ("Terminal rendering breaks at large font sizes").
Steps to reproduce
- Run
swamp model type search - Type
forgejoto select the@shrug/forgejotype (a long preview: many methods) - Observe the preview pane. Actual output:
Every other logical line is clobbered by the next one.Methods: 2026.04.13.1 <- "version: 2026.04.13.1" overwritten by "Methods:" limit (integer)repositories owned by or accessible to the authent… repo (string) *requiredda specific repository. owner (string) *requiredissue by number. - For contrast, select
command/shell(a short preview) — it renders cleanly.
Also reproducible via swamp model search (select forgejo) and swamp data search
(select any large-JSON / report entry — this is where Created: → C… and the dropped
body appear).
Additionally, in the list-only "compact" layout the same corrupted preview fragments get painted into the bottom of the result list, e.g.:
blog-deploy (@bixu/github/actions)
owner(string)*requireda specific repository.ible to the authenticate…
Arguments:et a specific issue by number.
get_pull- Get a specific pull request by number.Expected
Preview content taller than the pane should clip/scroll/ellipsize cleanly (each line cleared before redraw), never overwrite adjacent lines or leak into the list.
Environment
- swamp 20260716.194319.0-sha.df9fc306
- Linux (x86_64), zsh
- Reproduced independently in two terminal emulators —
tmux 3.2aand a Pythonpytescreen emulator — so the corruption is swamp's emitted output, not an emulator quirk. - Real-terminal screenshots of
swamp data search(showingCreated: → C…) available.
Shipped
Click a lifecycle step above to view its details.