Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# syntax=docker/dockerfile:1

# Keep the runtime aligned with package.json and pin the multi-platform image index.
ARG BUN_IMAGE=oven/bun:1.4.0@sha256:5ff609364c049b54eb0ff560ec96319729a972078ef2c755d758f0c6ef89c2d6
ARG BUN_IMAGE=oven/bun:1.4.2@sha256:9114c058aeae42162ee16dd5084b95fe9473970bb6bcb5b232ab1630f0546895

FROM ${BUN_IMAGE} AS manifest
WORKDIR /home/bun/app
Expand Down
28 changes: 14 additions & 14 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion docs-site/src/content/docs/guides/remote-hub.md
Original file line number Diff line number Diff line change
Expand Up @@ -557,7 +557,7 @@ input checks.
opencodex does not publish an official container image. The repository does maintain a source-build
[`Dockerfile`](https://github.com/lidge-jun/opencodex/blob/main/Dockerfile),
[`compose.yaml`](https://github.com/lidge-jun/opencodex/blob/main/compose.yaml), and a narrow
`.dockerignore`. The build pins the multi-platform Bun 1.4.0 image index by digest, runs the proxy as
`.dockerignore`. The build pins the multi-platform Bun 1.4.2 image index by digest, runs the proxy as
the non-root `bun` user, keeps the root filesystem read-only, drops Linux capabilities, and publishes
only the data listener on the host's `127.0.0.1:10100` by default. The foreground process uses
`OCX_SERVICE=1`, so stopping or recreating the container preserves routed Codex state instead
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@
"@bufbuild/protobuf": "^2.14.0",
"@modelcontextprotocol/sdk": "^1.30.0",
"@napi-rs/keyring": "1.3.0",
"bun": "1.4.0",
"bun": "1.4.2",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep the known-crashing Bun runtime out of the test path

Pinning dependencies.bun to 1.4.2 also makes .github/actions/setup-project-bun select that version for every CI job, even though the changed test documents that this exact runtime reproducibly segfaults when bun test --isolate reloads the preload across multiple files, including repeated Windows shard failures. The current batch wrapper treats the first runtime crash as a shard failure, so the focused four-file run does not establish that normal CI or bun run test can complete; retain 1.4.0 or use a fixed runtime until the required full lane=all run is green.

AGENTS.md reference: AGENTS.md:L445-L452

Useful? React with 👍 / 👎.

"zod": "4.4.3"
},
"devDependencies": {
Expand Down
2 changes: 1 addition & 1 deletion structure/ops/docs-and-release.md
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ so the management route stays the single domain schema.

The source runs on Bun, but the published package does **not** require a user-installed Bun.
`package.json` `bin` points at `bin/ocx.mjs` (a Node shim), and the Bun runtime ships as the `bun`
npm dependency (esbuild-style: a tiny main package plus platform-specific `@oven/bun-*`
npm dependency pinned to `1.4.2` (esbuild-style: a tiny main package plus platform-specific `@oven/bun-*`
`optionalDependencies`, finalized by the dependency's own `postinstall: node install.js`).

Invariants:
Expand Down
9 changes: 5 additions & 4 deletions tests/ci-workflows/install-scripts.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,9 @@ describe("install scripts", () => {
expect(pkg.main).toBe("./bin/package-main.mjs");
expect(pkg.exports?.["."]?.bun).toBe("./src/index.ts");
expect(pkg.exports?.["."]?.default).toBe("./bin/package-main.mjs");
// Bun stays at 1.4.0 until 1.4.2's test-runner crash is fixed upstream. 1.4.2 segfaults
// while RE-LOADING the bunfig preload that `--isolate` re-enters once per test file:
// Bun 1.4.2 fixes the Windows fetch streaming regression reported in #6684.
// Earlier 1.4.2 runs segfaulted while RE-LOADING the bunfig preload that `--isolate`
// re-enters once per test file; retain that history and require final cross-platform proof:
// `load_preloads -> JSModuleLoader::loadModule -> JSPromise::status` dereferences a dead
// promise and the process dies with "Segmentation fault at address 0x10". It is a crash in
// the interpreter, not a test result, and no test content avoids it.
Expand All @@ -82,9 +83,9 @@ describe("install scripts", () => {
// 35087572377, 35093667426 and 35098735960, always at the 67th file, and the file sitting at
// that position changed between them.
//
// Moving this back to 1.4.2, or on to a later release, needs a green `lane=all` dispatch as
// This return to 1.4.2, or a move to a later release, needs a green `lane=all` dispatch as
// the evidence -- an ordinary PR run cannot show it, because the Linux sweep masks it.
expect(pkg.dependencies?.bun).toBe("1.4.0");
expect(pkg.dependencies?.bun).toBe("1.4.2");
expect(pkg.dependencies?.zod).toBe("4.4.3");
expect(pkg.devDependencies?.typescript).toBe("7.0.2");
expect(pkg.devDependencies?.["@types/bun"]).toBe("1.4.0");
Expand Down
4 changes: 2 additions & 2 deletions tests/storage/storage-worker-teardown-isolate.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
* is what ruled out an unjoined worker of ours: Bun destroyed the VM while
* native work that had left the thread was still outstanding.
*
* Bun 1.4.0 — the version this repository pins (package.json `dependencies.bun`,
* consumed by .github/actions/setup-project-bun) — rewrote that lifetime model:
* Bun 1.4.0 introduced the lifetime model retained by the bundled runtime
* (package.json `dependencies.bun`, consumed by .github/actions/setup-project-bun):
* worker threads are parent-owned and joined before the parent VM disappears,
* native resources including bun:sqlite are torn down before JSC is destroyed,
* and a termination gate stops native callbacks entering a stopping worker
Expand Down
Loading