diff --git a/packages/core/src/tool-output.ts b/packages/core/src/tool-output.ts index 4e28cbbbec7..cc30f5976b6 100644 --- a/packages/core/src/tool-output.ts +++ b/packages/core/src/tool-output.ts @@ -6,8 +6,8 @@ import { Context, Duration, Effect, Layer, Schedule } from "effect" import { makeGlobalNode, makeLocationNode } from "@opencode/util/effect/app-node" import { FSUtil } from "@opencode/util/fs-util" import { Global } from "@opencode/util/global" +import { Identifier } from "@opencode/schema/identifier" import { FileRetention } from "./file-retention.js" -import { Identifier } from "./id/id.js" import { State } from "./state.js" export const MAX_LINES = 2_000 @@ -15,6 +15,8 @@ export const MAX_BYTES = 50 * 1024 // 50 KiB export const RETENTION = Duration.days(7) export const DIRECTORY = "tool-output" +export const fileName = (timestamp?: number) => "tool_" + Identifier.create(false, timestamp) + type Result = Tool.NormalizedResult type Limits = { @@ -81,7 +83,7 @@ const layer = Layer.effect( kept.push(line) bytes += size } - const file = path.join(directory, Identifier.ascending("tool")) + const file = path.join(directory, fileName()) yield* fs.ensureDir(directory).pipe(Effect.orDie) yield* fs.writeFileString(file, text).pipe(Effect.orDie) const shown = kept.length > 0 ? `lines 1-${kept.length}` : "0 lines" diff --git a/packages/core/test/tool-output.test.ts b/packages/core/test/tool-output.test.ts index 1bb8b578b30..535611c618e 100644 --- a/packages/core/test/tool-output.test.ts +++ b/packages/core/test/tool-output.test.ts @@ -7,7 +7,6 @@ import { ToolOutput } from "@opencode/core/tool-output" import type { Tool } from "@opencode/core/tool" import { FSUtil } from "@opencode/util/fs-util" import { Global } from "@opencode/util/global" -import { Identifier } from "@opencode/core/id/id" import { tmpdir } from "./fixture/tmpdir" import { it } from "./lib/effect" @@ -141,8 +140,8 @@ describe("ToolOutput", () => { withStore((output, fs, root) => Effect.gen(function* () { const directory = path.join(root, ToolOutput.DIRECTORY) - const old = path.join(directory, Identifier.create("tool", "ascending", 2 ** 36 - 1)) - const recent = path.join(directory, Identifier.create("tool", "ascending", 2 ** 36 + 1)) + const old = path.join(directory, ToolOutput.fileName(2 ** 36 - 1)) + const recent = path.join(directory, ToolOutput.fileName(2 ** 36 + 1)) yield* fs.ensureDir(directory) yield* fs.writeFileString(old, "old") yield* fs.writeFileString(recent, "recent")