Sfoglia il codice sorgente

fix(opencode): preserve `external_dir` and `deny` parent permissions in task child sessions (#23290)

Tommy D. Rossi 4 mesi fa
parent
commit
d7701dbfb6
1 ha cambiato i file con 4 aggiunte e 0 eliminazioni
  1. 4 0
      packages/opencode/src/tool/task.ts

+ 4 - 0
packages/opencode/src/tool/task.ts

@@ -64,12 +64,16 @@ export const TaskTool = Tool.define(
       const session = taskID
         ? yield* sessions.get(SessionID.make(taskID)).pipe(Effect.catchCause(() => Effect.succeed(undefined)))
         : undefined
+      const parent = yield* sessions.get(ctx.sessionID)
       const nextSession =
         session ??
         (yield* sessions.create({
           parentID: ctx.sessionID,
           title: params.description + ` (@${next.name} subagent)`,
           permission: [
+            ...(parent.permission ?? []).filter(
+              (rule) => rule.permission === "external_directory" || rule.action === "deny",
+            ),
             ...(canTodo
               ? []
               : [