Skip to content

Commit 9e16223

Browse files
See USee U
authored andcommitted
Merge tag 'v1.18.7'
# Conflicts: # bun.lock # packages/app/e2e/utils/mock-server.ts # packages/app/package.json # packages/app/src/components/dialog-connect-provider.tsx # packages/app/src/components/dialog-select-directory-v2.tsx # packages/app/src/components/dialog-select-directory.tsx # packages/app/src/components/dialog-select-model-unpaid-v2.tsx # packages/app/src/components/prompt-input-v2.tsx # packages/app/src/components/titlebar.tsx # packages/app/src/context/command.test.ts # packages/app/src/context/command.tsx # packages/app/src/context/platform.tsx # packages/cli/package.json # packages/console/app/package.json # packages/console/core/package.json # packages/console/function/package.json # packages/console/mail/package.json # packages/console/support/package.json # packages/core/package.json # packages/desktop/package.json # packages/desktop/scripts/predev.ts # packages/desktop/src/main/ipc.ts # packages/desktop/src/main/windows.ts # packages/desktop/src/preload/index.ts # packages/desktop/src/preload/types.ts # packages/desktop/src/renderer/index.tsx # packages/effect-sqlite-node/package.json # packages/enterprise/package.json # packages/function/package.json # packages/session-ui/package.json # packages/slack/package.json # packages/stats/app/package.json # packages/stats/core/package.json # packages/stats/server/package.json # packages/tui/package.json # packages/ui/package.json # packages/web/package.json # sdks/vscode/package.json
2 parents b247af6 + 0298184 commit 9e16223

13 files changed

Lines changed: 1228 additions & 1123 deletions

File tree

bun.lock

Lines changed: 1113 additions & 1113 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
import { expect, test } from "@playwright/test"
2+
import { mockOpenCodeServer } from "../utils/mock-server"
3+
import { expectAppVisible } from "../utils/waits"
4+
5+
const directory = "C:/OpenCode/NewProject"
6+
7+
test("creates a session in a new project, connects OpenCode Go, and selects its model", async ({ page }) => {
8+
let connectedGo = false
9+
let pendingGo = false
10+
const connections: Array<{ integrationID: string; body: unknown }> = []
11+
12+
await mockOpenCodeServer(page, {
13+
directory,
14+
project: {
15+
id: "proj_model_selection_flow",
16+
worktree: directory,
17+
vcs: "git",
18+
name: "NewProject",
19+
time: { created: 1_700_000_000_000, updated: 1_700_000_000_000 },
20+
sandboxes: [],
21+
},
22+
provider: () => ({
23+
all: [
24+
{
25+
id: "opencode",
26+
name: "OpenCode",
27+
models: {
28+
"free-model": {
29+
id: "free-model",
30+
name: "Free Model",
31+
cost: { input: 0, output: 0 },
32+
limit: { context: 200_000 },
33+
},
34+
},
35+
},
36+
{
37+
id: "opencode-go",
38+
name: "OpenCode Go",
39+
models: {
40+
"go-model-1": {
41+
id: "go-model-1",
42+
name: "Go Model 1",
43+
cost: { input: 1, output: 1 },
44+
limit: { context: 200_000 },
45+
},
46+
},
47+
},
48+
],
49+
connected: connectedGo ? ["opencode", "opencode-go"] : ["opencode"],
50+
default: { providerID: "opencode", modelID: "free-model" },
51+
}),
52+
integrationMethods: { "opencode-go": [{ type: "api", label: "API key" }] },
53+
onConnectKey: (input) => {
54+
connections.push(input)
55+
if (input.integrationID === "opencode-go") pendingGo = true
56+
},
57+
onInstanceDispose: () => {
58+
if (pendingGo) connectedGo = true
59+
},
60+
sessions: [],
61+
pageMessages: () => ({ items: [] }),
62+
fileList: (path) =>
63+
path ? [] : [{ name: "NewProject", path: "NewProject", absolute: directory, type: "directory", ignored: false }],
64+
findFiles: () => ["NewProject"],
65+
})
66+
await page.addInitScript(() => {
67+
localStorage.setItem("settings.v3", JSON.stringify({ general: { newLayoutDesigns: true } }))
68+
localStorage.setItem("opencode.global.dat:server", JSON.stringify({ projects: { local: [] } }))
69+
})
70+
71+
await page.goto("/")
72+
const addProject = page.locator('[data-action="home-add-project-row"]')
73+
await expectAppVisible(addProject)
74+
await addProject.click()
75+
await page.locator("[data-directory-path]").click()
76+
77+
await page.locator('[data-action="home-new-session"]').click()
78+
await expectAppVisible(page.locator('[data-component="prompt-input-v2"]'))
79+
80+
const modelControl = page.locator('[data-action="prompt-model"]')
81+
await modelControl.click()
82+
await expect(page.locator('[data-section="free-models"]')).toContainText("Free models provided by OpenCode")
83+
84+
await page.locator('[data-provider-id="opencode-go"]').click()
85+
await page.locator('[data-input="provider-api-key"]').fill("mock-go-api-key")
86+
await page.locator('[data-action="provider-connect-submit"]').click()
87+
await expect(page.locator('[data-component="dialog-v2"]')).toHaveCount(0)
88+
expect(connections).toEqual([{ integrationID: "opencode-go", body: { type: "api", key: "mock-go-api-key" } }])
89+
90+
await expect(modelControl).toHaveAttribute("data-control-type", "popover")
91+
await modelControl.click()
92+
const goModel = page.locator('[data-option-key="opencode-go:go-model-1"]')
93+
await expect(goModel).toBeVisible()
94+
await goModel.click()
95+
96+
await expect(modelControl).toContainText("Go Model 1")
97+
})

packages/codemode/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://json.schemastore.org/package.json",
33
"name": "@opencode-ai/codemode",
4-
"version": "1.18.6",
4+
"version": "1.18.7",
55
"description": "Effect-native confined code execution over schema-described tools",
66
"private": true,
77
"type": "module",

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "https://json.schemastore.org/package.json",
3-
"version": "1.18.6",
3+
"version": "1.18.7",
44
"name": "@opencode-ai/core",
55
"type": "module",
66
"license": "MIT",
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { createSignal } from "solid-js"
2+
3+
const [windowFullscreen, setWindowFullscreen] = createSignal(false)
4+
5+
window.api.onWindowFullscreenChanged(setWindowFullscreen)
6+
void window.api.getWindowFullscreen().then(setWindowFullscreen)
7+
8+
export { windowFullscreen }

packages/effect-drizzle-sqlite/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "https://json.schemastore.org/package.json",
3-
"version": "1.18.6",
3+
"version": "1.18.7",
44
"name": "@opencode-ai/effect-drizzle-sqlite",
55
"type": "module",
66
"license": "MIT",

packages/http-recorder/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "https://json.schemastore.org/package.json",
3-
"version": "1.18.6",
3+
"version": "1.18.7",
44
"name": "@opencode-ai/http-recorder",
55
"description": "Record and replay Effect HTTP client traffic with deterministic cassettes",
66
"type": "module",

packages/llm/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "https://json.schemastore.org/package.json",
3-
"version": "1.18.6",
3+
"version": "1.18.7",
44
"name": "@opencode-ai/llm",
55
"type": "module",
66
"license": "MIT",

packages/opencode/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "https://json.schemastore.org/package.json",
3-
"version": "1.18.6",
3+
"version": "1.18.7",
44
"name": "opencode",
55
"type": "module",
66
"license": "MIT",

packages/plugin/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://json.schemastore.org/package.json",
33
"name": "@opencode-ai/plugin",
4-
"version": "1.18.6",
4+
"version": "1.18.7",
55
"type": "module",
66
"license": "MIT",
77
"scripts": {

0 commit comments

Comments
 (0)