diff --git a/packages/app/e2e/prompt/prompt-mention.spec.ts b/packages/app/e2e/prompt/prompt-mention.spec.ts index 5cc9f6e68505..f9b72fe65385 100644 --- a/packages/app/e2e/prompt/prompt-mention.spec.ts +++ b/packages/app/e2e/prompt/prompt-mention.spec.ts @@ -5,8 +5,7 @@ test("smoke @mention inserts file pill token", async ({ page, gotoSession }) => await gotoSession() await page.locator(promptSelector).click() - const sep = process.platform === "win32" ? "\\" : "/" - const file = ["packages", "app", "package.json"].join(sep) + const file = ["packages", "app", "package.json"].join("/") const filePattern = /packages[\\/]+app[\\/]+\s*package\.json/ await page.keyboard.type(`@${file}`) diff --git a/packages/opencode/src/acp/agent.ts b/packages/opencode/src/acp/agent.ts index d518dd12a1a4..911fdb978aee 100644 --- a/packages/opencode/src/acp/agent.ts +++ b/packages/opencode/src/acp/agent.ts @@ -60,7 +60,7 @@ export namespace ACP { directory: string, ): Promise { const providers = await sdk.config - .providers({ directory }) + .providers({ directory }, { throwOnError: true }) .then((x) => x.data?.providers ?? []) .catch((error) => { log.error("failed to get providers for context limit", { error }) diff --git a/packages/opencode/src/file/index.ts b/packages/opencode/src/file/index.ts index 01f07c9afaab..fb0f7afdc215 100644 --- a/packages/opencode/src/file/index.ts +++ b/packages/opencode/src/file/index.ts @@ -395,10 +395,11 @@ export namespace File { cache = result fetching = false } - fn(cache) + const initialScan = fn(cache) return { async files() { + await initialScan if (!fetching) { fn({ files: [], diff --git a/packages/opencode/src/tool/write.ts b/packages/opencode/src/tool/write.ts index 8c1e53ccaf3a..e9c590ca915d 100644 --- a/packages/opencode/src/tool/write.ts +++ b/packages/opencode/src/tool/write.ts @@ -19,8 +19,8 @@ const MAX_PROJECT_DIAGNOSTICS_FILES = 5 export const WriteTool = Tool.define("write", { description: DESCRIPTION, parameters: z.object({ - content: z.string().describe("The content to write to the file"), filePath: z.string().describe("The absolute path to the file to write (must be absolute, not relative)"), + content: z.string().describe("The content to write to the file"), }), async execute(params, ctx) { const filepath = path.isAbsolute(params.filePath) ? params.filePath : path.join(Instance.directory, params.filePath)