fix(agent): preserve runtime request context

OpenCode tools run in a child service, so they cannot read the Agent process-local session map. Hydrate a sanitized context through the authenticated internal bridge and centralize backend project headers to prevent context loss across both boundaries.
This commit is contained in:
2026-08-05 18:39:09 +08:00
parent a53839e157
commit 2dc37e3fd8
7 changed files with 291 additions and 19 deletions
+6 -5
View File
@@ -1,9 +1,8 @@
import { tool } from "@opencode-ai/plugin";
import { MemoryStore } from "../../src/memory/store.js";
import {
getRuntimeSessionContext,
setRuntimeSessionContext,
} from "../../src/runtime/sessionContext.js";
import { readBridgedRuntimeSessionContext } from "../../src/runtime/internalSessionContextBridge.js";
import { setRuntimeSessionContext } from "../../src/runtime/sessionContext.js";
const memoryStore = new MemoryStore();
const initializePromise = memoryStore.initialize();
@@ -36,7 +35,9 @@ export default tool({
},
async execute(args, context) {
await initializePromise;
const sessionContext = getRuntimeSessionContext(context.sessionID);
const sessionContext = await readBridgedRuntimeSessionContext(
context.sessionID,
);
if (!sessionContext) {
throw new Error(`session context not found for ${context.sessionID}`);
}