Commit Graph

19 Commits

Author SHA1 Message Date
Simon Klee 0733b5382c runtime: support Bun 1.4 (#1400) 2026-09-04 21:09:49 +02:00
Simon Klee f1b320aa74 ci: skip symbols in dependent package builds (#1476)
Speedup some ci things.

Releases still publish all eight native symbol archives, including
Windows. The symbol generation, verification, and release-upload steps
are unchanged.
2026-09-04 20:58:03 +02:00
Sebastian 09a0dd695d fix(native): ship stripped libraries with separate release symbols (#1437) 2026-08-31 22:38:28 +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 2ba1c36cba ci: run all matrix tests after failures (#1412)
Preserve results from every supported platform when one matrix job
fails.

Trying to avoid it cancelling all jobs when one thing fails.
2026-08-23 09:02:33 +02:00
Simon Klee fa14b96ad4 node: support Node.js 26.4 and later (#1410)
Keep 26.4.0 as the minimum supported version while allowing later
releases.
2026-08-23 06:56: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 532917707b core: migrate to zig 0.16 (#1286)
Mechanically migrate core to Zig 0.16 without changing behavior,
ownership or api.

- Pin Zig `0.16.0`
- Port the build graph to 0.16 module-level C/C++ APIs; replace
`@cImport` with Translate-C for
  miniaudio and Yoga.
- Add one process-lifetime `std.Io.Threaded.init_single_threaded` seam;
keep existing `std.Thread.spawn` for renderer/audio (no `Io.async` /
`Evented` yet)
- Migrate locks, clocks, writers, allocators, and removed std APIs
- Forward SSH/mosh markers in auto terminal env so remote sessions do
not inherit host
  capabilities
- Upgrade to Unicode 17 data from `uucode`

**Out of scope:** `std.Io.Evented`, renderer/FFI redesign, fixing
pre-existing issues.


| Surface                        | Result             |
| ------------------------------ | ------------------ |
| Production exports             | 347 unchanged      |
| Linux dynamic export names     | Identical (1,760)  |
| TS FFI struct layouts          | Byte-identical     |
| Linux glibc floor              | Still `GLIBC_2.17` |
| Release targets / native paths | Unchanged          |
2026-08-07 12:40:13 +02:00
Simon Klee a0b9064076 ci: update Node.js to 26.4.0 (#1234) 2026-07-07 13:54:29 +02:00
Simon Klee 5da54b9091 ci: fix Zig cache restore on Blacksmith (#1164)
Use Blacksmith-compatible cache restoration so CI jobs can reuse Zig
artifacts instead of rebuilding them on every run.
2026-06-10 10:06:59 +02:00
Simon Klee dfb871ebed ci: split native tests from package matrix (#1161)
Run native tests independently from packaged platform checks so failures
surface without waiting for artifact builds. Cancel superseded pull
request
runs to avoid spending runner capacity on stale revisions.
2026-06-09 09:25:44 +02:00
blacksmith-sh[bot] 4c9a82793b .github/workflows: Migrate workflows to Blacksmith runners (#1159)
Co-authored-by: Simon Klee <hello@simonklee.dk>
2026-06-09 08:52:20 +02:00
Simon Klee c79845fa68 build: require preinstalled Node.js 26.3.0
Require callers and CI jobs to select the supported Node.js version
instead of downloading a private copy on demand.
2026-06-08 12:20:40 +02:00
Simon Klee 6e3f91dd8f keymap: smoke-test packed dist from Node
Pack the dist artifacts, install them into a fresh Node project, and
import every public entrypoint to verify the published shape. Wire the
script into the keymap CI workflow and both npm release jobs so packed
consumers are validated before npm sees them.

Clarify the runtime split in the docs: import-only use is Node-safe,
while creating a native renderer still requires Node 26 with
--experimental-ffi.
2026-06-08 12:20:40 +02:00
Simon Klee 4d038e2d2c ci: harden workflow execution (#1153)
Pin tool versions, restrict permissions and trusted triggers, and update
actions. Ensure preview releases validate the complete package set.
2026-06-08 11:57:51 +02:00
Sebastian db12ee3b19 upgrade gh workflows to node 24 (#1117) 2026-05-28 00:55:46 +02:00
Allyn Malventano 8c11fc9b30 fix(core): guard recalculateBarProps sticky scroll with _hasManualScroll (#1088)
---------

Co-authored-by: malventano <malventano@users.noreply.github.com>
Co-authored-by: Sebastian Herrlinger <hasta84@gmail.com>
2026-05-27 00:08:06 +02:00
Simon Klee deca33147f ci: replace zig action (#1031) 2026-05-06 22:18:14 +02:00
Sebastian f1c511780e Keymap (#983)
See `docs/keymap/overview.mdx` for details.

---------

Co-authored-by: Simon Klee <hello@simonklee.dk>
2026-04-28 02:10:37 +02:00