Commit Graph

224 Commits

Author SHA1 Message Date
Simon Klee f015a73f3e core: keep worker error listener on termination (#1508)
A worker can emit an error while termination is pending. Keep its
listener attached so Node does not turn that failure into an uncaught
exception.
2026-09-16 10:20:18 +02:00
OpenCode Agent 6b9863ea7c Release v0.5.11 2026-09-07 10:42:03 +00:00
Simon Klee 0733b5382c runtime: support Bun 1.4 (#1400) 2026-09-04 21:09:49 +02:00
OpenCode Agent runtime f6673a04cc Release v0.5.10 2026-09-01 15:38:50 +00:00
Simon Klee c1a52d2114 renderer: reduce image streaming overhead (#1467)
Reduce frame preparation and transport costs so local terminals can
consume image updates with less CPU work. Bound pending frames when
output stalls and fix per-frame GPU resource growth so sustained
rendering does not accumulate work or retain native handles.

Keep raw transport as the default and make file transport opt-in for
terminals that acknowledge image uploads.

#1328 partially superseded, but it has `NativeImage.adoptRgbaFile(path,
width, height)` that adopts an existing producer-created RGBA file
lazily. Eligible renders send that same path without reading, copying,
or rewriting its pixels.
2026-08-30 22:21:36 +02:00
OpenCode Agent runtime df2fc1594b Release v0.5.9 2026-08-27 23:00:22 +00:00
Simon Klee 7a0dca8d5e web: add rendered terminal examples to docs (#1446)
Show actual OpenTUI output beside documentation examples so readers
can see component behavior without running an application.
2026-08-26 21:04:05 +02:00
Simon Klee e1ad51afcd ssh: assert error code for occupied ports (#1444) 2026-08-26 16:41:47 +02:00
Simon Klee 21b0021742 Release v0.5.8 2026-08-24 15:03:23 +02:00
Simon Klee 6b3a9e46cb ci: save Linux core dumps from failed tests (#1414)
Linux test crashes left no data to investigate after the runner stopped.
The CI system now saves core dumps and program files to help find the
cause.
2026-08-23 13:23:45 +02:00
Simon Klee 5ec3f33e85 Release v0.5.7 2026-08-23 08:35:31 +02:00
Simon Klee fa20a6bc20 web: font size consistency (#1399) 2026-08-21 12:44:58 +02:00
Simon Klee c1ae55b4ec fix: pin Bun types to 1.3.14 2026-08-20 23:06:41 +02:00
Simon Klee b7b4a95f18 Release v0.5.6 2026-08-20 22:52:43 +02:00
Simon Klee fdf893d285 Release v0.5.5 2026-08-20 15:55:30 +02:00
Simon Klee 6dec16a77c native: move Zig sources into packages/native (#1391)
Separate the native implementation from the TypeScript bindings. Keep
core on
the public bindings and keep the current native artifact packages and
release
workflows.

packages/native owns the Zig source, tests, benches, and vendor updates.
The
package is private and unpublished for now Core still packages the
@opentui/core-* artifacts. build:native, test:native, and bench:native
still
work from core and delegate to native.

Expose a Zig import root and a no-JS hello example for proof of concept,
not a focus point, just a smoke test.
2026-08-20 11:34:03 +02:00
Simon Klee 0dcb68578c docs: add embedded terminal docs (#1388) 2026-08-19 13:45:23 +02:00
Simon Klee 7f5b19b640 Release v0.5.4 2026-08-18 13:26:44 +02:00
Simon Klee 5c149161fa web: add sitemap and crawler rules
Expose public routes to crawlers through a sitemap and robots policy. Exclude error and redirect-only pages so search results lead to content.
2026-08-14 11:39:54 +02:00
Simon Klee 8ee6bd0f87 web: add blue color theme
Offer a high-contrast light theme that keeps page content and code samples
visually consistent while preserving the existing light and dark modes.
2026-08-14 11:08:20 +02:00
Simon Klee 1500698af0 Release v0.5.3 2026-08-13 21:57:43 +02:00
Simon Klee 4d8207240c web: rebuild site + add blog (#1362)
Rebuilt the site and added blog posts from
[1325](https://github.com/anomalyco/opentui/pull/1325)

Closes #1324



https://github.com/user-attachments/assets/05e8faf1-c796-4169-acf8-6a9d3c1a8cee

Co-authored-by: Aviral Shukla <79330197+viralcodex@users.noreply.github.com>
2026-08-13 13:01:19 +02:00
Simon Klee 2530d19a36 fix(core): clip glyphs left of the buffer (#1361)
one sentence: check should not be inclusive.

drawTextBufferInternal did not clip a width-1 glyph at currentX == -1.
The transparent text path then calculated an invalid u32 index and read
past the cell buffer.
Clip each glyph when its range ends at or before column 0.
Assert that the index is in the cell buffer before direct access.

This fixes the abort in OpenCode issue
[#42094](https://github.com/anomalyco/opencode/issues/42094).
The stack includes trySetTransparentTextCellFast and
bufferDrawTextBufferView.
2026-08-13 13:00:59 +02:00
Simon Klee 14b3d135a3 Release v0.5.2 2026-08-12 21:42:28 +02:00
Simon Klee b2df3d9c74 web: upgrade Astro (#1335) 2026-08-05 14:46:55 +02:00
Simon Klee b63ce7474d bench: add JS benchmark (#1332)
Add calibrated, machine-readable measurements for core JavaScript
workloads.
2026-08-05 13:40:09 +02:00
Sebastian Herrlinger ad9a818d7a prepare release v0.5.1 2026-08-04 03:33:05 +02:00
Sebastian Herrlinger 1bc4d2a56e prepare release v0.5.0 2026-08-03 14:10:34 +02:00
Sebastian b5dae2433d perf(core): reuse FFI struct storage (#1284) 2026-07-27 23:56:08 +02:00
Simon Klee 0c8c4f7cff Release v0.4.5 2026-07-17 12:51:33 +02:00
Sebastian Herrlinger 9d7ad9fc9c prepare release v0.4.4 2026-07-16 20:51:25 +02:00
Simon Klee a0b9064076 ci: update Node.js to 26.4.0 (#1234) 2026-07-07 13:54:29 +02:00
Simon Klee 5803b2cfa2 Release v0.4.3 2026-07-03 20:33:39 +02:00
Simon Klee fb3b607d8c fix(ffi): preserve borrowed pointer owners (#1221)
Pass transient buffers to FFI calls as borrowed objects so Node keeps
the JavaScript owner alive for the synchronous
native read. Raw addresses can outlive the object that backs them, which
lets GC corrupt styled text and cursor option
data

Fixes #1212
2026-07-03 11:14:25 +02:00
Simon Klee cea1daec46 core: fix Select test assertions (#1204) 2026-06-26 09:44:55 +02:00
Simon Klee 3e2d0aabeb Release v0.4.2 2026-06-24 08:52:39 +02:00
Sebastian Herrlinger b7e0bb9c3d prepare release v0.4.1 2026-06-11 20:38:31 +02:00
Simon Klee ce44980a10 web: update documentation and dependencies (#1166) 2026-06-11 10:53:04 +02:00
Sebastian 26f364f602 Native yoga-layout (#1126) 2026-06-11 09:32:11 +02:00
Matt Simpson 9ef4691410 feat(ssh): add @opentui/ssh package (#1151)
## Summary

Adds `@opentui/ssh`, renderer-agnostic ssh server package for serving
apps to remote terminals.

Highlights:
- `createServer(config).use(...).serve(handler)` builder api with typed
middleware context
- open, public key, password, and keyboard-interactive auth, including
verified public-key possession and `authorized_keys` allowlists
- host key loading/generation, startup banner, logging middleware,
session resize/close hooks, raw writes, idle/max timeouts, and graceful
shutdown

---------

Co-authored-by: opencode-agent <opencode-agent@opencode.ai>
Co-authored-by: Sebastian Herrlinger <hasta84@gmail.com>
2026-06-11 00:41:50 +02:00
Simon Klee 71f759ead4 Release v0.4.0 2026-06-09 12:44:23 +02:00
Simon Klee 544434069a link: retire slots after generation exhaustion (#1154)
Generation wrap could make stale link IDs valid again and let them
access
unrelated URLs. Retire exhausted slots so stale IDs remain invalid for
the
lifetime of the pool.
2026-06-08 13:31:04 +02:00
Simon Klee ec5140f427 build: target Node.js for portable dist output
Add conditional exports (bun/node/default) so each runtime resolves
the correct variant, and add a packed dist smoke test that verifies
imports work in both Node.js and Bun.
2026-06-08 12:20:40 +02:00
Sebastian Herrlinger 9b216a58d9 prepare release v0.3.4 2026-06-07 21:37:17 +02:00
Simon Klee 3bf8146172 Release v0.3.3 2026-06-07 16:22:49 +02:00
Sebastian c127f724a0 core: guard native objects with handles (#1123)
Native calls previously accepted raw pointers, allowing stale references to
dereference freed memory after object destruction. Use generation-tagged
handles so stale, wrong-kind, and borrowed child references fail safely
instead of causing use-after-free.

Co-authored-by: Simon Klee <hello@simonklee.dk>
2026-06-04 22:34:26 +02:00
Sebastian Herrlinger e2a847d60a prepare release v0.3.2 2026-06-04 14:48:37 +02:00
riggy2013 20c88960ae Bug(linux): add musl native targets (#1114)
---------

Co-authored-by: Sebastian Herrlinger <hasta84@gmail.com>
2026-06-03 23:17:07 +02:00
Simon Klee 2d4de319c2 Release v0.3.1 2026-06-01 13:49:38 +02:00
Sebastian Herrlinger a677997458 prepare release v0.3.0 2026-05-28 17:23:01 +02:00