From c4421c957b63821d645d0271b0158cb5a10aa12a Mon Sep 17 00:00:00 2001 From: Thomas Kosiewski Date: Fri, 30 Oct 2026 13:22:39 +0000 Subject: [PATCH 1/3] Release v0.1.0-beta.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_ --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index b82e824..f92b622 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@coder/libghostty-vt-node", - "version": "0.1.0-beta.3", + "version": "0.1.0-beta.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@coder/libghostty-vt-node", - "version": "0.1.0-beta.3", + "version": "0.1.0-beta.4", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 078cfe1..d6628c6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@coder/libghostty-vt-node", - "version": "0.1.0-beta.3", + "version": "0.1.0-beta.4", "description": "ABI-stable Node-API bindings for Ghostty libghostty-vt terminal semantics.", "license": "MIT", "engines": { From d0110aa0e63a8daa752247ec845ed5912d57ad72 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 30 Oct 2026 13:24:16 +0000 Subject: [PATCH 2/3] docs: update changelog for v0.1.0-beta.4 --- CHANGELOG.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5abdbe9..c634c19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,14 +4,17 @@ All notable user-facing changes to this package will be documented in this file. ## [Unreleased] +## [v0.1.0-beta.4](https://github.com/coder/libghostty-vt-node/releases/tag/v0.1.0-beta.4) - 2026-10-30 + +## Fixed +- `getNativeInfo()` now reports the Ghostty source commit the addon was built from. `ghosttyCommit` returns the full SHA (e.g. `"83fb95624b0439ee660c2679b43b38c8b63769cd"`) and `ghosttyVersion` includes it as SemVer build metadata (e.g. `"0.1.0-dev+83fb9562..."`). The native code and `NativeInfo` type shape are unchanged ([#53](https://github.com/coder/libghostty-vt-node/pull/53) by @ThomasK33). + ## [v0.1.0-beta.3](https://github.com/coder/libghostty-vt-node/releases/tag/v0.1.0-beta.3) - 2026-10-30 ## Fixed - Prevent `snapshot()` from running arbitrary JavaScript (via accessors on `Object.prototype` / `Array.prototype`) while the native code holds the terminal handle. Snapshot result objects are now built with own data properties (`napi_define_properties`), and both `includeScrollback` and `includeCells` options are read before the disposed-terminal check, so a getter that disposes the terminal during that read throws "GhosttyVtTerminal has been disposed". Before, such a setter (for example on `row` or `text`) crashed Node with a segfault or an assertion abort, and such a getter aborted it on an assertion ([#46](https://github.com/coder/libghostty-vt-node/pull/46) by @ThomasK33). -## [v0.1.0-beta.2](https://github.com/coder/libghostty-vt-node/releases/tag/v0.1.0-beta.2) - 2026-10-30 - -## Added +## [v0.1.0-beta.2](https://github.com/coder/libghostty-vt-node/releases/tag/v0.1.0-beta.2) - 2026-10-30## Added - `encodeMouse(event, options)` on every terminal, backed by Ghostty's mouse-protocol encoder with validation of grid geometry, surface coordinates, and pressed-button state. It reads each caller field once, so the value it validates is the value it encodes. In UTF-8 mouse mode (1005), rows whose encoded value is above U+FFFF encode as 4-byte UTF-8, and cells whose encoded value would be a Unicode surrogate throw a `RangeError`. A new `supportsMouseInput` capability marker lets consumers probe at import time ([#12](https://github.com/coder/libghostty-vt-node/pull/12), [#41](https://github.com/coder/libghostty-vt-node/pull/41), [#42](https://github.com/coder/libghostty-vt-node/pull/42)). - `SnapshotCell` now exposes `faint`, `inverse`, `invisible`, and `strikethrough` SGR attributes, following the same "present only when set" convention as `bold`/`italic`/`underline`. Note that `inverse` is the raw attribute: `foreground`/`background` are not swapped ([#17](https://github.com/coder/libghostty-vt-node/pull/17)). - `TerminalSnapshot.cursorVisible: boolean` reflects DECTCEM state (`ESC[?25h` / `ESC[?25l`). The field is required, so code that constructs its own `TerminalSnapshot` objects must set it ([#17](https://github.com/coder/libghostty-vt-node/pull/17), [#38](https://github.com/coder/libghostty-vt-node/pull/38)). From e634b3c8e9b4a556ab2a930582ffabb9cbb1ca2a Mon Sep 17 00:00:00 2001 From: Thomas Kosiewski Date: Fri, 30 Oct 2026 13:25:14 +0000 Subject: [PATCH 3/3] docs: restore beta.2 Added heading and state the beta.3 values in the beta.4 entry MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_ --- CHANGELOG.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c634c19..3ec50f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,14 +7,16 @@ All notable user-facing changes to this package will be documented in this file. ## [v0.1.0-beta.4](https://github.com/coder/libghostty-vt-node/releases/tag/v0.1.0-beta.4) - 2026-10-30 ## Fixed -- `getNativeInfo()` now reports the Ghostty source commit the addon was built from. `ghosttyCommit` returns the full SHA (e.g. `"83fb95624b0439ee660c2679b43b38c8b63769cd"`) and `ghosttyVersion` includes it as SemVer build metadata (e.g. `"0.1.0-dev+83fb9562..."`). The native code and `NativeInfo` type shape are unchanged ([#53](https://github.com/coder/libghostty-vt-node/pull/53) by @ThomasK33). +- `getNativeInfo()` now reports the Ghostty source commit the addon was built from. `ghosttyCommit` returns the full SHA (e.g. `"83fb95624b0439ee660c2679b43b38c8b63769cd"`) and `ghosttyVersion` includes it as SemVer build metadata (e.g. `"0.1.0-dev+83fb9562..."`). Before, `ghosttyVersion` was `"0.1.0-dev"` and `ghosttyCommit` was missing. The `NativeInfo` type is unchanged ([#53](https://github.com/coder/libghostty-vt-node/pull/53) by @ThomasK33). ## [v0.1.0-beta.3](https://github.com/coder/libghostty-vt-node/releases/tag/v0.1.0-beta.3) - 2026-10-30 ## Fixed - Prevent `snapshot()` from running arbitrary JavaScript (via accessors on `Object.prototype` / `Array.prototype`) while the native code holds the terminal handle. Snapshot result objects are now built with own data properties (`napi_define_properties`), and both `includeScrollback` and `includeCells` options are read before the disposed-terminal check, so a getter that disposes the terminal during that read throws "GhosttyVtTerminal has been disposed". Before, such a setter (for example on `row` or `text`) crashed Node with a segfault or an assertion abort, and such a getter aborted it on an assertion ([#46](https://github.com/coder/libghostty-vt-node/pull/46) by @ThomasK33). -## [v0.1.0-beta.2](https://github.com/coder/libghostty-vt-node/releases/tag/v0.1.0-beta.2) - 2026-10-30## Added +## [v0.1.0-beta.2](https://github.com/coder/libghostty-vt-node/releases/tag/v0.1.0-beta.2) - 2026-10-30 + +## Added - `encodeMouse(event, options)` on every terminal, backed by Ghostty's mouse-protocol encoder with validation of grid geometry, surface coordinates, and pressed-button state. It reads each caller field once, so the value it validates is the value it encodes. In UTF-8 mouse mode (1005), rows whose encoded value is above U+FFFF encode as 4-byte UTF-8, and cells whose encoded value would be a Unicode surrogate throw a `RangeError`. A new `supportsMouseInput` capability marker lets consumers probe at import time ([#12](https://github.com/coder/libghostty-vt-node/pull/12), [#41](https://github.com/coder/libghostty-vt-node/pull/41), [#42](https://github.com/coder/libghostty-vt-node/pull/42)). - `SnapshotCell` now exposes `faint`, `inverse`, `invisible`, and `strikethrough` SGR attributes, following the same "present only when set" convention as `bold`/`italic`/`underline`. Note that `inverse` is the raw attribute: `foreground`/`background` are not swapped ([#17](https://github.com/coder/libghostty-vt-node/pull/17)). - `TerminalSnapshot.cursorVisible: boolean` reflects DECTCEM state (`ESC[?25h` / `ESC[?25l`). The field is required, so code that constructs its own `TerminalSnapshot` objects must set it ([#17](https://github.com/coder/libghostty-vt-node/pull/17), [#38](https://github.com/coder/libghostty-vt-node/pull/38)).