diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4dd82d1..804a9be 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,7 +27,7 @@ jobs: run: | LOCAL_VERSION=$(node -p "require('./packages/@wterm/core/package.json').version") SHOULD_RELEASE=false - for pkg in core dom react vue just-bash markdown; do + for pkg in core dom react vue just-bash markdown ghostty; do REGISTRY_VERSION=$(npm view "@wterm/$pkg" version 2>/dev/null || echo "0.0.0") echo "@wterm/$pkg — local: $LOCAL_VERSION, registry: $REGISTRY_VERSION" if [ "$LOCAL_VERSION" != "$REGISTRY_VERSION" ]; then @@ -88,7 +88,7 @@ jobs: fi } - for pkg in core dom react vue just-bash markdown; do + for pkg in core dom react vue just-bash markdown ghostty; do publish_pkg "packages/@wterm/$pkg" "@wterm/$pkg" done diff --git a/CHANGELOG.md b/CHANGELOG.md index 790a7b1..f0ed55f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,31 @@ # Changelog -## 0.2.1 +## 0.3.0 +### New Features + +- **Ghostty core** — new `@wterm/ghostty` package with `GhosttyCore` implementing `TerminalCore` via libghostty compiled to WASM, providing an alternative terminal rendering engine (#62) +- **`TerminalCore` interface** — extracted into a standalone module in `@wterm/core` so custom cores (like Ghostty) can be swapped in cleanly (#62) +- **Ghostty example** — minimal vanilla TypeScript example using `@wterm/ghostty` and `@wterm/dom` (#62) +- **Ghostty docs page** — install, quick start, how it works, and switching cores guide (#62) + +### Improvements + +- **Write coalescing** — output writes are now batched with `setTimeout` in the DOM renderer to reduce animation flashing (#62) +- **innerHTML renderer** — switched to `innerHTML` for fewer DOM operations per frame (#62) +- **Deferred PTY spawn** — PTY is now spawned on first `RESIZE` event to eliminate the stray `zsh %` artifact (#62) +- **Local example routes** — split into `/` (built-in core) and `/ghostty` with a core toggle (#62) + +### Contributors + +- @ctate + + + +## 0.2.1 + ### Bug Fixes - Fixed **npm publish** — `workspace:*` peer dependencies are now resolved to real version ranges in published tarballs (#58) @@ -13,8 +35,6 @@ - @ctate - - ## 0.2.0 ### New Features diff --git a/packages/@wterm/core/package.json b/packages/@wterm/core/package.json index 3ac83c1..3c5af60 100644 --- a/packages/@wterm/core/package.json +++ b/packages/@wterm/core/package.json @@ -1,6 +1,6 @@ { "name": "@wterm/core", - "version": "0.2.1", + "version": "0.3.0", "description": "Headless terminal emulator core for the web — WASM bridge and WebSocket transport", "type": "module", "main": "dist/index.js", diff --git a/packages/@wterm/dom/package.json b/packages/@wterm/dom/package.json index 5249d62..55806ee 100644 --- a/packages/@wterm/dom/package.json +++ b/packages/@wterm/dom/package.json @@ -1,6 +1,6 @@ { "name": "@wterm/dom", - "version": "0.2.1", + "version": "0.3.0", "description": "DOM renderer, input handler, and orchestrator for wterm", "type": "module", "main": "dist/index.js", diff --git a/packages/@wterm/ghostty/package.json b/packages/@wterm/ghostty/package.json index 3902cab..21759fe 100644 --- a/packages/@wterm/ghostty/package.json +++ b/packages/@wterm/ghostty/package.json @@ -1,6 +1,6 @@ { "name": "@wterm/ghostty", - "version": "0.2.1", + "version": "0.3.0", "description": "libghostty-powered terminal core for wterm — full-featured VT emulation via Ghostty's WASM build", "type": "module", "main": "dist/index.js", diff --git a/packages/@wterm/just-bash/package.json b/packages/@wterm/just-bash/package.json index 4ceaa64..c463fe1 100644 --- a/packages/@wterm/just-bash/package.json +++ b/packages/@wterm/just-bash/package.json @@ -1,6 +1,6 @@ { "name": "@wterm/just-bash", - "version": "0.2.1", + "version": "0.3.0", "description": "just-bash shell adapter for wterm — line editing, tab completion, history, prompt", "type": "module", "main": "dist/index.js", diff --git a/packages/@wterm/markdown/package.json b/packages/@wterm/markdown/package.json index 65fcc60..a8c860d 100644 --- a/packages/@wterm/markdown/package.json +++ b/packages/@wterm/markdown/package.json @@ -1,6 +1,6 @@ { "name": "@wterm/markdown", - "version": "0.2.1", + "version": "0.3.0", "description": "Streaming markdown-to-ANSI renderer for wterm terminals", "type": "module", "main": "dist/index.js", diff --git a/packages/@wterm/react/package.json b/packages/@wterm/react/package.json index 6e7cacc..adccb18 100644 --- a/packages/@wterm/react/package.json +++ b/packages/@wterm/react/package.json @@ -1,6 +1,6 @@ { "name": "@wterm/react", - "version": "0.2.1", + "version": "0.3.0", "description": "React component for wterm — a terminal emulator for the web", "type": "module", "main": "dist/index.js", diff --git a/packages/@wterm/vue/package.json b/packages/@wterm/vue/package.json index 15de61c..7a66ff6 100644 --- a/packages/@wterm/vue/package.json +++ b/packages/@wterm/vue/package.json @@ -1,6 +1,6 @@ { "name": "@wterm/vue", - "version": "0.2.1", + "version": "0.3.0", "description": "Vue component for wterm — a terminal emulator for the web", "type": "module", "main": "dist/index.js",