Skip to content

2026.3.2

Choose a tag to compare

@hex hex released this 01 Mar 20:28
· 78 commits to main since this release

Streaming Display Pane

Images now appear progressively during parallel generation instead of waiting for all providers to finish.

What's new

  • display_pane_open() -- opens a single tmux pane before generation starts; returns a watch directory path
  • display_pane_add() -- appends an image path to the shared manifest (called transparently by display_image())
  • display_pane_close() -- signals the watcher to stop polling and show interactive controls ([f]inder [p]review [esc] close)
  • display_image() routing -- when DISPLAY_PANE_DIR is set, images route to the shared pane instead of opening separate panes. Zero changes required in provider scripts.

How it works

  1. display_pane_open creates a temp directory with a manifest file and terminal-specific render.sh
  2. A tmux pane watcher polls the manifest every 0.3s, rendering new images as they appear
  3. Provider scripts call display_image() as before -- routing is transparent via DISPLAY_PANE_DIR
  4. display_pane_close touches a .done sentinel; the watcher stops and shows controls

Tests

16 new tests covering all streaming pane functions (65 display tests, 99 total).