feat(projects): pin a thinking level next to a project's model

A project could pin the model new chats start on, but not the level to
run it at: the default cascade dropped any variant as soon as a project
model won, and only ever considered the global one — which belongs to
the global model.

Projects now carry `defaultVariant` alongside `defaultModel`, stored and
sanitized only next to that model, and the cascade passes it through.
Both controls sit in one "Defaults for new chats" group laid out like the
Sessions defaults, and the level appears only for models that offer them.
This commit is contained in:
Bohdan Triapitsyn
2026-08-22 20:31:31 +03:00
parent e2e55756e2
commit 2740c7b3a2
25 changed files with 322 additions and 34 deletions
@@ -1132,9 +1132,12 @@ export const settingsDict = {
'settings.projects.page.title.default': '프로젝트 설정',
'settings.projects.page.section.worktree': 'Worktree',
'settings.projects.page.field.projectName': '프로젝트 이름',
'settings.projects.page.field.projectModel': '프로젝트 모델',
'settings.projects.page.field.projectThinking': '프로젝트 사고 수준',
'settings.projects.page.section.chatDefaults': '새 채팅 기본값',
'settings.projects.page.section.chatDefaultsDescription': '이 프로젝트에서 새 채팅을 시작할 때 사용합니다. 비워 두면 전역 기본값을 따릅니다. 사고 수준은 수준을 제공하는 모델에서만 표시됩니다.',
'settings.projects.page.field.projectNamePlaceholder': '프로젝트 이름',
'settings.projects.page.field.defaultModel': '새 채팅의 기본 모델',
'settings.projects.page.field.defaultModelDescription': '이 프로젝트에서 새 채팅을 시작할 때 사용됩니다. 설정하지 않으면 전역 기본값으로 대체됩니다.',
'settings.projects.page.option.thinkingDefault': '모델 기본값',
'settings.projects.page.field.accentColor': '강조 색상',
'settings.projects.page.field.projectIcon': '프로젝트 아이콘',
'settings.projects.page.field.projectIconBackgroundAria': '프로젝트 아이콘 배경색',