Switch reasoning, mode, plan, and fast from the Command Center (#2274)

* Switch reasoning, mode, plan, and fast from the Command Center

Extend the Command Center (Cmd-K) with selectors for a focused agent's
Thinking (reasoning effort), access Mode, Plan mode, and Fast mode,
mirroring the model switcher. Typing surfaces tiered "<Setting> › <Value>"
breadcrumb rows with icons and a check on the current value, for both a
running agent and a new draft tab. Rows only appear while typing, so the
default palette is unchanged.

- Thinking and Mode are multi-option selects; Plan mode and Fast mode are
  On/Off toggles.
- Plan mode is dual-natured: a permission mode for Claude/Copilot/OpenCode
  (excluded from the Mode list, given its own toggle) and the plan_mode
  feature for Codex. Fast mode drives the fast_mode feature (model-gated).
- All logic lives in command-center/agent-setting-contributions.ts as pure,
  unit-tested builders, with a small icon helper and a hook that registers
  the running-agent selectors; the draft registers from its composer tab.
  No changes to the command palette component and no protocol changes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Unify Command Center agent controls

* refactor: clarify agent control ownership

* refactor(app): tighten command center agent controls

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Mohamed Boudra <boudra.moha@gmail.com>
This commit is contained in:
Michał Kędrzyński
2026-07-31 17:37:04 +02:00
committed by GitHub
co-authored by Claude Opus 4.8 Mohamed Boudra
parent 1ddca07d57
commit 35f985baff
34 changed files with 1526 additions and 387 deletions
+6
View File
@@ -188,6 +188,12 @@ describe("translation resources", () => {
expect(en.shell.commandCenter.modelSearchKeywords).toBe(
"switch model change model set model select model",
);
expect(en.shell.commandCenter.thinkingGroupLabel).toBe("Thinking");
expect(en.shell.commandCenter.modeGroupLabel).toBe("Mode");
expect(en.shell.commandCenter.planModeGroupLabel).toBe("Plan mode");
expect(en.shell.commandCenter.fastModeGroupLabel).toBe("Fast");
expect(en.shell.commandCenter.settingOn).toBe("On");
expect(en.shell.commandCenter.settingOff).toBe("Off");
});
it("includes composer and agent workflow keys for the Batch 2 migration", () => {
+10
View File
@@ -64,6 +64,16 @@ export const ar: TranslationResources = {
home: "بيت",
modelGroupLabel: "النموذج",
modelSearchKeywords: "تبديل النموذج تغيير النموذج تعيين النموذج اختيار النموذج",
thinkingGroupLabel: "التفكير",
thinkingSearchKeywords: "الاستدلال الجهد التفكير",
modeGroupLabel: "الوضع",
modeSearchKeywords: "الوصول الإذن الموافقة الوضع",
planModeGroupLabel: "وضع التخطيط",
planModeSearchKeywords: "التخطيط خطة وضع التخطيط",
fastModeGroupLabel: "سريع",
fastModeSearchKeywords: "سريع سرعة زمن انتقال منخفض",
settingOn: "تشغيل",
settingOff: "إيقاف",
},
},
composer: {
+10
View File
@@ -62,6 +62,16 @@ export const en = {
home: "Home",
modelGroupLabel: "Model",
modelSearchKeywords: "switch model change model set model select model",
thinkingGroupLabel: "Thinking",
thinkingSearchKeywords: "reasoning effort thinking think",
modeGroupLabel: "Mode",
modeSearchKeywords: "access permission approval mode",
planModeGroupLabel: "Plan mode",
planModeSearchKeywords: "plan planning plan mode",
fastModeGroupLabel: "Fast",
fastModeSearchKeywords: "fast speed low latency",
settingOn: "On",
settingOff: "Off",
},
},
composer: {
+10
View File
@@ -64,6 +64,16 @@ export const es: TranslationResources = {
home: "Hogar",
modelGroupLabel: "Modelo",
modelSearchKeywords: "cambiar modelo modificar modelo establecer modelo seleccionar modelo",
thinkingGroupLabel: "Razonamiento",
thinkingSearchKeywords: "razonamiento esfuerzo pensamiento",
modeGroupLabel: "Modo",
modeSearchKeywords: "acceso permiso aprobación modo",
planModeGroupLabel: "Modo plan",
planModeSearchKeywords: "plan planificación modo plan",
fastModeGroupLabel: "Rápido",
fastModeSearchKeywords: "rápido velocidad baja latencia",
settingOn: "Activado",
settingOff: "Desactivado",
},
},
composer: {
+10
View File
@@ -66,6 +66,16 @@ export const fr: TranslationResources = {
modelGroupLabel: "Modèle",
modelSearchKeywords:
"changer de modèle modifier le modèle définir le modèle sélectionner le modèle",
thinkingGroupLabel: "Raisonnement",
thinkingSearchKeywords: "raisonnement effort réflexion",
modeGroupLabel: "Mode",
modeSearchKeywords: "accès permission approbation mode",
planModeGroupLabel: "Mode plan",
planModeSearchKeywords: "plan planification mode plan",
fastModeGroupLabel: "Rapide",
fastModeSearchKeywords: "rapide vitesse faible latence",
settingOn: "Activé",
settingOff: "Désactivé",
},
},
composer: {
+10
View File
@@ -64,6 +64,16 @@ export const ja: TranslationResources = {
home: "ホーム",
modelGroupLabel: "モデル",
modelSearchKeywords: "モデルを切り替え モデルを変更 モデルを設定 モデルを選択",
thinkingGroupLabel: "思考",
thinkingSearchKeywords: "推論 思考レベル 考える",
modeGroupLabel: "モード",
modeSearchKeywords: "アクセス 権限 承認 モード",
planModeGroupLabel: "プランモード",
planModeSearchKeywords: "プラン 計画 プランモード",
fastModeGroupLabel: "高速",
fastModeSearchKeywords: "高速 速度 低遅延",
settingOn: "オン",
settingOff: "オフ",
},
},
composer: {
+10
View File
@@ -64,6 +64,16 @@ export const ptBR: TranslationResources = {
home: "Início",
modelGroupLabel: "Modelo",
modelSearchKeywords: "trocar modelo mudar modelo definir modelo selecionar modelo",
thinkingGroupLabel: "Raciocínio",
thinkingSearchKeywords: "raciocínio esforço pensamento",
modeGroupLabel: "Modo",
modeSearchKeywords: "acesso permissão aprovação modo",
planModeGroupLabel: "Modo plano",
planModeSearchKeywords: "plano planejamento modo plano",
fastModeGroupLabel: "Rápido",
fastModeSearchKeywords: "rápido velocidade baixa latência",
settingOn: "Ligado",
settingOff: "Desligado",
},
},
composer: {
+10
View File
@@ -64,6 +64,16 @@ export const ru: TranslationResources = {
home: "Дом",
modelGroupLabel: "Модель",
modelSearchKeywords: "сменить модель изменить модель выбрать модель установить модель",
thinkingGroupLabel: "Мышление",
thinkingSearchKeywords: "рассуждение усилие мышление",
modeGroupLabel: "Режим",
modeSearchKeywords: "доступ разрешение одобрение режим",
planModeGroupLabel: "Режим плана",
planModeSearchKeywords: "план планирование режим плана",
fastModeGroupLabel: "Быстрый",
fastModeSearchKeywords: "быстрый скорость низкая задержка",
settingOn: "Вкл",
settingOff: "Выкл",
},
},
composer: {
+10
View File
@@ -64,6 +64,16 @@ export const zhCN: TranslationResources = {
home: "首页",
modelGroupLabel: "模型",
modelSearchKeywords: "切换模型 更改模型 设置模型 选择模型",
thinkingGroupLabel: "思考",
thinkingSearchKeywords: "推理 努力 思考",
modeGroupLabel: "模式",
modeSearchKeywords: "访问 权限 批准 模式",
planModeGroupLabel: "计划模式",
planModeSearchKeywords: "计划 规划 计划模式",
fastModeGroupLabel: "快速",
fastModeSearchKeywords: "快速 速度 低延迟",
settingOn: "开",
settingOff: "关",
},
},
composer: {