diff --git a/.changeset/tui-status-swarm-mode.md b/.changeset/tui-status-swarm-mode.md new file mode 100644 index 0000000000..412ef2bcb9 --- /dev/null +++ b/.changeset/tui-status-swarm-mode.md @@ -0,0 +1,5 @@ +--- +"@moonshot-ai/kimi-code": patch +--- + +Show Swarm mode status in the TUI `/status` panel. diff --git a/apps/kimi-code/src/tui/commands/info.ts b/apps/kimi-code/src/tui/commands/info.ts index fd5d397f4b..8c6be15abe 100644 --- a/apps/kimi-code/src/tui/commands/info.ts +++ b/apps/kimi-code/src/tui/commands/info.ts @@ -150,6 +150,7 @@ export async function showStatusReport(host: SlashCommandHost): Promise { thinkingEffort: appState.thinkingEffort, permissionMode: appState.permissionMode, planMode: appState.planMode, + swarmMode: appState.swarmMode, contextUsage: appState.contextUsage, contextTokens: appState.contextTokens, maxContextTokens: appState.maxContextTokens, diff --git a/apps/kimi-code/src/tui/components/messages/status-panel.ts b/apps/kimi-code/src/tui/components/messages/status-panel.ts index 4c6799e03e..352e257233 100644 --- a/apps/kimi-code/src/tui/components/messages/status-panel.ts +++ b/apps/kimi-code/src/tui/components/messages/status-panel.ts @@ -44,6 +44,7 @@ export interface StatusReportOptions { readonly thinkingEffort: ThinkingEffort; readonly permissionMode: PermissionMode; readonly planMode: boolean; + readonly swarmMode: boolean; readonly contextUsage: number; readonly contextTokens: number; readonly maxContextTokens: number; @@ -106,12 +107,14 @@ export function buildStatusReportLines(options: StatusReportOptions): string[] { const permission = options.status?.permission ?? options.permissionMode; const planMode = options.status?.planMode ?? options.planMode; + const swarmMode = options.status?.swarmMode ?? options.swarmMode; const sessionId = options.sessionId.trim().length > 0 ? options.sessionId : 'none'; const rows: FieldRow[] = [ { label: 'Model', value: formatModelStatus(options) }, { label: 'Directory', value: options.workDir }, { label: 'Permissions', value: permission }, { label: 'Plan mode', value: planMode ? 'on' : 'off' }, + { label: 'Swarm mode', value: swarmMode ? 'on' : 'off' }, { label: 'Session', value: sessionId }, ]; const title = options.sessionTitle?.trim(); diff --git a/apps/kimi-code/test/tui/components/messages/status-panel.test.ts b/apps/kimi-code/test/tui/components/messages/status-panel.test.ts index 0e81fda892..bf18629fec 100644 --- a/apps/kimi-code/test/tui/components/messages/status-panel.test.ts +++ b/apps/kimi-code/test/tui/components/messages/status-panel.test.ts @@ -17,6 +17,7 @@ describe('status panel report lines', () => { thinkingEffort: 'on', permissionMode: 'manual', planMode: false, + swarmMode: true, contextUsage: 0.25, contextTokens: 2500, maxContextTokens: 10000, @@ -33,6 +34,7 @@ describe('status panel report lines', () => { thinkingEffort: 'high', permission: 'auto', planMode: true, + swarmMode: false, contextTokens: 3000, maxContextTokens: 12000, contextUsage: 0.25, @@ -56,6 +58,7 @@ describe('status panel report lines', () => { expect(output).toContain('Directory /tmp/project'); expect(output).toContain('Permissions auto'); expect(output).toContain('Plan mode on'); + expect(output).toContain('Swarm mode off'); expect(output).toContain('Session ses-1'); expect(output).toContain('Title Implement status'); expect(output).toContain('Context window'); @@ -79,6 +82,7 @@ describe('status panel report lines', () => { thinkingEffort: 'off', permissionMode: 'manual', planMode: false, + swarmMode: false, contextUsage: 0, contextTokens: 0, maxContextTokens: 0, @@ -117,6 +121,7 @@ describe('status panel report lines', () => { thinkingEffort: 'off', permissionMode: 'manual', planMode: false, + swarmMode: false, contextUsage: 0, contextTokens: 0, maxContextTokens: 0,