Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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 .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ permissions:
env:
# Matches the version this is developed against. Bun's lockfile format and
# its workspace catalogs are both young enough that "latest" is a variable.
BUN_VERSION: 1.4.2
BUN_VERSION: 1.4.4
# Shard counts; keep each matrix below in step with its count.
UNIT_SHARDS: 3
E2E_SHARDS: 12
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ concurrency:
permissions: {}

env:
BUN_VERSION: 1.4.2
BUN_VERSION: 1.4.4

jobs:
build:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/verify-agents.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ permissions:
contents: read

env:
BUN_VERSION: 1.4.2
BUN_VERSION: 1.4.4

jobs:
agents:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/weekly-use-effect-review.lock.yml

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

2 changes: 1 addition & 1 deletion .github/workflows/weekly-use-effect-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ permissions:

runtimes:
bun:
version: "1.4.2"
version: "1.4.4"

steps:
- name: Install repository dependencies
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ bun run docker:up # build and start app plus PostgreSQL locally
bun run docker:down # tear down the local Compose project
```

The repository pins Bun 1.4.2. `mise.toml` selects that version automatically for
The repository pins Bun 1.4.4. `mise.toml` selects that version automatically for
contributors who use [mise](https://mise.jdx.dev); run `mise install` once. Keep
the package metadata, `mise.toml`, Docker image, CI, and documentation
synchronized when changing it.
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1

ARG BUN_VERSION=1.4.2
ARG BUN_VERSION=1.4.4

FROM oven/bun:${BUN_VERSION} AS manifests
WORKDIR /app
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ and tool vocabulary remain optimized for planning.

The development path requires:

- Bun 1.4.2;
- Bun 1.4.4;
- Docker Engine with Docker Compose, used for PostgreSQL;
- a GitHub App owned by the deployment; and
- a GitHub account with push or administration access to a test repository and,
Expand Down
6 changes: 5 additions & 1 deletion apps/connector/src/connection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,11 @@ export function failureCause(error: unknown) {
: typeof status === "string"
? status
: undefined;
if (name) return detail ? `${name}: ${detail}` : name;
if (name) {
// Bun 1.4.4's fetch also starts its message with the code; name it once.
if (detail.startsWith(`${name}: `)) detail = detail.slice(name.length + 2);
return detail ? `${name}: ${detail}` : name;
}
fallback ??= detail || undefined;
current = current.cause;
}
Expand Down
6 changes: 5 additions & 1 deletion apps/server/src/harness/remote/link.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1222,7 +1222,11 @@ describe("Agent connection protocol", () => {
});
cleanups.push(() => session.doDestroy());
await planner.control!("stop", "run-1");
await expect(planner.control!("resume")).rejects.toThrow("nothing to resume");
// Bun 1.4.4's pending `.rejects` matcher makes Bun.serve close a valid socket as
// fragmented (oven-sh/bun#45805), so the refusal is awaited before it is asserted.
let refusal = await planner.control!("resume").catch((error: unknown) => error);
expect(refusal).toBeInstanceOf(Error);
expect((refusal as Error).message).toContain("nothing to resume");
expect(controls).toEqual([{ type: "stop", run: "run-1" }, { type: "resume", run: undefined }]);
await session.doDestroy();
expect(planner.control).toBeUndefined();
Expand Down
22 changes: 11 additions & 11 deletions apps/server/src/storage/postgres/adapter.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1015,17 +1015,17 @@ if (url) {
"026_workflow_run_stages",
"027_decision_answers",
]);
expect(await sql<{ table: string | null }[]>`SELECT to_regclass('channel_slugs') AS table`)
.toEqual([
{ table: "channel_slugs" },
]);
expect(await sql<{ table: string | null }[]>`SELECT to_regclass('user_navigation') AS table`)
.toEqual([
{ table: "user_navigation" },
]);
expect(
await sql<{ table: string | null }[]>`SELECT to_regclass('research_workspaces') AS table`,
).toEqual([{ table: "research_workspaces" }]);
expect([
...await sql<{ table: string | null }[]>`SELECT to_regclass('channel_slugs') AS table`,
]).toEqual([{ table: "channel_slugs" }]);
expect([
...await sql<{ table: string | null }[]>`SELECT to_regclass('user_navigation') AS table`,
]).toEqual([{ table: "user_navigation" }]);
expect([
...await sql<
{ table: string | null }[]
>`SELECT to_regclass('research_workspaces') AS table`,
]).toEqual([{ table: "research_workspaces" }]);
} finally {
await sql.unsafe(`DROP SCHEMA IF EXISTS "${schema}" CASCADE`).simple();
await sql.close();
Expand Down
9 changes: 6 additions & 3 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/chopin-cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ releases are made.
## Run without installing

Every Chopin server also serves the connector as one script at
`/connector.js`. It needs [Bun](https://bun.sh) 1.4.2. This is the command
`/connector.js`. It needs [Bun](https://bun.sh) 1.4.4. This is the command
Chopin shows when no local agent is connected:

```sh
Expand Down
2 changes: 1 addition & 1 deletion docs/self-hosting.md
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ headers.

## Prerequisites

- Docker for the application image, or Bun 1.4.2 for a source deployment.
- Docker for the application image, or Bun 1.4.4 for a source deployment.
- A reachable PostgreSQL database and credentials with schema migration access.
- A stable DNS name with TLS termination and WebSocket proxying.
- Outbound HTTPS access to GitHub and the selected harness's model provider
Expand Down
2 changes: 1 addition & 1 deletion e2e/conversation-plan.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM oven/bun:1.4.2 AS bun
FROM oven/bun:1.4.4 AS bun
FROM mcr.microsoft.com/playwright:v1.62.1-noble@sha256:dcc5531e97840b9b5e794f2814476b21571c5124a3fca2267d73041f56e7580e
COPY --from=bun /usr/local/bin/bun /usr/local/bin/bun
WORKDIR /work
Expand Down
2 changes: 1 addition & 1 deletion e2e/design/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM oven/bun:1.4.2 AS bun
FROM oven/bun:1.4.4 AS bun
FROM mcr.microsoft.com/playwright:v1.62.1-noble@sha256:dcc5531e97840b9b5e794f2814476b21571c5124a3fca2267d73041f56e7580e
COPY --from=bun /usr/local/bin/bun /usr/local/bin/bun
WORKDIR /work
Expand Down
2 changes: 1 addition & 1 deletion e2e/design/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Rendered design checks

`bun run design:browser` builds and runs a disposable Linux amd64 container with
Bun 1.4.2 and a digest-pinned Playwright 1.62.1 Noble image. It installs from the
Bun 1.4.4 and a digest-pinned Playwright 1.62.1 Noble image. It installs from the
frozen lockfile, starts the real `/design-audit` development route and runs Chromium.
Docker is required. No database, GitHub login, API key, host port or paid agent is used.
This is an optional visual review command. Screenshot differences and exact
Expand Down
2 changes: 1 addition & 1 deletion mise.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
[tools]
bun = "1.4.2"
bun = "1.4.4"
7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "chopin",
"private": true,
"packageManager": "bun@1.4.2",
"packageManager": "bun@1.4.4",
"type": "module",
"scripts": {
"dev": "bun scripts/dev.ts",
Expand Down Expand Up @@ -42,6 +42,9 @@
"postcss-value-parser": "4.2.0",
"yaml": "2.9.0"
},
"overrides": {
"bun-types": "1.4.4"
},
"patchedDependencies": {
"@mdxeditor/editor@4.1.0": "patches/@mdxeditor%2Feditor@4.1.0.patch",
"mdast-util-to-markdown@2.1.2": "patches/mdast-util-to-markdown@2.1.2.patch"
Expand All @@ -53,7 +56,7 @@
],
"catalogs": {
"bun": {
"@types/bun": "1.4.2"
"@types/bun": "1.4.3"
},
"copilot": {
"@github/copilot": "1.0.80",
Expand Down
4 changes: 2 additions & 2 deletions scripts/conversation-plan-worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,8 @@ async function namespace(report: Record<string, unknown>): Promise<void> {
});
socket.once("error", (error: NodeJS.ErrnoException) => {
clearTimeout(timer);
// Bun 1.4.2 maps kernel ENETUNREACH to ECONNREFUSED in this verified route-free namespace.
let mapped = Bun.version === "1.4.2" && error.code === "ECONNREFUSED";
// Bun 1.4.4 maps kernel ENETUNREACH to ECONNREFUSED in this verified route-free namespace.
let mapped = Bun.version === "1.4.4" && error.code === "ECONNREFUSED";
if (mapped || ["ENETUNREACH", "EHOSTUNREACH", "EACCES", "EPERM"].includes(error.code ?? "")) {
report.socketDenial = mapped ? "bun-mapped-unreachable" : "routing-denial";
resolve();
Expand Down
Loading