Skip to content

Releases: takora-dev/bentomux

v0.2.70

Choose a tag to compare

@github-actions github-actions released this 02 Nov 02:47
v0.2.70
06acf92
  • hermes --tui and other agent CLIs could leave a stray character on
    screen after a long session: scrolling away cleared it, scrolling back
    brought it back.
  • Cause one: xterm 6.0.0 measures emoji with the Unicode 6 width table, where
    a glyph like 🔥 is one cell wide. Every TUI counts it as two, so each cursor
    move after an emoji landed a column off, and the cell it shifted over kept
    the old contents. The terminal now loads the Unicode 11 table, the same one
    VS Code uses.
  • Cause two: a multi-byte glyph split across two pty reads reached the
    daemon's parser as bare continuation bytes, one junk cell each, shifting the
    rest of the row. The parser now receives the decoded text.

v0.2.69

Choose a tag to compare

@github-actions github-actions released this 31 Oct 05:40
  • Scrolling no longer drags the whole window. After switching to another app
    and coming back, a wheel or trackpad gesture over a terminal pane moved the
    titlebar and sidebar instead of the pane, and only a restart brought
    scrolling back.
  • xterm consumes a wheel event in two places — its own scrollback viewport and
    the mouse-report listener it binds when the app enables wheel tracking — and
    its generic handler does nothing for a buffer that has scrollback. When both
    of those declined the same event, nothing cancelled it, so it left the pane
    and landed on #tabbody, which was scrollable.
  • The document itself is never a scroller now, and a terminal route fills
    #tabbody exactly, so the only scroller inside a pane is the xterm viewport.
  • A pane-level guard consumes any wheel xterm did not take and applies it to
    the buffer, so scrolling still works when xterm's viewport has stopped
    following it. The configured sensitivity of 3 is unchanged, so trackpad
    scrolling feels exactly as it did in v0.2.68.

v0.2.68

Choose a tag to compare

@github-actions github-actions released this 30 Oct 12:26
  • Scrolling with a trackpad works again. xterm's scrollSensitivity defaulted
    to 1, and a macOS trackpad reports deltas of only a few pixels per event:
    at 1 nearly every event moved less than one cell and was swallowed by the
    fractional accumulator before anything reached the screen. A gentle flick
    scrolled a couple of lines at most, or nothing at all.
  • Agent CLIs were hit hardest. Claude Code, codex, pi, opencode and droid all
    run in the alternate screen with mouse tracking on, so the wheel arrives as
    an SGR button 4/5 report that the same function gates: a dropped event is a
    scroll the app never sees. Gemini stays on the main screen and keeps using
    xterm's own scrollback, so it was never affected.
  • 3 is the multiplier VS Code ships for its own xterm panes.

v0.2.67

Choose a tag to compare

@github-actions github-actions released this 25 Oct 17:34
  • Panes no longer garble their text. xterm rethrows a parser error on a
    microtask, far from the write that caused it, and the chunk's callback
    never fires - so the pane kept writing every later byte into a screen one
    frame of escape state short. A pane whose oldest chunk has not been parsed
    after a few seconds is now replayed from the pty host, which owns the
    authoritative screen.
  • A replay no longer turns text into box characters or puts lines in the
    wrong rows. vt100 keeps no charset state, so a pane left in DEC graphics
    mode rendered the replay as line-drawing glyphs, and a scroll region or
    origin mode left by a TUI moved every line. The replay now resets both
    before the grid lands.
  • A replay no longer discards scrollback. It clears the visible screen only;
    the saved lines above it are your history and they stay.
  • Panes no longer drift to a different width than the shell. A resize is a
    request the pty host can clamp or drop, and the renderer used to keep the
    grid it asked for. The host now reports the grid it actually applied and
    the renderer reconciles before falling back to drawing at the pty's size.
  • Output for a mounted pane is written even when a frame is very large, and
    a queued frame is never written twice.

Settings -> Updates

  • Release notes link: opens the GitHub tag page for the version on offer, or
    for the version you run when nothing is pending.
  • The installed version line no longer clings to the status card.

v0.2.66

Choose a tag to compare

@github-actions github-actions released this 23 Oct 05:47
  • Panes no longer garble when you come back to a background tab. A hidden
    pane's buffered output was truncated to its tail, and that tail starts
    mid-escape and lands on a screen that scrolled on without those bytes.
    The pty host already owns the authoritative vt100 screen per pane, so the
    renderer now asks for a replay instead of writing a fragment.
  • Panes no longer flicker while an agent streams. The fit addon clears the
    renderer before it compares sizes, so refitting an already-correct grid
    repainted every cell on every layout pass - and a sidebar status tick is
    one. The pty was also resized twice per change, and a TUI answers each
    resize with a full redraw.
  • Panes no longer freeze and then dump output in one burst. Chunks were
    queued behind requestAnimationFrame, which does not run while the window
    is hidden or minimized, and the queue had no cap: a background run grew
    it until a single enormous write blocked the parser.
  • A refused write now asks for a screen replay instead of being swallowed,
    which used to drop a frame of escape state and render every later byte
    into the wrong cells.

v0.2.65

Choose a tag to compare

@github-actions github-actions released this 22 Oct 07:04
  • Terminal panes no longer garble or freeze. The vt100 parser panicked on
    one-row and one-column grids, which poisoned the pty host's mutexes and
    killed the daemon thread by thread. Grids are clamped to at least two
    rows and two columns, a parser panic now costs one pane instead of the
    daemon, and an unresponsive daemon is restarted instead of left hanging.
  • hermes is recognised as an agent again. Its /bin/sh shim execs python
    with an inline bootstrap, so no argument token ever said "hermes"; the
    install root and the hermes module paths identify it now.
  • The app no longer crashes with SIGSEGV when an agent changes state. The
    macOS notification code mixed the legacy NSUserNotification client with
    the modern UNUserNotificationCenter, and an Objective-C exception
    unwinding into Rust killed the process. One client per process now: the
    modern one inside a real .app bundle, the legacy one everywhere else.

v0.2.64

Choose a tag to compare

@github-actions github-actions released this 20 Oct 02:29
  • Notifications now carry the default macOS sound instead of appearing
    silently; the delivered request previously had no sound at all.
  • Foreground notifications keep asking for banner, list and sound, so a
    test sent from the app's own window makes a sound too.
  • tauri dev's fallback path sets the same default sound.

If the banner is still silent, check System Settings > Notifications >
Bentomux > Play sound.

v0.2.63

Choose a tag to compare

@github-actions github-actions released this 20 Oct 02:04
  • macOS deliveries now go through UserNotifications. The previous legacy
    path was denied by usernoted once the permission check opened a modern
    connection, which is why test notifications never arrived.
  • Notifications sent while the Bentomux window is focused are now shown
    instead of being handed to a delegate that did not exist.
  • Windows: the permission check reads the right registry keys again, so a
    blocked toast is detected and the user is pointed at the system settings.
  • Linux: repaired the notification settings command.

v0.2.62

Choose a tag to compare

@github-actions github-actions released this 19 Oct 23:30
  • Working -> idle and working -> blocked now raise a native OS notification (macOS, Windows, Linux).
  • New Settings toggle: Agent state notifications.
  • Denied permissions now warn and offer to open the system notification settings.
  • Send test notification button reports succeeded or failed inline.
  • macOS bundles are ad-hoc signed instead of unsigned.

v0.2.61

Choose a tag to compare

@github-actions github-actions released this 16 Oct 07:18
v0.2.61