Skip to content

Revenant 0.5.0

Choose a tag to compare

@github-actions github-actions released this 03 Sep 01:41
· 90 commits to master since this release

Highlights

Fonts resolve through xterm's complete fallback chain, the cursor and ANSI palette follow xterm's resources, the command line parses like xterm's, and release builds become reproducible with Arch packaging and an offline setup audit for a readable first run.

Changes

Released 2026-09-02. Full history in CHANGELOG.md.

Features

  • Resolve fonts through shaped primary, semantic, explicit, user, and system fallback roles with real same-family styles, Han and IVS routing, deterministic tofu, metric normalization, route caching and reporting, and transactional reloads. (2b4d1ba, 67077fb)
  • Follow xterm's cursor-blink policy: the four-value cursorBlink resource, cursorBlinkXOR, -/+bc, the VT Options toggle, and application blink requests through DECSCUSR. (8d214bc)
  • Configure the ANSI palette from color0 through color15 with xterm's compiled defaults, and accept OSC 4 and OSC 104 palette operations by default. (af03695)
  • Parse the command line like xterm: unambiguous option prefixes, rejection of unknown options before the display opens, xterm's -help and -version wording, plus GNU-style --help and --version. (156f3e5, bc27724)
  • Install a revenant(1) manual page and present the documentation site as an xman-style manual that shares the same action and resource reference. (d73e90f, a253f0c, b5455b9, 6a01a36)
  • Publish an Arch Linux package alongside the tarballs, Debian package, and Fedora RPM. (3a57611)
  • Add -welcome, a read-only audit of X resources, display readability, installed fonts and tools, with distribution-aware setup suggestions and a redacted support summary. (dd462b4)
  • Set TERM_PROGRAM and TERM_PROGRAM_VERSION in child sessions so diagnostics can identify when Revenant is the host terminal. (dd462b4)

Bug fixes

  • Drain a bounded burst of available PTY output and paint once, so a rapid-update refresh split by the kernel no longer flashes between erased and replaced content. (3ea6f39, 670b3a6)
  • Render faint text at two-thirds intensity and promote bold foreground colors 0 through 7 to 8 through 15 as xterm does; boldColors and -/+pc control the promotion. (93852d9)
  • Keep a client-created ARGB colormap alive while display shutdown flushes Xt's cached color converters, avoiding BadColor when a report exits without realizing a window. (dd462b4)
  • Build libghostty for explicit x86_64-linux-gnu/x86_64-v3 and aarch64-linux-gnu/baseline targets. Earlier releases could contain instructions unsupported on older CPUs; the install guide and every release body now state the supported CPU floor. (3a57611)

Other

  • Pin Ghostty to one exact commit, rebuild it only when its inputs change, and share a Zig cache keyed by target, CPU, Zig version, Ghostty commit, build script, and runner CPU model across packages of the same architecture. (3a57611)
  • Require every tarball, Debian, RPM, and Arch build to run the complete Xvfb and font-fixture suite without skips. (3a57611, 62f6d06)
  • Stage and cache the pinned font fixtures once, require every builder to restore that exact cache entry, and remove the staging toolchain from package builders. (3a57611)
  • Validate changelog release notes before starting builds and let intermediate package artifacts expire after one day. (3a57611)
  • Enforce the internal xterm+ naming boundary across sources, tests, tools, and packaging with a branding check. (c4d9150)
  • Isolate font-universe types, extract the font routing lifecycle, centralize role policy and Unicode routing helpers, and move Ghostty selection policy behind a private backend header to prepare the terminal boundary for multiplexing. (3b150c8, e0e0b22, 379c725, 955f3c7, df3de1a, 1a3f4f8, 40d4e56)
  • Share Xvfb harness setup across the font and keyboard suites, guard font routing diagnostics, and add a pixel-level bitmap regression for renderFont: false. (9cc6a6d, ed4e40b, 379c725)
  • Document installation, CPU requirements, release provenance, and local package construction, and lead every entry page with the xterm-defaults caveat and revenant -welcome. (3a57611, 172d1e8)

Artifacts

File Size Notes
revenant-0.5.0-1-x86_64.pkg.tar.zst 1.1 MiB Arch Linux package; sudo pacman -U ./revenant-0.5.0-1-x86_64.pkg.tar.zst
revenant-0.5.0-1.fc44.x86_64.rpm 1.0 MiB Fedora package; sudo dnf install ./revenant-0.5.0-1.fc44.x86_64.rpm
revenant-0.5.0-linux-aarch64.tar.gz 1.0 MiB Linux aarch64 binary archive (dynamically linked): stripped revenant, xterm+ symlink, README, licenses
revenant-0.5.0-linux-x86_64.tar.gz 1.0 MiB Linux x86_64 binary archive (dynamically linked): stripped revenant, xterm+ symlink, README, licenses
revenant_0.5.0-1_amd64.deb 1009.4 KiB Debian/Ubuntu package; sudo apt install ./revenant_0.5.0-1_amd64.deb

SHA-256:

f5e972e80e51a45172421999e9e86922f81b375bfa334069d1057a9b41ee60d9  revenant-0.5.0-1-x86_64.pkg.tar.zst
4272f6840a632e01fd460ba9d7bfe9d31b6575f4d6aa75cef46f08a63f37d262  revenant-0.5.0-1.fc44.x86_64.rpm
ae6d78359ee660b6b9b27321c69c5658eb377e436168239fa138bf395cd58ce6  revenant-0.5.0-linux-aarch64.tar.gz
9b90746d09aec23daf3bcd359476bcf8ff122d53b3dc25f0765eca71c8f684d7  revenant-0.5.0-linux-x86_64.tar.gz
aaa9abae3387baf16fab42fb214548c647639bccb0d7295c11e5cb22151fdf7d  revenant_0.5.0-1_amd64.deb

CPU floor: x86_64 builds target x86_64-v3 (AVX2 — Intel Haswell 2013+, AMD Zen 2019+); aarch64 builds target generic ARMv8. Older CPUs fail with an illegal-instruction error; open an issue if that affects you.

Each file carries a signed build provenance attestation from the workflow run; verify a download with gh attestation verify FILE --repo toppk/revenant.

All builds link the pinned libghostty-vt from tools/fetch-libghostty and were built by the Release workflow.