Chuchu v0.6.0
Highlight of the release
- plugin system, with Rex shipped as a built-in transport plugin
- program status on tabs (OSC 7501), with the program's icon and a notification when a tab needs you
- jump hosts and local/remote port forwarding through a saved server
- new SSH keys screen
- browser-style session picker for tmux and zmx hosts, and sessions can be opened on any host
- Simplified Chinese translation (the UI is now fully translatable)
- many Mosh, SFTP, host key and multiplexer reliability fixes
- native bridge moved to Zig 0.17 and ghostty 1.4
- nightly builds are now published on every push to main
features:
- feat: show the program's icon next to its status - 43e603b
- feat(rex): show program status for Rex panes, including ones not on screen - 03fdefc
- feat: show program status (OSC 7501) on tabs and notify when a tab needs you - 8aaf5ae
- feat: Rex as a built-in transport plugin - c6edc15
- feat: plugin system - a0d8785
- feat: add Shift+Tab and Ctrl+B accessory keys - 5b9f78e - (Thanks @Sylonin)
- feat: forward local and remote ports through a saved server - a1948f4
- feat: add jump host support - ef1a556
- feat: copy a saved connection from the long-press actions - d7fede2
- feat: option to show the accessory bar only while the keyboard is open - 0edb7a6
- feat: add option to hide the status bar on the terminal screen - 192b09f
- feat: add a browser-style session picker for tmux and zmx hosts - d925984
- feat: let the remote host set the clipboard, behind an opt-in - 31795ad - (Thanks @salemsayed)
- feat: enable opening sessions in any host - c233110 - (@salemsayed)
- feat: add terminal autocorrect setting - fa5f729 - (Thanks @kevcenteno)
- feat: add SSH keys screen - 42ba561
- feat: handle different cursor styles - a3d48c2
- feat: keep theme picker dropdown open on selection - 1a764e2
- feat: add host filtering to the server list - 521244b - (@salemsayed)
- feat: open SFTP browser at the current directory - 8261e45 - (@salemsayed)
- feat: add an opt-in setting to hide screen contents - b5a3ce5 - (@salemsayed)
- feat: smooth stepped pinch zoom for terminal font size - ba55035 - (@salemsayed)
- feat: add keep screen awake option for terminal sessions - 92056d8 - (Thanks @Thoroslives)
- feat: custom actions and chuchu key improvements - d962636 - (Thanks @bhoffman20)
i18n:
- i18n: add Simplified Chinese translation - 00f9fd2 - (Thanks @ec50n9)
- i18n: extract the strings the first pass missed - bc47afb - (@ec50n9)
- i18n: extract UI strings into resources - 2a4d5db - (@ec50n9)
fixes:
- fix(rex): keep the port in plain http Rex addresses - b7be6ce
- fix: keep the settings header in place while the content scrolls - 6554111 - (@ec50n9)
- fix: hold frames while the remote program repaints its screen - f8846c2 - (@ec50n9)
- fix: prevent single-row accessory bar crash - e8b0e63 - (Thanks @reinyaa)
- fix: stop crashing when saving fewer accessory keys - 5c54280
- fix: keep every accessory key reachable when the bar overflows - 404c608
- fix: stop drawing the working directory over the terminal - c5ecfc5
- fix: keep the selected tab in view in the tab strip - e1d703a
- fix: stop tmux session listing from breaking on zsh hosts - eba1c4f - (@ec50n9)
- fix: do not hold an SSH handshake open while the user verifies a host key - 92a9be3 - (@salemsayed)
- fix: do not silently drop a multiplexer connect, and show progress while it runs - e879437 - (@salemsayed)
- fix: point the Mosh client at the address SSH connected to - 824b06f
- fix: show when a Mosh session has lost contact - 2665491 - (@salemsayed)
- fix: keep SFTP transfers alive across slow network windows - 4f61ddf - (@salemsayed)
- fix: do not silently truncate SFTP downloads - 9e7992a - (@salemsayed)
- fix: wait for the session before SFTP calls and retry once after a drop - 514c30e
- fix: keep IME caret in sync for backspace swipe and undo - 6a8f5a0
- fix: translate IME caret moves into terminal arrow keys - 5c3655d
- fix: guard the multiplexer duplicate and show it is working - e389d61 - (@salemsayed)
- fix: stop tmux 3.7 mangling the session list separator - f965b48 - (@salemsayed)
- fix: make tab strip labels distinguishable per host - 171dd80 - (@salemsayed)
- fix: run the post-connect command on multiplexer hosts too - 73dfe07 - (@salemsayed)
- fix: let the multiplexer session list use the space it has - 4d700ec - (@salemsayed)
- fix: confirm before disconnecting everything from the server list - 78f94a8 - (@salemsayed)
- fix: print host key fingerprints without base64 padding - ff3e2c9 - (@salemsayed)
- fix: draw wide glyphs on the grid instead of by font advance - 0cdc297 - (@salemsayed)
- fix: show edit screen title properly - b216f01 - (@salemsayed)
- fix: let the tab manager be opened with a single tab - dd480f3 - (@salemsayed)
- fix: require an explicit choice on the host key dialog - 543653a - (@salemsayed)
- fix: keep IMEs from mangling the host and username fields - 90456b4 - (@salemsayed)
- fix: reattach an existing session instead of orphaning it on reconnect - 408e888 - (@salemsayed)
- fix: verify the host key in test connection - 759ee75 - (@salemsayed)
- fix: add deterministic unicode symbol fallback - a0b5e3c
- fix: preserve Mosh sessions across network loss - ddacfef - (@salemsayed)
- fix: handle large Mosh output events - e81a9d4 - (@salemsayed)
- fix: correct terminal mouse action encoding - 4a7a816 - (@salemsayed)
- fix: enable multi ABI builds - f090f2b
- fix: handle leading whitespace in zmx session list - 71da20f - (Thanks @tom-sigil)
- fix: render SGR cell style flags properly - 6d5dec1
perf:
- perf: resize the remote pty once per keyboard toggle - 05a883e
- perf: stop recomposing the terminal screen on every frame of output - 590d397
chore:
- build: migrate native bridge to Zig 0.17 and ghostty 1.4 - ce2d034
- refactor: split TerminalScreen into smaller composables - 7c01a87
- ci: comment the branch build's APK link on the open pull request - 0a1b24b
- ci: run the branch build only by hand - e53cb55
- ci: build a signed APK from any branch - f837e5e
- ci: target aarch64 for default CI releases - 5b059b0
- ci: add nightly release workflow - c4aa910
- test: capture real Compose theme screenshots on the JVM with Roborazzi - 43c02ec
- test: add Robolectric harness for on-orb Android framework tests - bc99798
- chore: add Nix-based orb setup and resume scripts - 7bfe4fc
- docs: list Zig 0.17.0 as the build prerequisite - 30fd487 - (@Sylonin)