diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index 96af60dfee2..22362775af7 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -1050,6 +1050,7 @@ const layer = Layer.effect( const invalidate = Effect.fn("Config.invalidate")(function* () { yield* invalidateGlobal + yield* InstanceState.invalidate(state).pipe(Effect.catchCause(() => Effect.void)) // kilocode_change }) // kilocode_change start - add dispose option to skip Instance.disposeAll for permission-only changes diff --git a/packages/opencode/test/kilocode/server/config-overlay.test.ts b/packages/opencode/test/kilocode/server/config-overlay.test.ts index d74c96e5006..b72bbafd7f0 100644 --- a/packages/opencode/test/kilocode/server/config-overlay.test.ts +++ b/packages/opencode/test/kilocode/server/config-overlay.test.ts @@ -774,7 +774,7 @@ describe("config overlay routes", () => { for (let i = 0; i < 40; i++) { await json(await req(project.path, `/session/${session.id}/sandbox`)) const snap = await SandboxStore.read(project.path, session.id) - if (snap && snap.mode === "allow" && snap.version === 1) break + if (snap && snap.mode === "allow" && snap.writablePaths.includes(writable.path) && snap.version === 1) break await Bun.sleep(250) }