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
@@ -201,8 +201,8 @@ describe("loop_control.compaction_max_attempts", () => {
|
||||
});
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// [watch] enabled (kimi-code 2.0.1+) — top-level section, off by default since
|
||||
// 2.0.2; mirrors the [background] handling
|
||||
// [watch] enabled (kimi-code 2.0.1+) — top-level section; 2.0.2 flipped the
|
||||
// default off, #4015 flipped it back on. Mirrors the [background] handling.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
function watchOf(raw: unknown): Record<string, unknown> {
|
||||
@@ -213,9 +213,9 @@ function watchOf(raw: unknown): Record<string, unknown> {
|
||||
}
|
||||
|
||||
describe("[watch] enabled", () => {
|
||||
it("reads as false when the section or key is absent (2.0.2 default)", () => {
|
||||
expect(getAgentSettings({}).watch?.enabled).toBe(false);
|
||||
expect(getAgentSettings({ watch: {} }).watch?.enabled).toBe(false);
|
||||
it("reads as true when the section or key is absent (#4015 default)", () => {
|
||||
expect(getAgentSettings({}).watch?.enabled).toBe(true);
|
||||
expect(getAgentSettings({ watch: {} }).watch?.enabled).toBe(true);
|
||||
});
|
||||
|
||||
it("reads an explicit value", () => {
|
||||
@@ -248,6 +248,49 @@ describe("[watch] enabled", () => {
|
||||
});
|
||||
});
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Top-level booleans (auto_session_title #3962 / repeat_breaker #3995):
|
||||
// upstream default true — false is written explicitly, true removes the key.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
describe("top-level boolean switches", () => {
|
||||
it("reads as undefined when the key is absent (default true)", () => {
|
||||
const s = getAgentSettings({});
|
||||
expect(s.auto_session_title).toBeUndefined();
|
||||
expect(s.repeat_breaker).toBeUndefined();
|
||||
});
|
||||
|
||||
it("reads explicit false values", () => {
|
||||
const s = getAgentSettings({
|
||||
auto_session_title: false,
|
||||
repeat_breaker: false,
|
||||
});
|
||||
expect(s.auto_session_title).toBe(false);
|
||||
expect(s.repeat_breaker).toBe(false);
|
||||
});
|
||||
|
||||
it("writes false explicitly and removes the key on true", () => {
|
||||
const off = setAgentSettings({}, { repeat_breaker: false }) as Record<
|
||||
string,
|
||||
unknown
|
||||
>;
|
||||
expect(off.repeat_breaker).toBe(false);
|
||||
const on = setAgentSettings(
|
||||
{ repeat_breaker: false },
|
||||
{ repeat_breaker: true }
|
||||
) as Record<string, unknown>;
|
||||
expect("repeat_breaker" in on).toBe(false);
|
||||
});
|
||||
|
||||
it("keeps an explicit false on saves that do not touch it", () => {
|
||||
const next = setAgentSettings(
|
||||
{ auto_session_title: false },
|
||||
{ thinking: { effort: "high" } }
|
||||
) as Record<string, unknown>;
|
||||
expect(next.auto_session_title).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
describe("permission.dangerous_command_guard", () => {
|
||||
it("reads as undefined when the key is absent (default on)", () => {
|
||||
|
||||
Reference in new issue
Block a user