Skip to content

Commit 0114a3f

Browse files
author
Ryan Vogel
committed
Merge remote-tracking branch 'origin/dev' into opencode-remote-voice
2 parents a4d4a3f + 8ffadde commit 0114a3f

307 files changed

Lines changed: 11609 additions & 8549 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/VOUCHED.td

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ kommander
2626
r44vc0rp
2727
rekram1-node
2828
-robinmordasiewicz
29+
simonklee
2930
-spider-yamet clawdbot/llm psychosis, spam pinging the team
3031
thdxr
3132
-toastythebot

.github/workflows/publish.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,7 @@ jobs:
389389
needs:
390390
- build-cli
391391
- version
392+
if: github.repository == 'anomalyco/opencode'
392393
continue-on-error: false
393394
env:
394395
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
@@ -421,7 +422,6 @@ jobs:
421422
target: aarch64-unknown-linux-gnu
422423
platform_flag: --linux
423424
runs-on: ${{ matrix.settings.host }}
424-
# if: github.ref_name == 'beta'
425425
steps:
426426
- uses: actions/checkout@v3
427427

@@ -547,6 +547,7 @@ jobs:
547547
- sign-cli-windows
548548
- build-tauri
549549
- build-electron
550+
if: always() && !failure() && !cancelled()
550551
runs-on: blacksmith-4vcpu-ubuntu-2404
551552
steps:
552553
- uses: actions/checkout@v3

.github/workflows/test.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ permissions:
1717
contents: read
1818
checks: write
1919

20+
env:
21+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
22+
2023
jobs:
2124
unit:
2225
name: unit (${{ matrix.settings.name }})
@@ -38,6 +41,11 @@ jobs:
3841
with:
3942
token: ${{ secrets.GITHUB_TOKEN }}
4043

44+
- name: Setup Node
45+
uses: actions/setup-node@v4
46+
with:
47+
node-version: "24"
48+
4149
- name: Setup Bun
4250
uses: ./.github/actions/setup-bun
4351

@@ -102,6 +110,11 @@ jobs:
102110
with:
103111
token: ${{ secrets.GITHUB_TOKEN }}
104112

113+
- name: Setup Node
114+
uses: actions/setup-node@v4
115+
with:
116+
node-version: "24"
117+
105118
- name: Setup Bun
106119
uses: ./.github/actions/setup-bun
107120

bun.lock

Lines changed: 84 additions & 54 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nix/hashes.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"nodeModules": {
3-
"x86_64-linux": "sha256-85wpU1oCWbthPleNIOj5d5AOuuYZ6rM7gMLZR6YJ2WU=",
4-
"aarch64-linux": "sha256-C3A56SDQGJquCpIRj2JhIzr4A7N4cc9lxtEjl8bXDeM=",
5-
"aarch64-darwin": "sha256-/Ij3qhGRrcLlMfl9uEacDNnGK5URxhctuQFBW4Njrog=",
6-
"x86_64-darwin": "sha256-10sOPuN4eZ75orw4FI8ztCq1+AKS2e8aAfg3Z6Yn56w="
3+
"x86_64-linux": "sha256-fNRQYkucjXr1D61HJRScJpDa6+oBdyhgTBxCu+PE2kQ=",
4+
"aarch64-linux": "sha256-V8J6kn2nSdXrplyqi6aIqNlHcVjSxvye+yC/YFO7PF4=",
5+
"aarch64-darwin": "sha256-6cLmUJVUycGALCmslXuloVGBSlFOSHRjsWjx7KOW8rg=",
6+
"x86_64-darwin": "sha256-kcOSO3NFIJh79ylLotG41ovWLQfH5kh1WYFghUu+4HE="
77
}
88
}

package.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"packages/slack"
2727
],
2828
"catalog": {
29-
"@effect/platform-node": "4.0.0-beta.43",
29+
"@effect/platform-node": "4.0.0-beta.46",
3030
"@types/bun": "1.3.11",
3131
"@types/cross-spawn": "6.0.6",
3232
"@octokit/rest": "22.0.0",
@@ -47,8 +47,8 @@
4747
"dompurify": "3.3.1",
4848
"drizzle-kit": "1.0.0-beta.19-d95b7a4",
4949
"drizzle-orm": "1.0.0-beta.19-d95b7a4",
50-
"effect": "4.0.0-beta.43",
51-
"ai": "6.0.149",
50+
"effect": "4.0.0-beta.46",
51+
"ai": "6.0.158",
5252
"cross-spawn": "7.0.6",
5353
"hono": "4.10.7",
5454
"hono-openapi": "1.1.2",
@@ -71,7 +71,8 @@
7171
"@solidjs/router": "0.15.4",
7272
"@solidjs/start": "https://pkg.pr.new/@solidjs/start@dfb2020",
7373
"solid-js": "1.9.10",
74-
"vite-plugin-solid": "2.11.10"
74+
"vite-plugin-solid": "2.11.10",
75+
"@lydell/node-pty": "1.2.0-beta.10"
7576
}
7677
},
7778
"devDependencies": {

packages/app/e2e/backend.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,12 @@ async function waitForHealth(url: string, probe = "/global/health") {
4444
throw new Error(`Timed out waiting for backend health at ${url}${probe}${last ? ` (${last})` : ""}`)
4545
}
4646

47+
function done(proc: ReturnType<typeof spawn>) {
48+
return proc.exitCode !== null || proc.signalCode !== null
49+
}
50+
4751
async function waitExit(proc: ReturnType<typeof spawn>, timeout = 10_000) {
48-
if (proc.exitCode !== null) return
52+
if (done(proc)) return
4953
await Promise.race([
5054
new Promise<void>((resolve) => proc.once("exit", () => resolve())),
5155
new Promise<void>((resolve) => setTimeout(resolve, timeout)),
@@ -123,11 +127,11 @@ export async function startBackend(label: string, input?: { llmUrl?: string }):
123127
return {
124128
url,
125129
async stop() {
126-
if (proc.exitCode === null) {
130+
if (!done(proc)) {
127131
proc.kill("SIGTERM")
128132
await waitExit(proc)
129133
}
130-
if (proc.exitCode === null) {
134+
if (!done(proc)) {
131135
proc.kill("SIGKILL")
132136
await waitExit(proc)
133137
}

packages/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opencode-ai/app",
3-
"version": "1.4.0",
3+
"version": "1.4.3",
44
"description": "",
55
"type": "module",
66
"exports": {

packages/app/src/app.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,6 @@ function ConnectionGate(props: ParentProps<{ disableHealthCheck?: boolean }>) {
182182
if (checkMode() === "background" || type === "http") return false
183183
}
184184
}).pipe(
185-
effectMinDuration(checkMode() === "blocking" ? "1.2 seconds" : 0),
186185
Effect.timeoutOrElse({ duration: "10 seconds", orElse: () => Effect.succeed(false) }),
187186
Effect.ensuring(Effect.sync(() => setCheckMode("background"))),
188187
Effect.runPromise,

packages/app/src/components/terminal.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ export const Terminal = (props: TerminalProps) => {
174174
const auth = server.current?.http
175175
const username = auth?.username ?? "opencode"
176176
const password = auth?.password ?? ""
177+
const sameOrigin = new URL(url, location.href).origin === location.origin
177178
let container!: HTMLDivElement
178179
const [local, others] = splitProps(props, ["pty", "class", "classList", "autoFocus", "onConnect", "onConnectError"])
179180
const id = local.pty.id
@@ -519,8 +520,12 @@ export const Terminal = (props: TerminalProps) => {
519520
next.searchParams.set("directory", directory)
520521
next.searchParams.set("cursor", String(seek))
521522
next.protocol = next.protocol === "https:" ? "wss:" : "ws:"
522-
next.username = username
523-
next.password = password
523+
if (!sameOrigin && password) {
524+
next.searchParams.set("auth_token", btoa(`${username}:${password}`))
525+
// For same-origin requests, let the browser reuse the page's existing auth.
526+
next.username = username
527+
next.password = password
528+
}
524529

525530
const socket = new WebSocket(next)
526531
socket.binaryType = "arraybuffer"

0 commit comments

Comments
 (0)