Skip to content
Merged
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
17 changes: 16 additions & 1 deletion src/renderer/src/features/command-palette/taxonomy.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,18 @@ describe('tier classification', () => {
// strongest signal available that they are daily rather than niche.
'search-conversation-prompts', 'duplicate-agent', 'rewind-to-prompt', 'close-old-agents',
'copy-code-block', 'copy-assistant-message', 'copy-resume-command', 'switch-provider',
// Promoted for the stable release (B9, the owner's pick of 2026-09-19:
// "every ON command except the debug and remote ones"). The pick named
// 14; five of them (rotate/normalize/hard-normalize layout and the two
// attach-detached commands) were retired by the unified stage (#1013)
// before this landed, so these nine are the survivors.
//
// The operative rule is the owner's pick, not a class-wide claim about
// MCP toggles: `enable-orchestration-mcp` and `enable-workflow-mcp` were
// NOT in it and stay advanced (pinned four lines below).
'toggle-tail-all', 'set-agent-view-mode', 'soft-reload-agent', 'switch-agents-provider',
'remove-cybersecurity-block', 'enable-agent-transcripts-mcp', 'enable-agent-management-mcp',
'enable-ai-workspace-mcp', 'enable-root-agent-code-management',
]) {
expect(byId(id).pickerVisibility ?? 'default').toBe('default')
}
Expand All @@ -109,7 +121,10 @@ describe('tier classification', () => {
it('marks niche supported operations advanced rather than hiding them entirely', () => {
// `advanced` is not `debug`: these are supported operations a power user
// wants, just not ones that should crowd a fuzzy search.
for (const id of ['remove-cybersecurity-block', 'soft-reload-agent', 'switch-agents-provider']) {
// These three used to be remove-cybersecurity-block, soft-reload-agent and
// switch-agents-provider, which B9 promoted (see above). The ones below
// were NOT in the owner's pick and stay advanced.
for (const id of ['undo-rewind', 'enable-orchestration-mcp', 'enable-workflow-mcp', 'toggle-tail-working']) {
expect(byId(id).pickerVisibility).toBe('advanced')
}
})
Expand Down
3 changes: 1 addition & 2 deletions src/renderer/src/features/workspace/commands/paneCommands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -329,15 +329,14 @@ export const paneCommands: CommandDef[] = [
{
id: 'toggle-tail-all',
category: 'layout-dispatch',
pickerVisibility: 'advanced',
// WHY 'app' and not 'session': this acts on the workspace, not on the
// resolved command target. Same reasoning recorded for
// `switch-agents-provider` — the user is acting across the workspace, not
// on the focused pane.
surface: 'app',
title: 'Auto-follow All Visible Agents',
description:
'**What it does:** Toggles **auto-follow for every visible agent** at once.\n\n**Use when:** You are watching several agents work and want them all pinned to the bottom.\n\n**Notes:** Scopes to what is on screen — in **single dispatch** that is the one agent, in **tiled** every lane, in the **grid** the current tab\'s panes only. Panes you open afterward tail too, until you toggle it off. Enabling this switches off Auto-follow All Working Agents. Plain terminals and raw agent terminal views follow too.\n\n**Caution:** A tailing pane cannot be scrolled up. Turning this off leaves individually enabled followers on; other panes restore their earlier reading position where that content is still retained. Raw terminal follow controls xterm scrollback, not a TUI\'s internal history.',
'**What it does:** Toggles **auto-follow for every visible agent** at once.\n\n**Use when:** You are watching several agents work and want them all pinned to the bottom.\n\n**Notes:** Scopes to what is on screen — every agent in a visible lane of the current project. Panes you open afterward tail too, until you toggle it off. Enabling this switches off Auto-follow All Working Agents. Plain terminals and raw agent terminal views follow too.\n\n**Caution:** A tailing pane cannot be scrolled up. Turning this off leaves individually enabled followers on; other panes restore their earlier reading position where that content is still retained. Raw terminal follow controls xterm scrollback, not a TUI\'s internal history.',
keywords: ['tail', 'all', 'follow', 'auto-scroll', 'bulk', 'every', 'watch', 'tail all', 'tail'],
// WHY no `renderedViewPolicy` — Tail All is a stance over whatever is
// mounted, on either agent surface (rendered feed or raw terminal view,
Expand Down
10 changes: 1 addition & 9 deletions src/renderer/src/features/workspace/commands/sessionCommands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,6 @@ export const sessionCommands: CommandDef[] = [
// request would resend. The source file is never edited.
id: 'remove-cybersecurity-block',
category: 'session',
pickerVisibility: 'advanced',
surface: 'session',
title: 'Remove Cybersecurity Block',
description: '**What it does:** Forks the focused **Codex** session with the last model step after a cybersecurity block removed.\n\n**Use when:** Codex ended the turn with a cybersecurity flag and you want to keep chatting without Rewind to Prompt deleting the whole assistant response.\n\n**Notes:** The original transcript is not edited. Undo Rewind restores it until the next submit.',
Expand Down Expand Up @@ -422,10 +421,9 @@ export const sessionCommands: CommandDef[] = [
// frequency operation, and a second command/keybind would be clutter.
id: 'switch-agents-provider',
category: 'session',
pickerVisibility: 'advanced',
surface: 'app',
title: 'Switch Agents to Another Provider…',
description: '**What it does:** Opens a modal to move a batch of agents between **Claude, Codex, and OpenCode**, and to return the most recent batch.\n\n**Use when:** You hit a usage limit on one provider and want to move agents elsewhere (then back later).\n\n**Notes:** History is translated; the most recent batch is remembered so you can send it back from the same modal.',
description: '**What it does:** Opens a modal to move a batch of agents between **providers** — the destinations each provider declares, which today include Claude, Codex, OpenCode and Grok — and to return the most recent batch.\n\n**Use when:** You hit a usage limit on one provider and want to move agents elsewhere (then back later).\n\n**Notes:** History is translated; the most recent batch is remembered so you can send it back from the same modal.',
keywords: [
'switch',
'provider',
Expand Down Expand Up @@ -531,7 +529,6 @@ export const sessionCommands: CommandDef[] = [
{
id: 'enable-ai-workspace-mcp',
category: 'session',
pickerVisibility: 'advanced',
surface: 'session',
title: 'AI Workspace MCP',
description: '**What it does:** Reloads the focused **agent** with Agent Code AI Workspace MCP tools on or off.\n\n**Use when:** You want this agent to create curated cross-worktree file review workspaces.\n\n**Notes:** Orchestration agents can use this domain, but it remains a separate MCP capability.',
Expand Down Expand Up @@ -597,7 +594,6 @@ export const sessionCommands: CommandDef[] = [
{
id: 'enable-agent-transcripts-mcp',
category: 'session',
pickerVisibility: 'advanced',
surface: 'session',
title: 'Agent Transcripts MCP',
description: '**What it does:** Reloads the focused **agent** with Agent Code transcript-consumption MCP tools on or off.\n\n**Use when:** You want this agent to read a specific transcript file through filtered projections instead of manual shell parsing.\n\n**Notes:** The tool accepts an explicit file path and returns bounded normalized transcript context; it does not discover transcripts for the agent.',
Expand Down Expand Up @@ -630,7 +626,6 @@ export const sessionCommands: CommandDef[] = [
{
id: 'enable-agent-management-mcp',
category: 'session',
pickerVisibility: 'advanced',
surface: 'session',
title: 'Agent Management MCP',
description: '**What it does:** Reloads the focused **agent** with project-wide Agent Code management tools on or off.\n\n**Use when:** You want this agent to inventory, inspect, prompt, or close other agents in its project.\n\n**Notes:** Read operations include agents that are not in a lane, without waking them. Every close it attempts asks **you** to confirm first, and cascades are refused outright.',
Expand Down Expand Up @@ -664,7 +659,6 @@ export const sessionCommands: CommandDef[] = [
{
id: 'enable-root-agent-code-management',
category: 'session',
pickerVisibility: 'advanced',
surface: 'session',
risk: 'destructive',
title: 'Root Agent Code Management',
Expand Down Expand Up @@ -849,7 +843,6 @@ export const sessionCommands: CommandDef[] = [
{
id: 'soft-reload-agent',
category: 'session',
pickerVisibility: 'advanced',
surface: 'session',
title: 'Soft Reload Agent',
description: '**What it does:** Refreshes the focused **agent view** without restarting its backend process.\n\n**Use when:** The feed or rendering state looks stale, duplicated, or corrupted while the agent is still working.\n\n**Notes:** Keeps the same session, draft, pane placement, and running process.',
Expand Down Expand Up @@ -894,7 +887,6 @@ export const sessionCommands: CommandDef[] = [
{
id: 'set-agent-view-mode',
category: 'session',
pickerVisibility: 'advanced',
surface: 'session',
title: 'Agent View for This Session…',
description: '**What it does:** Overrides the focused agent pane to use Agent rendering, Terminal rendering, or the global default.\n\n**Use when:** One session needs the raw provider terminal while the rest of the app keeps its normal view mode.\n\n**Notes:** Persists with the session. Hybrid remains a global/default setting, not a per-session override.',
Expand Down
Loading