summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-06-04 17:38:15 -0400
committerDax Raad <[email protected]>2025-06-04 17:38:54 -0400
commit7f8f46f9fe5f4080879f531f83c2361e6e2f04ec (patch)
tree8ff9083b3cc6b955ae20b8865b53179a6d2c342a
parent2dbdecb0f73eff1609cf8b6eab51d46d40dbf620 (diff)
downloadopencode-7f8f46f9fe5f4080879f531f83c2361e6e2f04ec.tar.gz
opencode-7f8f46f9fe5f4080879f531f83c2361e6e2f04ec.zip
Refactor session module structure and improve error handling
- Rename session.ts to index.ts for cleaner module imports - Update all imports to use new session module structure - Add error metadata tracking to message schema - Improve error handling in session stream processing 🤖 Generated with [OpenCode](https://opencode.ai) Co-Authored-By: OpenCode <[email protected]>
-rw-r--r--packages/opencode/src/index.ts2
-rw-r--r--packages/opencode/src/server/server.ts2
-rw-r--r--packages/opencode/src/session/index.ts (renamed from packages/opencode/src/session/session.ts)8
-rw-r--r--packages/opencode/src/session/message.ts1
-rw-r--r--packages/opencode/src/share/share.ts2
5 files changed, 7 insertions, 8 deletions
diff --git a/packages/opencode/src/index.ts b/packages/opencode/src/index.ts
index dc626038d..46813f648 100644
--- a/packages/opencode/src/index.ts
+++ b/packages/opencode/src/index.ts
@@ -4,7 +4,7 @@ import { Server } from "./server/server"
import fs from "fs/promises"
import path from "path"
import { Bus } from "./bus"
-import { Session } from "./session/session"
+import { Session } from "./session"
import cac from "cac"
import { Share } from "./share/share"
import { Message } from "./session/message"
diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts
index 9e0543dfb..668ec284d 100644
--- a/packages/opencode/src/server/server.ts
+++ b/packages/opencode/src/server/server.ts
@@ -3,7 +3,7 @@ import { Bus } from "../bus"
import { describeRoute, generateSpecs, openAPISpecs } from "hono-openapi"
import { Hono } from "hono"
import { streamSSE } from "hono/streaming"
-import { Session } from "../session/session"
+import { Session } from "../session"
import { resolver, validator as zValidator } from "hono-openapi/zod"
import { z } from "zod"
import { Message } from "../session/message"
diff --git a/packages/opencode/src/session/session.ts b/packages/opencode/src/session/index.ts
index 58dca34de..0706f130c 100644
--- a/packages/opencode/src/session/session.ts
+++ b/packages/opencode/src/session/index.ts
@@ -398,11 +398,9 @@ ${app.git ? await ListTool.execute({ path: app.path.cwd }, { sessionID: input.se
let text: Message.TextPart | undefined
const reader = result.toUIMessageStream().getReader()
while (true) {
- const result = await reader.read().catch((e) => {
- if (e instanceof DOMException && e.name === "AbortError") {
- return
- }
- throw e
+ const result = await reader.read().catch(async (e) => {
+ console.log(e)
+ next.metadata.error = e.name
})
if (!result) break
const { done, value } = result
diff --git a/packages/opencode/src/session/message.ts b/packages/opencode/src/session/message.ts
index 419d8eb27..cd9d456a3 100644
--- a/packages/opencode/src/session/message.ts
+++ b/packages/opencode/src/session/message.ts
@@ -138,6 +138,7 @@ export namespace Message {
created: z.number(),
completed: z.number().optional(),
}),
+ error: z.string().optional(),
sessionID: z.string(),
tool: z.record(z.string(), z.any()),
assistant: z
diff --git a/packages/opencode/src/share/share.ts b/packages/opencode/src/share/share.ts
index 601336813..877ac0aaf 100644
--- a/packages/opencode/src/share/share.ts
+++ b/packages/opencode/src/share/share.ts
@@ -1,6 +1,6 @@
import { App } from "../app/app"
import { Bus } from "../bus"
-import { Session } from "../session/session"
+import { Session } from "../session"
import { Storage } from "../storage/storage"
import { Log } from "../util/log"