chore: sync backend and deployment changes

This commit is contained in:
2026-05-25 17:25:52 +09:00
parent d38d022872
commit fb5ec649cd
58 changed files with 17575 additions and 378 deletions

View File

@@ -1,8 +1,10 @@
import test from 'node:test';
import assert from 'node:assert/strict';
import {
createDefaultChatTypeExecutionPolicy,
migrateLegacyChatTypeContexts,
sanitizePersistedChatTypes,
synchronizeBuiltinCodexChatTypes,
resolveAppConfigByOrigin,
resolveCanonicalChatTypesFromConfig,
resolveCanonicalChatContextSettingsFromConfig,
@@ -138,6 +140,34 @@ test('sanitizePersistedChatTypes keeps all saved chat types without special filt
assert.deepEqual(stripped.map((item) => item.id), ['custom-support-flow', 'general-request', 'plan-checklist-execution']);
});
test('synchronizeBuiltinCodexChatTypes upgrades legacy codex summary execution policy', () => {
const synced = synchronizeBuiltinCodexChatTypes([
{
id: 'codex-summary',
name: 'Codex 종합',
sortOrder: 13,
description:
'## 처리 범위\n- Codex 봇들의 대화와 의견 수렴 과정을 거친 뒤 최종 결과물을 정리해 제공하는 채팅에 사용합니다.\n- Plan 자동화 문맥을 기본값으로 섞지 않고, 현재 채팅방 공통 문맥과 사용자 요청만 기준으로 결과를 정리합니다.\n\n## 응답 방식\n- 중간 대화에서 나온 핵심 의견, 판단 근거, 남은 쟁점을 압축해 정리합니다.\n- 최종 답변에는 필요한 산출물, 검증 결과, 적용 결론을 함께 제공합니다.',
executionPolicy: createDefaultChatTypeExecutionPolicy(),
permissions: ['token-user'],
enabled: true,
updatedAt: '2026-05-17T00:00:00.000Z',
},
]);
const codexSummary = synced.find((item) => item.id === 'codex-summary');
const codexDispatcher = synced.find((item) => item.id === 'codex-dispatcher-workers');
const codexLiveDefault = synced.find((item) => item.id === 'codex-live-default');
assert.ok(codexSummary);
assert.equal(codexSummary.executionPolicy.mode, 'summary-free-talking');
assert.match(codexSummary.description, /회의 기록자 1명/);
assert.ok(codexDispatcher);
assert.equal(codexDispatcher.executionPolicy.mode, 'dispatcher-workers');
assert.ok(codexLiveDefault);
assert.equal(codexLiveDefault.executionPolicy.mode, 'default');
});
test('migrateLegacyChatTypeContexts moves legacy plan checklist chat type into default context settings', () => {
const migrated = migrateLegacyChatTypeContexts(
{
@@ -157,6 +187,7 @@ test('migrateLegacyChatTypeContexts moves legacy plan checklist chat type into d
name: 'Plan 체크리스트 실행',
sortOrder: 1,
description: 'legacy plan context',
executionPolicy: createDefaultChatTypeExecutionPolicy(),
permissions: ['token-user'],
enabled: true,
updatedAt: '2026-05-08T00:00:00.000Z',