refactor: keep runtime context in memory

This commit is contained in:
2026-06-07 17:07:14 +08:00
parent 1ed7e56f35
commit 9d4e5486e9
11 changed files with 273 additions and 269 deletions
+6 -6
View File
@@ -2,7 +2,10 @@ import { randomUUID } from "node:crypto";
import { logger } from "../logger.js";
import { type OpencodeRuntimeAdapter } from "../runtime/opencode.js";
import { SessionRuntimeContextStore } from "../sessions/runtimeContextStore.js";
import {
removeRuntimeSessionContext,
setRuntimeSessionContext,
} from "../runtime/sessionContext.js";
import { toActorKey, toProjectKey } from "../utils/fileStore.js";
export type SessionBinding = {
@@ -26,7 +29,6 @@ export type ChatRequestContext = SessionContext & {
export class ChatSessionBridge {
private readonly abortControllers = new Map<string, AbortController>();
private readonly sessionRuntimeContextStore = new SessionRuntimeContextStore();
constructor(private readonly runtime: OpencodeRuntimeAdapter) {}
@@ -61,7 +63,7 @@ export class ChatSessionBridge {
sessionId,
startedAt: Date.now(),
};
await this.sessionRuntimeContextStore.write({
setRuntimeSessionContext({
accessToken: requestContext.accessToken,
actorKey: requestContext.actorKey,
allowLearningWrite: true,
@@ -133,9 +135,7 @@ export class ChatSessionBridge {
"failed while waiting for runtime session to become idle",
);
});
await this.sessionRuntimeContextStore.remove(sessionId).catch((error) => {
logger.debug({ sessionId, err: error }, "failed to cleanup runtime tool context");
});
removeRuntimeSessionContext(sessionId);
}
private buildRequestContext(context: {