summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-06-14 01:48:33 -0400
committerDax Raad <[email protected]>2025-06-14 01:51:04 -0400
commit6a261dedb4f4166f25d0a5e9825988ce8028930d (patch)
tree078325a0a049c279e3df58b8ce05e443b6ca77b3
parentec928d88b5133dedf7414a60ff2fb284024636e1 (diff)
downloadopencode-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.ts22
-rw-r--r--packages/opencode/src/server/server.ts8
-rw-r--r--packages/opencode/src/util/log.ts2
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