mirror of
https://github.com/qingchencloud/clawpanel.git
synced 2026-07-13 08:23:02 +08:00
feat(hermes): add worktree session setting
This commit is contained in:
@@ -9,6 +9,20 @@ function extractEngineKeys() {
|
||||
return [...source.matchAll(/['"](engine\.[A-Za-z0-9_.-]+)['"]/g)].map(match => match[1])
|
||||
}
|
||||
|
||||
test('Hermes 配置页会暴露会话安全结构化配置字段', () => {
|
||||
for (const id of [
|
||||
'hm-runtime-save',
|
||||
'hm-session-reset-mode',
|
||||
'hm-session-idle-minutes',
|
||||
'hm-session-at-hour',
|
||||
'hm-group-sessions-per-user',
|
||||
'hm-thread-sessions-per-user',
|
||||
'hm-worktree-enabled',
|
||||
]) {
|
||||
assert.match(source, new RegExp(`id="${id}"`), `缺少 ${id}`)
|
||||
}
|
||||
})
|
||||
|
||||
test('Hermes 配置页会暴露工具循环防护结构化配置字段', () => {
|
||||
for (const id of [
|
||||
'hm-tool-guardrails-save',
|
||||
@@ -430,7 +444,8 @@ test('Hermes 配置页新增结构化配置不会暴露翻译 key', () => {
|
||||
key.includes('CheckpointsConfig') ||
|
||||
key.includes('ApprovalsConfig') ||
|
||||
key.includes('CronConfig') ||
|
||||
key.includes('LoggingConfig')
|
||||
key.includes('LoggingConfig') ||
|
||||
key.includes('Worktree')
|
||||
)))
|
||||
|
||||
assert.ok(keys.size > 0, '应能提取新增结构化配置用到的 engine 翻译 key')
|
||||
|
||||
@@ -15,6 +15,7 @@ test('Hermes 会话运行时配置读取会提供稳定表单默认值', () => {
|
||||
atHour: 4,
|
||||
groupSessionsPerUser: true,
|
||||
threadSessionsPerUser: false,
|
||||
worktreeEnabled: false,
|
||||
})
|
||||
})
|
||||
|
||||
@@ -27,6 +28,7 @@ test('Hermes 会话运行时配置读取会回显 session_reset 与隔离开关'
|
||||
},
|
||||
group_sessions_per_user: false,
|
||||
thread_sessions_per_user: true,
|
||||
worktree: true,
|
||||
})
|
||||
|
||||
assert.equal(values.sessionResetMode, 'daily')
|
||||
@@ -34,6 +36,7 @@ test('Hermes 会话运行时配置读取会回显 session_reset 与隔离开关'
|
||||
assert.equal(values.atHour, 3)
|
||||
assert.equal(values.groupSessionsPerUser, false)
|
||||
assert.equal(values.threadSessionsPerUser, true)
|
||||
assert.equal(values.worktreeEnabled, true)
|
||||
})
|
||||
|
||||
test('Hermes 会话运行时配置保存会保留无关 YAML 并写入 snake_case 字段', () => {
|
||||
@@ -51,6 +54,7 @@ test('Hermes 会话运行时配置保存会保留无关 YAML 并写入 snake_cas
|
||||
atHour: '6',
|
||||
groupSessionsPerUser: false,
|
||||
threadSessionsPerUser: true,
|
||||
worktreeEnabled: true,
|
||||
})
|
||||
|
||||
assert.deepEqual(next.model, { provider: 'anthropic', default: 'claude-sonnet-4-6' })
|
||||
@@ -61,6 +65,7 @@ test('Hermes 会话运行时配置保存会保留无关 YAML 并写入 snake_cas
|
||||
assert.equal(next.session_reset.custom_flag, 'keep-me')
|
||||
assert.equal(next.group_sessions_per_user, false)
|
||||
assert.equal(next.thread_sessions_per_user, true)
|
||||
assert.equal(next.worktree, true)
|
||||
})
|
||||
|
||||
test('Hermes 会话运行时配置保存会拒绝非法模式和范围', () => {
|
||||
|
||||
Reference in New Issue
Block a user