Skip to content

Releases: RizRiyz/luvus

v0.12.0

Choose a tag to compare

@github-actions github-actions released this 23 Aug 05:37

Luvus v0.12.0 adds native code review, global fuzzy search, community themes, safe updates, and the Luvus Bar extension surface. Existing Luvus workflows and configuration remain available after upgrading from v0.11.0.

Features

  • DIFF review: Inspect staged, worktree, untracked, and conflicted changes, leave local line notes, and send focused feedback to a live agent (f0840ba, 011890c, #83).
  • Git Status: Open the explicitly selected staged or working-tree change directly in the native DIFF viewer (6bd06d9, 93d7810, #70).
  • Global search: Find sessions, workspaces, tabs, panes, agents, files, and retained terminal output from one fuzzy finder (60d486e, 06de1c3, #84).
  • Themes: Create, compose, validate, and install safe community themes from local files, HTTPS URLs, or public GitHub repositories (866c6d5, b8ca50f, 936c314, #81, ba5b884, d3d19a4, #82).
  • Luvus Bar: Let modules publish compact status, progress, badges, and actions beside tabs or in the bottom status row (5a2b59d, 7707e12, 971e113, #80).
  • Workspaces: Browse filesystem paths directly while choosing or creating a workspace (0c8ec16, #79).
  • Tabs: Reorder tabs precisely or swap any two tabs from the menu, TUI, CLI, or socket API (010898a, #75).
  • Agents: Detect fx sessions and report their activity state natively (639cb6b, #77).
  • Updates: Run luvus update to safely upgrade direct, Cargo, or Homebrew installs after checking the release version and checksum, then copy the command from the Changelog (22096f0, 4feb02c, #88, 5bb7851, 5e8d19b, #90).

Improvements

  • Files: Refresh Git diffs and file trees off the app loop to keep interaction responsive in larger repositories (6ff5d92, #85).
  • Copy mode: Preserve terminal selections more reliably and provide a focused keyboard copy workflow (ad17758, #74).
  • Settings: Group Left and Right sidebar width controls together in the Docks section (4feb02c, #88).
  • Website: Refresh shared Open Graph artwork, showcase native DIFF review and the Luvus Bar, and add X links across the public site (2b2a8d8, 5bb7851, 5e8d19b, #90).

Fixes

  • Themes: Restore live theme previews and valid TOML generation in Theme Maker (980bce6).
  • Agents: Preserve a forked agent's environment and session identity, and use the selected OpenCode binary for activity reports (0ee3cac, 208c560, a5d6d0e, #86).
  • Remote: Keep relay connections alive across interrupted reads and flush bridged frames promptly (5dbb771, 8bf34c5, #78).
  • Input: Forward F-keys and application-cursor keys correctly to terminal programs (ab3683f, #66).
  • Agents: Resume Codex sessions across tabs after restarting the Luvus server (8f07a2a, #87).
  • Git: Open the Git dashboard from the focused pane's repository when the workspace root is not a repository and surface real repository errors (276c008, f11efeb, de54867, #73).
  • Settings: Keep the Layout viewport and dock rows stable while changing dock placement (a04fc5f, 5424168, #89).

Contributors

Full changelog

v0.11.0...v0.12.0

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 19 Aug 08:55

Luvus is a rename and platform update from Bohay that adds a dedicated migration flow plus multi-client panes, memory-aware scrollback, and session management while preserving compatibility with existing Bohay-era state and commands.

Features

  • Luvus: Rename Bohay to Luvus in app, binary, crate, plugin, website, state directory, and extension contract, and migrate ~/.bohay data to ~/.luvus on first launch with compatibility fallbacks for legacy paths and env vars (a53ef1f, #57).
  • Migration: Add migrate.sh to stop old and named servers, back up existing ~/.luvus, and copy durable Bohay state to Luvus during upgrades with safe rollback behavior (a6670a8, #58).
  • Sessions: Add isolated named Luvus servers and full session lifecycle commands, including --session routing for named targets (1509da8, #52).
  • Panes and forks: Move an active pane to another tab, reorder tabs, and fork supported Claude, Codex, or Pi sessions without losing context from the CLI (89e6bcf, #41).
  • Workspaces: Rename and pin workspaces from the CLI and Codex plugin for faster context switching (0486f67).
  • Views: Give each connected client its own viewport so a background client does not resize the active terminal (5008048, #42).
  • Delegation: Delegate directly to a named agent without an agent list preflight from the Codex plugin and CLI (6bd64ba).
  • Plugins: Use the bundled Luvus plugin to control live workspaces, tabs, panes, and agents and to send Codex work to active sessions (7625f73, #40).
  • Terminal: Add memory-aware scrollback with per-pane budgets plus keyboard copy mode with Shift+V selection (672e6d2, #46).

Improvements

  • CLI: Add compact contextual help in command output to improve discoverability (eaf04c3, #53).
  • Server: Answer API requests and wait operations without loop-tick latency for smoother responsiveness under load (ca8ea45, #55).
  • Terminal: Reduce scrollback memory and render overhead and lazily allocate the VTE sync buffer for lower baseline costs (9619591, #54, a5acfad, #51).
  • Codex plugin: Use theme-aware composer backgrounds and contrast-safe branding across plugin surfaces (f3ee24b, 1cc59b2).

Fixes

  • Sidebar: Refresh changed agent identities immediately and show resumable sessions by default (c404065).
  • Session identity: Preserve live agent identity when sessions restart instead of forcing reconnect drift (9cbf037, #56).
  • Server startup: Prevent concurrent startup from orphaning sessions and stale socket races (5dcbf88, #50).
  • CLI: Preserve --help and -h flags in pass-through commands and keep command output aligned and clean (77f5f18, dfc0a76, #45).
  • Input: Preserve Alt, Ctrl, Shift, and Super navigation modifiers on Windows (2d4a57a, #43).
  • Website: Improve changelog readability and layout during resize on mobile and desktop (0af19a6).

Contributors

Full changelog

v0.10.2...v0.11.0

v0.10.2

Choose a tag to compare

@github-actions github-actions released this 14 Aug 07:50

This release adds terminal-matched colors, configurable tmux-style controls, Codex forks, clearer release notes, a refreshed homepage, and faster, more reliable pane handling. It is fully compatible with v0.10.1. Restart a running v0.10.1 server after upgrading.

Features

  • Themes: Match bohay to the terminal's foreground, background, and ANSI palette with a safe native fallback (01d9b57, #37).
  • Agents: Fork a Codex conversation into a new pane while the original keeps running (601799e).
  • Delegation: Update installed agent skills independently with bohay skill update (f19bfa9).
  • Modules: Add a complete agent skill for writing and debugging bohay modules (2887c9c).
  • Keys: Configure the command prefix or switch to a tmux preset with familiar bindings (960878c, #38).
  • Switcher: Jump to tabs, workspaces, or agents from one searchable palette (960878c, #38).
  • Sidebar: Show agent-provided session titles in place of pane metadata (2e053e0, #35).
  • Sidebar: Pin workspaces and agents to the top of their lists (2e053e0, #35).
  • Updates: Check for a new release directly from the changelog popup (82b65b3).

Improvements

  • Changelog: Read clearer release notes in the app and on bohay.dev with bold labels, contributor credits, complete upgrade commands, and feature videos (1159cbb).
  • Website: Add Bohay's pronunciation and name story to the homepage in a responsive final card (1159cbb).
  • Sidebar: Toggle both sidebars together with Ctrl+Space b (ea089fa).
  • Performance: Reduce allocations in search, sidebar, and Mission while embedding only recent changelogs (ab4c664).
  • Performance: Avoid redundant redraws from unchanged input, mouse movement, and remote frames (1192e7b, #39).
  • Keys: Rename the focused tab with the tmux-style , binding (960878c, #38).
  • Nix: Pin flake inputs with a committed flake.lock (f3acc04).

Fixes

  • Agents: Keep an intentionally exited agent at the shell after detach or restart (1192e7b, #39).
  • Panes: Preserve an inactive pane's scrollback position when focus moves elsewhere (1192e7b, #39).
  • IPC: Deliver clipboard updates and detach messages even when a rendered frame is queued (1192e7b, #39).
  • Updates: Detect releases published while bohay is already running within six hours (2e053e0, #35, 82b65b3).

Contributors

Full changelog

v0.10.1...v0.10.2

v0.10.1

Choose a tag to compare

@github-actions github-actions released this 12 Aug 09:00

Search every pane's scrollback at once, agents that resume with the options they were launched with, detection that keeps up with agent CLIs without a new release, and a new gold Quattro Rally theme that fresh installs open on. Fully compatible with v0.10.0, nothing to migrate.

✨ Added

  • 3303b91, #33 - Global scrollback search. An agent printed a stack trace ten minutes ago in one of six panes and you cannot remember which. ⌃Space / opens one overlay that searches the retained scrollback of every pane at once, not just what is on screen. Pick a match and it jumps to that pane and scrolls its history to the line, with a brief highlight so you can see where you landed. The scan runs off the render loop, so a busy search never stalls drawing or input. Scriptable too: bohay search <text...> [--case] returns the matches as JSON.
  • 3303b91, #33, 2d83b7a, #32 - Agents come back with the options you launched them with. A pane started as claude --permission-mode bypassPermissions --model opus used to return after a restart as a plain claude --resume <id>: the transcript came back but the configuration did not, so approval prompts reappeared and a different model answered. Switch it on in Settings → General → "Remember CLI option on resume" and the options are replayed. Off by default, since a remembered option outlives the session it was set for. Each pane replays only what its own agent was launched with, so codex can never be handed claude's --model.
  • bc30949 - $mention to delegate from a prompt. Writing $codex add tests to src/parse.rs hands the rest of that line to the codex next door. $lead … addresses an agent by name and $7 … addresses a pane by id. $ is used because @ is already your agent's own file-mention key.
  • 7edf54a, #34 - Detection stays current with agent CLIs, no release needed. Agent CLIs change their working and idle UI often, and when they do bohay can read a busy agent as idle. bohay server update-manifest fetches the latest detection rules from bohay.dev and applies them live, with no restart and no new binary. Fetched rules land in a managed folder that never touches the rules you wrote yourself, the built-in rules stay as the offline default, and your own rules still win.
  • c427926 - Quattro Rally, a soft dark theme with a rally-gold accent, after the Audi Quattro livery. Gold pane frames, a gold sidebar seam when you hover it, and gold dock separators.

🔧 Changed

  • 3303b91, #33 - Quattro Rally is now the default theme and leads the theme list. Your existing theme is untouched; this only changes what a fresh install opens on.

🐛 Fixed

  • 7edf54a, #34 - Newer Claude Code reads as working again. Its recent builds dropped the "esc to interrupt" hint and animate a different spinner, so a generating Claude had started showing as idle.
  • 3303b91, #33 - The theme picker on bohay.dev now offers Quattro Rally, and its colours match the app.

Contributors

  • RizRiyz

Full Changelog: v0.10.0...v0.10.1

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 10 Aug 10:44

Agents that hand tasks to each other, clickable links and file paths in panes, tabs sized to their names, a pixel-art editor module, a new Sky light theme, and a friendlier bohay.dev. Fully compatible with v0.9.7, nothing to migrate.

✨ Added

  • f34bbc2, #31 - Agents can talk to each other. Any agent in a bohay pane can hand a task to another agent, read its output, and answer its prompts, all over the local socket. Address one by name, pane id, or kind, so bohay agent send codex "review the diff" reaches the codex next door. agent start spawns and names a worker in a sibling pane in one step, and you can rename any pane so its name shows on the title and in the AGENTS sidebar. Delegation is non-blocking by default, so the sender keeps working while the other agent runs. A bundled skill auto-installs for Claude Code, Codex and opencode, so agents reach for this on their own.
  • 6a8333b - Commit and PR links in the changelog are clickable. Every reference in the release notes opens in your browser, and the last line links to the full history on bohay.dev, since the window itself now shows only the three most recent releases.
  • 18d4851 - Ctrl+click links and file paths in a pane. Hold Ctrl and whatever is under the cursor underlines: a URL opens in your browser, a file path opens in a bohay tab just like clicking it in FILES, and src/main.rs:42 lands on line 42. Bare domains count too, so bohay.dev and localhost:3000 work without the https://. A path only lights up if the file is really there, and the browser that opens is always on the machine you are sitting at, even over --remote. Ctrl+drag still resizes panes.
  • 19def4e, #30 - Tabs are as wide as their names. A renamed tab or a file tab used to be cut short at a fixed width even when the rest of the bar sat empty. Each tab now grows to fit its name up to a cap, short tabs look exactly as they did, and the ✕ always keeps its place. Focusing a tab no longer nudges its label sideways either.
  • 94721d6 - Sky, a light "paper" theme with a sky-blue accent, in the app and on bohay.dev.
  • pixtui - pixtui, a pixel-art editor that runs in a bohay tab. Canvas, palettes, layers, animation and PNG/GIF export, in pure Python with nothing to install. Install it as a module, or run it standalone in any terminal.

🔧 Changed

  • 19def4e, #30 - Right-click menus read in Title Case throughout, across the workspace, pane, agent and files menus.
  • a8ac4fd - Redesigned bohay.dev to read more clearly, and lighter homepage images.

🐛 Fixed

  • 6a8333b - The changelog window no longer slows the app down. It was re-wrapping every release on every frame; it now renders the three most recent and reuses them until you resize or change theme.
  • 461cbae - A dock turned off in Settings → Layout no longer reappears when a module re-pushes it.
  • a652f01 - Rebuilt the og.png social card with the current logo and real agent states.
  • 704fe6f - Hid the compare page on bohay.dev.

Contributors

  • RizRiyz

Full Changelog: v0.9.7...v0.10.0

v0.9.7

Choose a tag to compare

@github-actions github-actions released this 04 Aug 12:05

Mission Control for your agents, right-click menus for module dock rows, resizable sidebars, and two new example modules. Fully compatible with v0.9.6, nothing to migrate.

✨ Added

  • Mission Control. A ⠶ ctrl tab per workspace listing every agent in that folder, running or resumable: status, tokens, context headroom and cost, totalled in the header. Click a row to jump to that agent or resume it; answer a blocked one inline. (9e20057)

  • Modules can put a right-click menu on their own sidebar rows. A dock row can offer several actions instead of one, declared per row, with dividers and destructive styling. See Writing a Module. (ca896fb, 405dbdf)

  • Resizable sidebars. Drag either sidebar's edge to set its width; it saves when you let go. (5ec0c59, #29)

  • An ESP-IDF example module. Build, flash and monitor ESP32 boards from the sidebar. Flashing stops the serial monitor and brings it back in the same pane, so the log from before the flash survives. In examples/modules/esp-idf. (8d10569)

  • A Markdown slide-deck example module. Present a Markdown file as slides in a pane. Pure Python stdlib, nothing to install. In examples/modules/deck. (8d10569)

  • Both example modules are listed on bohay.dev/modules. (802dee6)

🔧 Changed

  • Cleaner sidebar text. Long node, agent and branch names ellipsise instead of hard-cutting. (5ec0c59, #29)

  • Each sidebar holds up to three docks. Extra docks stay off in Settings → Layout; moving one onto a full side is refused rather than silently dropped. (f9a22a6)

🐛 Fixed

  • Agents no longer look stuck on "working" when idle. A line padded with the invisible braille blank character read as a spinner. (21b1576)

  • An idle agent no longer flashes "working" when you switch tabs. The resize makes the agent repaint, and a reflowed line briefly read as a spinner. (70b3db8)

  • Agents now show up on WSL and musl/Alpine Linux. The process tree is read from /proc instead of ps, which on those systems is a busybox build that can't report process parentage. (77a8f63)

  • File viewer: long-line files scroll all the way down. Scrolling counted file lines rather than the rows they wrap onto, so a file of few but very long lines stopped a line or two in. (e1a4a67)

  • File viewer: the git change bar sits at the gutter's edge, not between the line number and the code. (e1a4a67)

  • Docs: the "On this page" list no longer cuts words off. Entries wrapped wider than the column they were drawn in, losing whole words mid-phrase. (802dee6)

  • Docs: no empty gutter beside the page contents, and the article sits centred. Half of every extra pixel of window width was going nowhere — about 19rem of dead space at 1920px. (802dee6)

  • Website: feature cards no longer overlap on mobile. (3d35b10)

Contributors

  • RizRiyz

Full Changelog: v0.9.6...v0.9.7

v0.9.6

Choose a tag to compare

@github-actions github-actions released this 30 Jul 16:39

A quick way to reach the agent that needs you, a clearer file tree, and a round of fixes for the things that quietly got in your way: folders reopening after you closed them, the file tree forgetting what you had expanded, and arrow keys sending focus to the wrong pane. The website got a rebuild too, including a theme picker that previews every palette bohay ships. Fully compatible with v0.9.5, nothing to migrate.

✨ Added

  • Jump to the next agent that needs you. Press Ctrl+Space . to move straight to the next agent waiting on your input. It cycles through every blocked agent in the order the sidebar lists them, across all your nodes and tabs, so you stop hunting for the one that stopped to ask you something. When nothing is waiting, a small toast says so and your focus stays put. Like every command it can be remapped in Settings → Keys and shows up in the ? cheat-sheet. (a3f6ec4, #24)

  • Files are marked in the file tree. Folders have always had an expand arrow while files had nothing, so a file read as a blank gap in the tree. Files now carry a small dot in that same column, sitting a shade quieter than the file name so a long list still reads as names first. A changed file tints its dot along with its name, so it reads as one coloured row. (281098c)

🔧 Changed

  • bohay.dev rebuilt, with a theme picker. The site is now monospace throughout and stripped of the rounded cards, gradients and glows it had picked up, so it looks like the tool it documents. A picker at the bottom of every page switches the whole site between all 15 palettes bohay ships, from noir to the four Catppuccins to Gruvbox light, and hovering a name previews it instantly; the site now opens on Nord. The colours are generated from bohay's own theme registry, so what you preview is exactly what the app renders. The documentation section now wears the same palettes, chrome and theme picker as the landing page instead of the stock docs theme, and the whole site and the repo share a refreshed brand mark. Right-clicking the logo still offers the mark as SVG or PNG. (6c49ecf, #26, 916c152, #28)

🐛 Fixed

  • Closing your last folder no longer brings back the first one. Open two folders, close one, then close the other, and bohay used to reopen the folder you closed first instead of letting the session end. It also kept that folder in the saved session, so it came back again on the next start. Now closing the last folder ends the session properly: the window closes, nothing is resurrected, and the saved session is cleared. The background server keeps running as it always has, so bohay in another folder picks up instantly and bohay server stop is still what shuts it down. (85069a9, #22)

  • Running bohay in a new folder always opens that folder. If the server had been restarted and restored a saved session, the folder you launched in was silently ignored and you landed in whichever folder was open before. This was easy to hit on Windows, where the server does not survive a logout, so nearly every launch took the broken path. Opening a folder that is already open now also focuses it rather than adding a second copy, including when the path is spelled differently, which on Windows means a different drive letter case or a path returned with the \\?\ prefix. (85069a9, #22)

  • Reopening bohay leaves you where you were. Following on from the fix above, opening the launch folder on attach was pulling you off whichever folder your restored session had left you on, so reopening always snapped back to the first one. The launch folder is still added if it is new, but it no longer steals focus from the folder you were actually using. (5baad33, #25)

  • A folder that cannot be opened now says so. When the shell failed to start, bohay quietly did nothing and left you looking at the previous folder with no message anywhere, which was indistinguishable from it ignoring you. You now get a clear message, and scripts and agents get a real error back instead of a success they cannot act on. (85069a9, #22)

  • The file tree keeps what you had open when you switch folders. Switching between workspaces collapsed the whole FILES tree, so you came back with everything shut and no record of which folders you had been tracking. Each folder now keeps its own expanded directories, cursor and scroll position, and they are restored when you return. This lasts for the session; a server restart still starts fresh. (954a8bb, #23)

  • Arrow keys move to the pane you are actually looking at. With one pane on the left and two stacked on the right, pressing down from the top-right pane jumped sideways to the left pane instead of the one directly underneath. Focus was picking whichever pane's centre happened to be nearest along that axis, even one in a completely different column. It now only moves to a pane that shares an edge with yours in that direction, so navigating a mixed layout of rows and columns goes where you expect and pressing towards the outer edge simply does nothing. (7a6a976)

Contributors

  • RizRiyz

Full Changelog: v0.9.5...v0.9.6

v0.9.5

Choose a tag to compare

@github-actions github-actions released this 28 Jul 03:55

See what changed without leaving the file viewer, and clean up finished worktrees straight from the sidebar. Plus a build-metadata fix so installing from source fails clearly on an old Rust. Fully compatible with v0.9.4, nothing to migrate.

✨ Added

  • Git change markers in the file viewer. Open a file read-only and the gutter now shows what changed against the last commit: a green bar for added lines, amber for modified, and a small red mark where lines were deleted. It sits in the space the line numbers already used, so nothing shifts, and it refreshes on its own while an agent edits the file. A clean file, an untracked file, or a folder outside git simply shows no markers. (2b1151d)
  • Delete a worktree from the sidebar. Right-click a worktree node in WORKSPACES and pick Delete worktree to remove both the git worktree and its folder in one step, instead of dropping to a shell. It is offered only on real worktree nodes, never on a main checkout, and it asks for confirmation first because it deletes files. The sidebar also groups each worktree directly under the node it branched from, so a worktree and its parent stay together in the list. (7ef14cd)

🐛 Fixed

  • Clearer error when building on an old Rust. cargo install bohay now declares its real minimum, Rust 1.88 (edition 2024, required by ratatui 0.30), so an older toolchain fails with a clear "requires a newer Rust" message instead of a cryptic edition2024 feature error deep in a dependency. Prebuilt installs were never affected: Homebrew, the .deb/.rpm packages, and the install script all ship a compiled binary and need no Rust at all. (6c79b7b)

Contributors

  • RizRiyz

Full Changelog: v0.9.4...v0.9.5

v0.9.4

Choose a tag to compare

@github-actions github-actions released this 27 Jul 15:38

A small patch release with three fixes: clicking a pane's title or zoom button on a split now works instead of resizing, emoji render correctly inside modals, and sidebar clicks always land on the right target even after you rearrange docks. Fully compatible with v0.9.3, nothing to migrate.

🐛 Fixed

  • Click a pane's title or zoom button on a split. On a split, clicking a pane's title bar (to see its running command) or its zoom button no longer starts a divider resize by mistake. The resize grab now yields to those controls, the same way it already did for the close button, so every control on a split pane's title row is clickable. (5f685d0)
  • Emoji render correctly in modals too. v0.9.3 fixed wide glyphs in panes and the sidebar; this carries the same fix into modal windows like the changelog and settings, which draw through a different path. A double-width glyph in a modal no longer smears into the next cell, because its continuation cell is now blanked when the frame is serialized rather than only when a pane is drawn. (5e00b1d)
  • Sidebar clicks land on the right target. Dock click regions, including the FILES tree, are cleared and rebuilt every frame, so a leftover click region from a hidden or rearranged dock can no longer fire the wrong action, such as opening a file when you meant to switch workspace. (8b2ec22)

Contributors

  • RizRiyz

Full Changelog: v0.9.3...v0.9.4

v0.9.3

Choose a tag to compare

@github-actions github-actions released this 27 Jul 11:47

New looks and new reach: Catppuccin and Gruvbox themes, native .deb/.rpm packages and a NixOS install, a mobile-friendly compact layout, and a Buzz chat example module. bohay also helps you stay current now, with a background update check that shows a dot by the version number, an in-app changelog you open from that same version number, and a tidier sidebar header. Plus a configurable Shift+Enter and fixes for emoji rendering, agent sessions, pasting into Settings, and the file tree. Fully compatible with v0.9.2, nothing to migrate.

✨ Added

  • Catppuccin and Gruvbox themes. All four Catppuccin flavours (Mocha, Macchiato, Frappe, Latte) and Gruvbox dark and light, in Settings → Theme and on the website. (59a2bd5)
  • Native Linux packages. Every release now ships a .deb and a .rpm for x86_64 and arm64, so apt install ./bohay.deb / dnf install ./bohay.rpm just work. (408505f)
  • NixOS install. A flake so you can nix run github:RizRiyz/bohay or add it to a config, with the runtime tools baked in. (2fa48c2)
  • Mobile-friendly panes. Tap a pane to zoom it, and a leaner compact layout for narrow screens like a phone over SSH. (9d16cac)
  • Check for updates. bohay now checks in the background for a newer release and shows a dot next to the version number when one is out. It is one lightweight check at launch, repeated about once a day, and you can turn it off in Settings. bohay never replaces its own binary, it just points you at your installer's upgrade command.
  • In-app changelog. Click the version number in the sidebar to read every release's notes in a scrollable window, with how to update at the top, all without leaving the terminal.
  • Tidier sidebar header. The collapse chevron, wordmark, version, and Menu now share one row aligned with the tab bar, and the version doubles as the button that opens the changelog.
  • Keyboard shortcut reference. Settings → Keys now lists the always-on shortcuts, like the vim-style hjkl movement keys, below the rebindable commands, so every shortcut is visible in one place.
  • Configurable Shift+Enter. Pick what Shift/Alt+Enter sends to a pane ("new line, don't submit") in Settings, since agents and terminals disagree on the byte sequence. Defaults to what Claude Code's terminal setup installs, with a plain newline and CSI-u options for the ones that want them. (38c6efa)
  • Buzz chat example module. An IRC-like nostr chat client (NIP-29) you run as a bohay module, talking directly to a Buzz relay. Clickable channels, colored nicks, and a right-click action to share a pane into chat. Lives in examples/modules/buzz. (1a9f6f9)

🐛 Fixed

  • Emoji render correctly in panes. A double-width glyph no longer smears into the next cell and shifts the rest of the row (or the sidebar), and emoji with variation selectors or ZWJ sequences render whole instead of as a box. Done on the render hot path with zero extra allocation on the common cell. (6814ac6, 0a6ec7d)
  • Agent sessions stay put. Each pane keeps its own agent session and shows in the agent list, and a restore never restores one session into two panes. (ff13b05, 863fb8b)
  • Paste fills Settings fields. Pasting into a Settings field (or any text prompt) now fills the field instead of leaking to the pane underneath. (acae381)
  • bohay in a pane targets its own session. The CLI now honors the injected socket, so a command run inside a pane reaches that session's server rather than a default one. (c600048)
  • File tree hidden-files toggle restored. (ded32f9)
  • Correct keyboard report on Windows. bohay doctor now reports Windows keyboard support accurately, where it reads keys from native console records rather than the keyboard protocol. (38c6efa)
  • Cleaner splits and redraw. A drag started inside a pane no longer grabs the divider, and a client that falls behind resyncs promptly. (58ebd87)

Contributors

  • RizRiyz

Full Changelog: v0.9.2...v0.9.3