Commit Graph
13 Commits
Author SHA1 Message Date
can1357 8876eef886 Revert "merge PR #5669 via eval/pr-5669: fix(tui): preserve inline images in scrollback"
This reverts commit 8ac271b90b, reversing
changes made to 5903894e66.
2026-07-17 05:32:26 +02:00
Jeff Scott Ward 980ba0be8a fix(tui): preserve inline images in scrollback 2026-07-16 03:16:29 -04:00
Brit 71d2698237 fix(tui): round SIXEL encode height down to multiple of 6 and scale width to preserve aspect ratio
SIXEL encodes in 6-pixel vertical bands. When targetHeightPx was not a
multiple of 6 (common for cell heights like 16, 19, 20, 21, 22), the
encoder padded the last band. The terminal allocated cell rows for the
padded height, which could cross into one more row than the TUI reserved.
The next line of content then overwrote the bottom of the image, carving
a visible slice out of it.

Fix: round targetHeightPx DOWN to the largest multiple of 6 within the
requested row budget (fit.rows * cellHeight). This eliminates padding
without growing the reserved row count past the caller's maxHeightCells
cap. The width is scaled by the same ratio so resize_exact preserves the
image aspect ratio instead of squashing it vertically.
2026-07-15 18:26:04 +02:00
roboomp d1bcd5812b fix(tui): anchored kitty images through tmux
- Wrapped every Kitty graphics APC for tmux passthrough, preserved quiet mode across chunks, and enabled placeholder placement when Kitty is explicitly forced.

- Routed Agent Hub transcript images through the shared image budget and terminal image setting.

Fixes #5381
2026-07-14 19:53:12 +00:00
can1357 4678c80cd8 fix(tui): fixed inline image transmit replay for full paint
- Adjusted image budget IDs to use a shared 24-bit seed and wrap safely so new budgets no longer collide.
- Added transmit-state reset and changed image output ordering so full paints can replay image data after terminal clears.
- Updated image and protocol tests to match the new wrapped-id behavior and cursor-save/restore-wrapped transmit sequences.
2026-06-17 15:03:32 +02:00
can1357 e4a87fa3ce feat(coding-agent): added matplotlib rendering and image persistence across session reload
- Added Matplotlib figure PNG rendering and display tracking in Python runner to emit PNG output immediately when figures are displayed via display(fig).
- Extended session persistence to externalize oversized image payloads in both content and details.images, enabling tool result images to survive session reload.
- Enhanced session loader to resolve image data payloads and blob references across content and details.images during session reconstruction.
- Added image cache invalidation in TUI image component when image protocol, cell dimensions, or Kitty Unicode placeholder mode changes.
- Added comprehensive test coverage for Matplotlib display, image persistence across reload, and TUI image rendering with protocol and dimension changes.
2026-06-17 13:19:28 +02:00
roboomp bb05990770 fix(tui): anchored kitty image cursor
Added C=1 to Kitty display commands so direct inline-image cursor restoration is the sole row accounting path. Updated focused image rendering and placement encoding coverage.\n\nFixes #2863
2026-06-17 10:37:27 +00:00
roboomp c451e37f97 fix(tui): restored cursor after inline images
Restored the cursor below direct inline-image placements after emitting the graphics sequence so following chat rows cannot overwrite the reserved image area. Added coverage for the placement row terminator.\n\nFixes #2863
2026-06-17 10:10:10 +00:00
can1357 42a05f7b09 fix(coding-agent/modes): allowed transcript rows to re-earn append-only after clean frames
- Changed transcript commit tracking from a volatile boolean to a cooldown counter that decays over clean frames.
- Normalized row equality checks to ignore ANSI and trailing-space noise so equivalent renders do not trigger rewrites.
- Removed the Bun test-runtime exception from Ghostty image paint deferral so normal delay logic always runs.
2026-06-09 19:47:56 +02:00
can1357 6d617e89f3 refactor(tui): removed Kitty temp-file graphics transmission
- Dropped the `t=t` probe, transmission medium, and SSH gating.
- Kitty images now always transmit in-band base64.
2026-06-07 04:24:11 +02:00
can1357 33077363f9 feat(packages/tui): added kitty placeholder image and temp-file flow caps
- Added kitty-graphics module with Unicode placeholder and temp-file APIs.
- Refined terminal image handling to use rendered placeholder lines and detect placeholder output.
- Raised the max inline-image default from 3 to 8 in schema and image constants.
- Refined terminal capability flow for Kitty support, including screen-to-scrollback and text-sizing handling.
- Added integration tests for kitty placeholders, virtual placement, and temp-file rendering.
2026-06-04 00:50:46 +02:00
28d9de74ce Implement Windows Sixel support and terminal capability checks (#241)
* windows sixel imp

* windows sixel imp, terminal capability check, pessimistic sixel selection

* fix codex suggestions

---------

Co-authored-by: Brit <lol@no.com>
2026-03-01 22:23:05 +01:00
Scott Hyndman 7172d0b573 fix(tui): preserve aspect ratio for height-capped images
Image previews were sized from max width first and then height-limited, which could stretch renders when maxHeightCells was the actual limiting bound. Compute a proportional fit within both bounds and forward maxHeightCells through the Image component.
2026-02-24 16:22:55 -05:00