diff --git a/src/renderer/src/features/command-palette/taxonomy.test.ts b/src/renderer/src/features/command-palette/taxonomy.test.ts index 4ffe40d3f..01cffb821 100644 --- a/src/renderer/src/features/command-palette/taxonomy.test.ts +++ b/src/renderer/src/features/command-palette/taxonomy.test.ts @@ -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') } @@ -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') } }) diff --git a/src/renderer/src/features/workspace/commands/paneCommands.ts b/src/renderer/src/features/workspace/commands/paneCommands.ts index 349e4c6e8..6a90bb7ef 100644 --- a/src/renderer/src/features/workspace/commands/paneCommands.ts +++ b/src/renderer/src/features/workspace/commands/paneCommands.ts @@ -329,7 +329,6 @@ 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 @@ -337,7 +336,7 @@ export const paneCommands: CommandDef[] = [ 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, diff --git a/src/renderer/src/features/workspace/commands/sessionCommands.ts b/src/renderer/src/features/workspace/commands/sessionCommands.ts index 83deafbb1..48b11aad3 100644 --- a/src/renderer/src/features/workspace/commands/sessionCommands.ts +++ b/src/renderer/src/features/workspace/commands/sessionCommands.ts @@ -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.', @@ -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', @@ -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.', @@ -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.', @@ -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.', @@ -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', @@ -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.', @@ -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.',