refactor(delegate-task): restructure category system for unbiased model selection

- Remove temperature from all categories
- Consolidate CATEGORY_MODEL_CATALOG into DEFAULT_CATEGORIES
- Replace 'general' and 'most-capable' with 'unspecified-low' and 'unspecified-high'
- Add Selection_Gate to unspecified categories to force deliberate selection
- Update quick category to use claude-haiku-4-5
- Update all references and tests across codebase
This commit is contained in:
justsisyphus
2026-01-20 16:22:53 +09:00
parent 2c3f1bfd80
commit 8cc995891e
9 changed files with 82 additions and 135 deletions
+4 -5
View File
@@ -4,7 +4,7 @@ import { join } from "node:path"
import type { BackgroundManager } from "../../features/background-agent"
import type { DelegateTaskArgs } from "./types"
import type { CategoryConfig, CategoriesConfig, GitMasterConfig } from "../../config/schema"
import { DELEGATE_TASK_DESCRIPTION, DEFAULT_CATEGORIES, CATEGORY_PROMPT_APPENDS, CATEGORY_MODEL_CATALOG } from "./constants"
import { DELEGATE_TASK_DESCRIPTION, DEFAULT_CATEGORIES, CATEGORY_PROMPT_APPENDS } from "./constants"
import { findNearestMessageWithFields, findFirstMessageWithAgent, MESSAGE_STORAGE } from "../../features/hook-message-injector"
import { resolveMultipleSkillsAsync } from "../../features/opencode-skill-loader/skill-content"
import { discoverSkills } from "../../features/opencode-skill-loader"
@@ -118,24 +118,23 @@ export function resolveCategoryConfig(
const { userCategories, inheritedModel, systemDefaultModel } = options
const defaultConfig = DEFAULT_CATEGORIES[categoryName]
const userConfig = userCategories?.[categoryName]
const catalogEntry = CATEGORY_MODEL_CATALOG[categoryName]
const defaultPromptAppend = CATEGORY_PROMPT_APPENDS[categoryName] ?? ""
if (!defaultConfig && !userConfig) {
return null
}
// Model priority: user override > inherited from parent > catalog default > system default
// Model priority: user override > inherited from parent > default config > system default
const model = resolveModel({
userModel: userConfig?.model,
inheritedModel,
systemDefault: catalogEntry?.model ?? systemDefaultModel,
systemDefault: defaultConfig?.model ?? systemDefaultModel,
})
const config: CategoryConfig = {
...defaultConfig,
...userConfig,
model,
variant: userConfig?.variant ?? catalogEntry?.variant,
variant: userConfig?.variant ?? defaultConfig?.variant,
}
let promptAppend = defaultPromptAppend