fix(settings): 适配 kimi-code 近期变更 — [watch] 默认值修正为开启(上游 #4015 翻回默认开);新增顶层开关 auto_session_title(#3962)与 repeat_breaker(#3995,默认开、false 显式写入/true 删键);最大输出 Token 文案修正为「留空则不发送输出上限」(上游 #4091 未配置即省略 max_tokens)
This commit is contained in:
1 parent
3c3c18925d
commit
977f433bb2
6 files changed
+124
-18
No files matched your search
@@ -13,10 +13,11 @@ const DEFAULT_SETTINGS: AgentSettings = {
|
||||
background: {
|
||||
keep_alive_on_exit: false,
|
||||
},
|
||||
// `[watch] enabled` — kimi-code 2.0.1 added the key, 2.0.2 flipped the
|
||||
// default to off, so an absent key reads as "off".
|
||||
// `[watch] enabled` — kimi-code 2.0.1 added the key; 2.0.2 flipped the
|
||||
// default to off, then #4015 flipped it back on, so an absent key reads
|
||||
// as "on".
|
||||
watch: {
|
||||
enabled: false,
|
||||
enabled: true,
|
||||
},
|
||||
permission: { rules: [] },
|
||||
hooks: [],
|
||||
@@ -37,6 +38,7 @@ function getSection<T>(rawOther: unknown, key: string): T | undefined {
|
||||
}
|
||||
|
||||
export function getAgentSettings(rawOther: unknown): AgentSettings {
|
||||
const root = asRecord(rawOther);
|
||||
const sectionLoop = getSection<AgentSettings["loop_control"]>(
|
||||
rawOther,
|
||||
"loop_control"
|
||||
@@ -92,6 +94,16 @@ export function getAgentSettings(rawOther: unknown): AgentSettings {
|
||||
: {}),
|
||||
},
|
||||
hooks: getSection<AgentSettings["hooks"]>(rawOther, "hooks") ?? [],
|
||||
// Top-level booleans (upstream default true): keep only explicit values,
|
||||
// an absent key means "on" — the UI shows `?? true`.
|
||||
auto_session_title:
|
||||
typeof root.auto_session_title === "boolean"
|
||||
? root.auto_session_title
|
||||
: undefined,
|
||||
repeat_breaker:
|
||||
typeof root.repeat_breaker === "boolean"
|
||||
? root.repeat_breaker
|
||||
: undefined,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -166,5 +178,17 @@ export function setAgentSettings(
|
||||
delete root.hooks;
|
||||
}
|
||||
|
||||
// Top-level booleans with an upstream default of true: an explicit false
|
||||
// is written; true/undefined removes the key so the config tracks the
|
||||
// upstream default instead of pinning it.
|
||||
for (const key of ["auto_session_title", "repeat_breaker"] as const) {
|
||||
const value = patch[key] ?? current[key];
|
||||
if (value === false) {
|
||||
root[key] = false;
|
||||
} else {
|
||||
delete root[key];
|
||||
}
|
||||
}
|
||||
|
||||
return root;
|
||||
}
|
||||
Reference in new issue
Block a user