Просмотр исходного кода

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

Tommy D. Rossi 4 месяцев назад
Родитель
Сommit
d7701dbfb6
1 измененных файлов с 4 добавлено и 0 удалено
  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
               ? []
               : [