Repository navigation
4.5: Resolve the Bun 1.4.4 native transport and storage prerequisites #197
Description
Parent
What to deliver
A working or explicitly bounded Bun1.4.4 runtime path for the controller/router and worker prerequisites, with a measured compatibility decision before attempting full-stack runtime comparisons.
Acceptance criteria
- Reproduce the recorded uWS20.67.0 native load failure under Bun1.4.3; distinguish platform preparation, V8/native ABI compatibility and actual application behavior.
- Evaluate a narrow portable transport seam or supported implementation while preserving HTTP/WebSocket protocol, subscriptions/topics, fanout, backpressure, close/error and controller coordination semantics. Keep the existing Node path verifiable.
- Demonstrate native codec ABI encode/decode, worker IPC/identity, disconnect/exit/restart, bounded shutdown, HTTP/WS lifecycle and runtime-appropriate heap/GC reporting on the intended deployment platform.
- Audit actual PM2/systemd/container executable and flags. A Bun CLI running a Node-launched child is not a Bun runtime result.
- Record exact artifacts and remaining limits; a Windows smoke is not Linux or production qualification. If the transport change cannot yet be justified, publish the blocking evidence and cost without declaring Bun supported.
Blocked by
None for the native transport/worker feasibility slice. Full-stack storage/replay qualification subsequently uses the guarded fixture harness.
Release context
Part of the Hyperion 4.5 component profiling program, requested on 2026-10-18. The source-backed program and first runtime evidence are in https://github.com/eosrio/hyperion-tools/blob/46f12c97374d0b89102ec14c0d661d245f69fb1e/docs/performance/hyperion-4.5-profiling.md . Existing reliability work remains in #187; retained-history upgrade and release selection remain in #190 and eosrio/hyperion-tools#20. No automatic server upgrade or runtime-support claim follows from a benchmark.
Bun 1.4.4 and upstream Undici status (2026-10-22)
The operator selected Bun 1.4.4 for ongoing engineering. The shared checker/CI migration is tracked in eosrio/hyperion-tools#61. TypeScript remains 7.0.2 after verifying the embedded checker. Keep the original 1.4.3 observations as dated evidence and repeat runtime prerequisites on the new target; checker adoption alone does not qualify the production runtime.
The operator's oven-sh/bun#27338 is included in part in the open HTTP/Undici consolidation #46528, alongside dispatcher work from #39250. The observed consolidation head was 6d5b5799173ca1e562e7588ef196ebb211523b8a, with no merge commit. That observation is a moving upstream snapshot, not a released-runtime pin.
A new read-only Hyperion-3 smoke used the exact locked @elastic/elasticsearch 8.19.1, @elastic/transport 8.10.1 and undici 8.3.0 against the exclusively owned Elasticsearch 9.5.5 fixture. Native Node 24.19.0 passed client.info() and client.close(). The official released Linux Bun 1.4.4 failed info with undefined is not an object (evaluating 'response.headers') and failed close with this.pool.close is not a function. No custom transport, shim, preload or client dependency replacement was used. Source-backed evidence is being published with Tools#61.
- Verify the upstream merge commit and exact first official Bun build containing the bundled fix; do not infer inclusion from a version label or PR bundling alone.
- Repeat the exact installed-client smoke on that immutable build, then qualify request/bulk/search, timeout/cancellation, dispatcher close/destroy, backpressure and memory recovery with the guarded harness and real workers.
- Retain the separate native addon, worker IPC/lifecycle, transport and full-stack gates above. No Bun runtime support or performance conclusion follows from the two-call smoke.
Activity
[-]4.5: Resolve the Bun 1.4.3 native transport prerequisite[/-][+]4.5: Resolve the Bun 1.4.4 native transport and storage prerequisites[/+]igorls commentedon Oct 22, 2026
Source-only upstream update: Jarred’s Bun #46528 now points to
826df79784f4d8a8d36192f7b335cb4f572480faand remains open/unmerged. Its body explicitly includes the operator’s original #27338 in part and credits@igorls. This supersedes the previously observed bundle head76bc84e7690424d0ff3e332643cde543c85b4306as a source candidate only.No containing binary was installed or qualified in this update. Bun 1.4.4 remains the authoring/test baseline, and the earlier normal-client runtime failure is unchanged evidence. Retest an exact containing build with the normal committed Elasticsearch client/transport tree and ES 9.5.5 qualification; upstream source inclusion alone does not establish Hyperion runtime compatibility. HAPI #280/#281 measured diagnostics/backpressure used native Node paths and do not alter this Bun runtime gate. No dependency upgrade, deployment or new monitor was performed.
igorls commentedon Oct 23, 2026
2026-10-23 upstream source update: Jarred Sumner's Bun #46528 now has head
41b5bfae03a02284c380f25f1196794413e940dc. It explicitly includes @igorls's original #27338 in part and credits @igorls. Both PRs remain open; #46528 is a source candidate, not a released runtime artifact.The Bun 1.4.4 / locked Elasticsearch client qualification result remains unchanged. Once a released Bun build contains the integrated code, rerun the normal client and full Hyperion worker/API smoke against the pinned Elasticsearch version before changing the runtime gate.