Merge pull request #40 from madhura68/fix/idea-kinds-permission-mode

fix(KIND_DEFAULTS): permission_mode acceptEdits voor idea-kinds + PLAN_CHAT
This commit is contained in:
Janpeter Visser 2026-05-09 11:30:18 +02:00 committed by GitHub
commit e13a470024
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 15 additions and 7 deletions

View file

@ -2,9 +2,9 @@ import { describe, it, expect } from 'vitest'
import { getKindDefault, resolveJobConfig, mapBudgetToEffort } from '../src/lib/job-config.js' import { getKindDefault, resolveJobConfig, mapBudgetToEffort } from '../src/lib/job-config.js'
const KIND_EXPECTED = { const KIND_EXPECTED = {
IDEA_GRILL: { model: 'claude-sonnet-4-6', thinking_budget: 12000, permission_mode: 'plan', max_turns: 15 }, IDEA_GRILL: { model: 'claude-sonnet-4-6', thinking_budget: 12000, permission_mode: 'acceptEdits', max_turns: 15 },
IDEA_MAKE_PLAN: { model: 'claude-opus-4-7', thinking_budget: 24000, permission_mode: 'plan', max_turns: 20 }, IDEA_MAKE_PLAN: { model: 'claude-opus-4-7', thinking_budget: 24000, permission_mode: 'acceptEdits', max_turns: 20 },
PLAN_CHAT: { model: 'claude-sonnet-4-6', thinking_budget: 6000, permission_mode: 'plan', max_turns: 5 }, PLAN_CHAT: { model: 'claude-sonnet-4-6', thinking_budget: 6000, permission_mode: 'acceptEdits', max_turns: 5 },
TASK_IMPLEMENTATION: { model: 'claude-sonnet-4-6', thinking_budget: 6000, permission_mode: 'bypassPermissions', max_turns: 50 }, TASK_IMPLEMENTATION: { model: 'claude-sonnet-4-6', thinking_budget: 6000, permission_mode: 'bypassPermissions', max_turns: 50 },
SPRINT_IMPLEMENTATION: { model: 'claude-sonnet-4-6', thinking_budget: 6000, permission_mode: 'bypassPermissions', max_turns: null }, SPRINT_IMPLEMENTATION: { model: 'claude-sonnet-4-6', thinking_budget: 6000, permission_mode: 'bypassPermissions', max_turns: null },
} as const } as const

View file

@ -70,10 +70,15 @@ const TASK_TOOLS = [
] ]
const KIND_DEFAULTS: Record<string, JobConfig> = { const KIND_DEFAULTS: Record<string, JobConfig> = {
// Idea-kinds en PLAN_CHAT draaien in `acceptEdits` (niet `plan`):
// `plan`-mode wacht op human-approval na elke planning-fase, wat in een
// autonome runner-context betekent dat Claude geen `update_job_status`
// aanroept en de job na lease-expiry FAILED'd. De `allowed_tools`-lijst
// doet de echte sandboxing (geen Bash, geen Edit, alleen Read/Grep/etc).
IDEA_GRILL: { IDEA_GRILL: {
model: 'claude-sonnet-4-6', model: 'claude-sonnet-4-6',
thinking_budget: 12000, thinking_budget: 12000,
permission_mode: 'plan', permission_mode: 'acceptEdits',
max_turns: 15, max_turns: 15,
allowed_tools: [ allowed_tools: [
'Read', 'Grep', 'Glob', 'WebSearch', 'AskUserQuestion', 'Read', 'Grep', 'Glob', 'WebSearch', 'AskUserQuestion',
@ -87,7 +92,7 @@ const KIND_DEFAULTS: Record<string, JobConfig> = {
IDEA_MAKE_PLAN: { IDEA_MAKE_PLAN: {
model: 'claude-opus-4-7', model: 'claude-opus-4-7',
thinking_budget: 24000, thinking_budget: 24000,
permission_mode: 'plan', permission_mode: 'acceptEdits',
max_turns: 20, max_turns: 20,
allowed_tools: [ allowed_tools: [
'Read', 'Grep', 'Glob', 'WebSearch', 'AskUserQuestion', 'Write', 'Read', 'Grep', 'Glob', 'WebSearch', 'AskUserQuestion', 'Write',
@ -99,9 +104,12 @@ const KIND_DEFAULTS: Record<string, JobConfig> = {
PLAN_CHAT: { PLAN_CHAT: {
model: 'claude-sonnet-4-6', model: 'claude-sonnet-4-6',
thinking_budget: 6000, thinking_budget: 6000,
permission_mode: 'plan', permission_mode: 'acceptEdits',
max_turns: 5, max_turns: 5,
allowed_tools: ['Read', 'Grep', 'AskUserQuestion'], allowed_tools: [
'Read', 'Grep', 'AskUserQuestion',
'mcp__scrum4me__update_job_status',
],
}, },
TASK_IMPLEMENTATION: { TASK_IMPLEMENTATION: {
model: 'claude-sonnet-4-6', model: 'claude-sonnet-4-6',