Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/tui-status-swarm-mode.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@moonshot-ai/kimi-code": patch
---

Show Swarm mode status in the TUI `/status` panel.
1 change: 1 addition & 0 deletions apps/kimi-code/src/tui/commands/info.ts
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ export async function showStatusReport(host: SlashCommandHost): Promise<void> {
thinkingEffort: appState.thinkingEffort,
permissionMode: appState.permissionMode,
planMode: appState.planMode,
swarmMode: appState.swarmMode,
contextUsage: appState.contextUsage,
contextTokens: appState.contextTokens,
maxContextTokens: appState.maxContextTokens,
Expand Down
3 changes: 3 additions & 0 deletions apps/kimi-code/src/tui/components/messages/status-panel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ describe('status panel report lines', () => {
thinkingEffort: 'on',
permissionMode: 'manual',
planMode: false,
swarmMode: true,
contextUsage: 0.25,
contextTokens: 2500,
maxContextTokens: 10000,
Expand All @@ -33,6 +34,7 @@ describe('status panel report lines', () => {
thinkingEffort: 'high',
permission: 'auto',
planMode: true,
swarmMode: false,
contextTokens: 3000,
maxContextTokens: 12000,
contextUsage: 0.25,
Expand All @@ -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');
Expand All @@ -79,6 +82,7 @@ describe('status panel report lines', () => {
thinkingEffort: 'off',
permissionMode: 'manual',
planMode: false,
swarmMode: false,
contextUsage: 0,
contextTokens: 0,
maxContextTokens: 0,
Expand Down Expand Up @@ -117,6 +121,7 @@ describe('status panel report lines', () => {
thinkingEffort: 'off',
permissionMode: 'manual',
planMode: false,
swarmMode: false,
contextUsage: 0,
contextTokens: 0,
maxContextTokens: 0,
Expand Down
Loading