Skip to content

Releases

Preview 13 (217b496)

Preview 13 (217b496) Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Nov 23:29
217b496

feat(terminal): add a text box, take keys raw again, end a session with its last tab

The terminal's keyboard is a raw TYPE_NULL field again, because a text
field let Gboard autocorrect what went to the pane. "Type in a text box"
in the actions sheet opens a field with the keyboard's autocorrect,
suggestions and voice input. Send pastes the text and presses Return,
and images the keyboard inserts there are sent as files.

Closing a session's last tab, or the last pane of its last tab, ends the
session, as on the desktop.

Preview 12 (d319fad)

Preview 12 (d319fad) Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Nov 21:54
d319fad

ci: pad preview tags so the newest release is listed first

GitHub lists the releases of one day by tag name as text, so
preview-11 sorted below preview-6. Tags are now preview-00012 and so
on. The updater already reads the padded number.

Preview 11 (58a6943)

Preview 11 (58a6943) Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Nov 21:37
58a6943

feat(terminal): send files and images to the computer

Send files in the pane menu, images and stickers from the keyboard, and
Paste with a file on the clipboard upload through Rex's upload_begin and
rex.data.bytes.v1 streams. The pane gets the paths as a paste. A pill
over the terminal shows progress and can stop the send.

Preview 10 (225bc25)

Preview 10 (225bc25) Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Nov 20:43
225bc25

feat: update from previews, load Home honestly, and use the full keyboard

Release builds find newer previews on GitHub. A dot on the settings
button and a row at the top of Settings offer the update, which
downloads into an install session and hands it to Android.

Home lists a host's sessions only while it is online, and shows
placeholder rows while it connects, so it no longer shows a list from
before a drop.

The terminal is a plain text field without suggestions for the input
method, so keyboards offer voice input and gesture typing and show no
number row, while characters still arrive one at a time.

Acknowledgements and the README credit RexPocket for the idea.

Preview 9 (0e62e9a)

Preview 9 (0e62e9a) Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Nov 20:13
0e62e9a

feat: reach the tailnet through the Tailscale app, and keep sheets dimmed

A new setting on the Tailscale screen sends tailnet hosts through the
phone's own network, for phones that already run the Tailscale app. Rax's
own node then stops, and keeps its keys.

Bottom sheets draw their dim in the activity's window, so it stays while
the sheet is dragged and fades only when the sheet leaves.

Preview 8 (1cbeaa6)

Preview 8 (1cbeaa6) Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Nov 12:15
1cbeaa6

fix: show connection problems only when they last, and fix bad UI patterns

Connections:

  • retryNow() starts the count again, and the app calls it on Retry, when
    it comes to the foreground and when the network changes, so Retry shows
    a spinner at once and an old error does not come back on open.
  • A dropped or refused connection shows as a problem once it lasts 3 s;
    a slow attempt shows when it ends; a TLS failure, a refusal or a server
    that is not Rex shows at once.
  • A wake from before a connection no longer skips the wait after it.
  • HostState.loaded: Home waits for the first views and pane facts, up to
    2 s, and keeps a host's sessions on screen during a short reconnect.

Home and other screens:

  • A dot, spinner or ring before the host's name, and a line of text only
    for a host with a problem.
  • New session, Tailscale sign-out, split and new tab show progress and
    run once at a time.
  • Background alerts shows the saved choice, with Allow notifications when
    notifications are off.
  • The host editor checks the address when the user leaves the field, and
    text fields take taps on their whole row.
  • The Tailscale screen keeps the Rex servers it found while it is in the
    back stack, and shows no raw error text.
  • Fonts start from the cache, so screens do not jump while they load.
  • Screen reader labels for keys, sliders, theme tiles and pane chips.

Terminal:

  • A message over the last screen takes the touches, turns the keys off
    and closes the keyboard.
  • The key bar fits narrow phones, and pane chips show the user's names.
  • A screen Rex cannot send shows a message with Retry, not a blank pane.
  • Closing a pane moves to the next one from the current view.
  • Dropped input, waiting tabs in the tab menu, a jump-to-bottom button,
    Sign in and Allow on the pane's message, and copy feedback before
    Android 13.
  • A notification for the open session switches its screen to the pane.

Preview 7 (13bf1e1)

Preview 7 (13bf1e1) Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Nov 10:36
13bf1e1

feat: run on Android 10 and later

Lower minSdk from 31 to 29 for the app, :ghostty and :tailnet, and build
the native libraries for API 29.

  • Before Android 13 there is no notification permission to ask for, so
    turning on alerts opens the system notification settings.
  • Check ForegroundServiceStartNotAllowedException and set the app's night
    mode only on Android 12 and later.
  • Add full-backup rules for Android 11 and earlier, which keep the
    tailnet state and imported fonts out of backups.
  • The Go log level check uses __android_log_is_loggable on Android 11 and
    later, and logs INFO and above before that.

Preview 6 (f5cbe67)

Preview 6 (f5cbe67) Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Nov 09:09
f5cbe67

fix: fixes from an app-wide review

An app-wide review with several agents, then a second review of the
fixes. Among the changes:

  • Ownership, writes, sizes and colours wait until the connection has
    attached the session, so Rex does not refuse them after a reconnect.
  • The data socket reads with a 16 MiB budget, so a slow restore does
    not stop the pongs that keep it open.
  • Keys left from a paste go out before keys typed after a Retry.
  • A Rex restart drops the pane facts Rax kept, and waiting
    notifications go away for sessions Rax cannot attach.
  • The fallback screen checks that the pane kept its size and times its
    drawing from a measured round trip.
  • Selection handles use the whole selection, also off screen, and a
    dragged handle scrolls past the bottom edge.
  • The emulators send programs no replies, as Rex's terminal answers
    them. Links open for http, https and mailto only. Pinch zoom sets the
    size when the fingers lift. Copies over 256 KiB are refused.
  • The tailnet node stops 60 s after nothing needs it.
  • Native fixes in the JNI bridge, snapshot text and Kitty image limits.
  • Tests for the protocol client, the stream, the parser, the screen
    read, permissions and the terminal library.

Preview 5 (9cf0bb8)

Preview 5 (9cf0bb8) Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Nov 07:42
9cf0bb8

doc: rex is for multiple platforms

Preview 4 (1d93adb)

Preview 4 (1d93adb) Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Nov 04:04
1d93adb

fix(terminal): tell Rex the pane's colours

Rax never sent its colours to Rex, so Rex told programs that asked that
the terminal used its own colours and a dark scheme. With a light theme,
programs such as Codex and Neovim picked dark colours. Rax now sends the
active terminal colours and the light or dark scheme with set_theme when
it opens a pane, on each new data connection, and when the theme
changes.