diff options
| author | Dax Raad <[email protected]> | 2025-06-14 01:48:33 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-06-14 01:51:04 -0400 |
| commit | 6a261dedb4f4166f25d0a5e9825988ce8028930d (patch) | |
| tree | 078325a0a049c279e3df58b8ce05e443b6ca77b3 | |
| parent | ec928d88b5133dedf7414a60ff2fb284024636e1 (diff) | |
| download | opencode-6a261dedb4f4166f25d0a5e9825988ce8028930d.tar.gz opencode-6a261dedb4f4166f25d0a5e9825988ce8028930d.zip | |
Improve logging and simplify fzf implementation
- Refactor fzf search to use Bun's $ syntax for cleaner command execution
- Add request/response duration logging to server middleware
- Set default service name for logging to improve log clarity
🤖 Generated with [OpenCode](https://opencode.ai)
Co-Authored-By: OpenCode <[email protected]>
| -rw-r--r-- | packages/opencode/src/external/fzf.ts | 22 | ||||
| -rw-r--r-- | packages/opencode/src/server/server.ts | 8 | ||||
| -rw-r--r-- | packages/opencode/src/util/log.ts | 2 |
3 files changed, 18 insertions, 14 deletions
diff --git a/packages/opencode/src/external/fzf.ts b/packages/opencode/src/external/fzf.ts index 0c202c158..bfb1d55e8 100644 --- a/packages/opencode/src/external/fzf.ts +++ b/packages/opencode/src/external/fzf.ts @@ -1,4 +1,3 @@ -import { App } from "../app/app" import path from "path" import { Global } from "../global" import fs from "fs/promises" @@ -6,6 +5,7 @@ import { z } from "zod" import { NamedError } from "../util/error" import { lazy } from "../util/lazy" import { Log } from "../util/log" +import { $ } from "bun" export namespace Fzf { const log = Log.create({ service: "fzf" }) @@ -117,18 +117,18 @@ export namespace Fzf { } export async function search(cwd: string, query: string) { - const process = Bun.spawn({ - cwd, - stdin: "inherit", - stdout: "pipe", - stderr: "pipe", - cmd: [await filepath(), "--filter", query], - }) - await process.exited - const stdout = await Bun.readableStreamToText(process.stdout) - return stdout + const results = await $`${await filepath()} --filter ${query}` + .quiet() + .throws(false) + .cwd(cwd) + .text() + const split = results .trim() .split("\n") .filter((line) => line.length > 0) + log.info("results", { + count: split.length, + }) + return split } } diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts index 77e0c12e3..9dbc96ca5 100644 --- a/packages/opencode/src/server/server.ts +++ b/packages/opencode/src/server/server.ts @@ -56,12 +56,16 @@ export namespace Server { }, ) }) - .use((c, next) => { + .use(async (c, next) => { log.info("request", { method: c.req.method, path: c.req.path, }) - return next() + const start = Date.now() + await next() + log.info("response", { + duration: Date.now() - start, + }) }) .get( "/openapi", diff --git a/packages/opencode/src/util/log.ts b/packages/opencode/src/util/log.ts index 8b905e53d..cfb24a75d 100644 --- a/packages/opencode/src/util/log.ts +++ b/packages/opencode/src/util/log.ts @@ -2,7 +2,7 @@ import path from "path" import fs from "fs/promises" import { Global } from "../global" export namespace Log { - export const Default = create() + export const Default = create({ service: "default" }) export interface Options { print: boolean |
