Repository navigation
Revenant 0.8.0
Highlights
Text-emoji rendering repairs, synchronized-output and selection fixes, and a focused xterm-411 compatibility update for titles, window reports, geometry, and shell startup. This release tracks a pinned libghostty development commit; it does not wait for Ghostty 1.4.0.
Changes
Released 2026-09-23. Full history in CHANGELOG.md.
Features
- Render and fit monochrome text emoji through a dedicated
faceNameEmojiTextrole, with bounded presentation-aware fallback discovery. Explicit font precedence and committed cell widths are preserved; drawing stays inside the assigned cells. (0a7e03c, e80d8bb) - Update Unicode tables and the pinned libghostty backend together to Unicode 18.0. This release uses development revision
27e8b3fa85d9cf8c7cd5ae2ced348bcb0a4fba9c, ahead of Ghostty 1.4.0. New emoji still require installed fonts with coverage; the pinned fixtures do not supply Unicode 18 emoji artwork. (0087b61) - Add
-hold/+holdand theholdresource to retain the window and its final output after the child exits. Held windows continue to repaint, reap late-exiting children, and discard further keyboard input. (0de64fe) - Add
-ls/+lsand theloginShellresource. Shell selection and login-shell argv follow the measured xterm-411 behavior; explicit-ecommands retain their existing invocation semantics. (160c02d) - Add UTF-8 window and icon title properties, the
utf8Titleresource, andset-utf8-titleaction. Title changes and stack restoration update or remove EWMH properties according to locale and policy. Backend limitations, including OSC 1 delivery and raw-byte title parsing, remain documented. (712f7b7) - Add
sameNamewith-samename/+samename, title and color permission actions, andallowSendEventspolicy interactions. Repeated title requests can be suppressed; configured permissions, effective permissions, and menu sensitivity follow the measured xterm rules. This does not add synthetic-input filtering. (156b4f2)
Bug fixes
- Capture the completed visible frame at synchronized-output hold boundaries, including transitions within one parser batch. Reverse video, dynamic colors, and cursor visibility/style parsed during a hold stay hidden until release. (0087b61)
- Decode incoming X selections by their declared type, including COMPOUND_TEXT and Latin-1 STRING, for paste and OSC 52 reads. Unsupported types fall back to STRING; unsupported INCR transfers remain explicitly unavailable. Stalled-reader tests verify complete large OSC 52 replies. (0087b61)
- Reserve closed standard descriptors before opening X or the PTY, and stop startup if reservation fails. This prevents warnings from being written into a connection that reused stderr. (0087b61)
- Send wheel presses without wheel-release reports and keep selection drags active across wheel scrolling. Local scrolling updates the selection under the pointer. Alternate-scroll mode 1007 remains unimplemented. (0087b61)
- Incorporate backend fixes for ANSI DECRQM replies and exact mode-number reporting through the supported 16-bit range, preventing high mode numbers from aliasing smaller ones. (0087b61)
- Gate CSI 14/16/18 window-size reports through Window Ops policy while preserving unsolicited mode 2048 reports. Apply the
allowSendEventsinteraction to the blanket Window Ops permission and its menu sensitivity. (0de64fe) - Interpret startup geometry dimensions as columns and rows, compute negative offsets from the resulting window size, and preserve user size, position, and gravity hints. Single-offset forms and zero-sized requests now have measured, tested behavior. (783c280)
Other
- Explain configured emoji font roles, Fontconfig substitutions, monochrome coverage, and routing misses in welcome and diagnostic output. Keep candidate matching distinct from the font that actually served an atom. (bd0bcf5)
- Expand deterministic coverage for styled emoji fitting, whole-sequence fallback, reload/rollback painting, Unicode data provenance, and scoped font coverage. Automated routing and containment evidence remains separate from human legibility assessment. (e0c20d4, 0bdf234, 5198427, 050e027, 0087b61)
- Expand native probes and TDN mappings for emoji artwork, mode queries, synchronized-output boundaries, clipboard behavior, drag scrolling, title and color policies, window reports, hold, and login-shell startup. (de5fac0, 89c0f89, 156b4f2, 0de64fe, 712f7b7, 160c02d)
- Add validation-only package builds tied to an exact source SHA, five-artifact manifests, native prerelease version ordering, and draft-first release preparation. Fix fortified-build logging and Ubuntu shell/dependency assumptions exposed by hosted validation. (f305a2c, ede0588)
Artifacts
| File | Size | Notes |
|---|---|---|
release-manifest.json |
1.1 KiB | |
revenant-0.8.0-1-x86_64.pkg.tar.zst |
1.3 MiB | Arch Linux package; sudo pacman -U ./revenant-0.8.0-1-x86_64.pkg.tar.zst |
revenant-0.8.0-1.fc44.x86_64.rpm |
1.2 MiB | Fedora package; sudo dnf install ./revenant-0.8.0-1.fc44.x86_64.rpm |
revenant-0.8.0-linux-aarch64.tar.gz |
1.2 MiB | Linux aarch64 binary archive (dynamically linked): stripped revenant, xterm+ symlink, README, licenses |
revenant-0.8.0-linux-x86_64.tar.gz |
1.2 MiB | Linux x86_64 binary archive (dynamically linked): stripped revenant, xterm+ symlink, README, licenses |
revenant_0.8.0-1_amd64.deb |
1.1 MiB | Debian/Ubuntu package; sudo apt install ./revenant_0.8.0-1_amd64.deb |
SHA-256:
b77931a087f93238c7b028704f88bb713c1e9a788ec2121cb062b982a5bde680 release-manifest.json
d1fc2a3d9b1797293f297c6d9d5d973cb59ab81c0593c42010af949077045221 revenant-0.8.0-1-x86_64.pkg.tar.zst
15aab2655bb668b7b09e85b84c1339a07ea7c9b9283138d3255e4c72bc3f7631 revenant-0.8.0-1.fc44.x86_64.rpm
e782f903c8040c342da10b014b371576d107413e777f83a2007a693081a45513 revenant-0.8.0-linux-aarch64.tar.gz
4ff9e6145d3459a3c03f1b7ac1e2982cf190c522bbe9618419b93101ce6c901c revenant-0.8.0-linux-x86_64.tar.gz
65d1d6a41fc32fe7dcd6f2dc59f91202f00a3233ade6404a8e54ebf6fa2df716 revenant_0.8.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.