diff --git a/scripts/check-sf-extension-inventory.mjs b/scripts/check-sf-extension-inventory.mjs index 5a28f1fc8..10ed61334 100644 --- a/scripts/check-sf-extension-inventory.mjs +++ b/scripts/check-sf-extension-inventory.mjs @@ -42,8 +42,8 @@ const HIDDEN_OR_ALIAS_SUBCOMMANDS = new Set([ "auto", "footer-config", // alias for /statusline "h", - "recover", "review-code", // alias for /rubber-duck + "stop", // platform-intercepted via BASE_RUNTIME_COMMANDS — never reaches SF handler "undo-turn", // alias for /rewind "wt", ]); @@ -304,7 +304,10 @@ function main() { (command) => !catalogCommands.includes(command), ); const unroutedCatalogCommands = catalogCommands.filter( - (command) => command !== "help" && !handledCommands.includes(command), + (command) => + command !== "help" && + !HIDDEN_OR_ALIAS_SUBCOMMANDS.has(command) && + !handledCommands.includes(command), ); if (missingCatalogCommands.length > 0) { failures.push( diff --git a/src/resources/extensions/sf/commands/catalog.js b/src/resources/extensions/sf/commands/catalog.js index 44a48f0c6..e36dd8c7a 100644 --- a/src/resources/extensions/sf/commands/catalog.js +++ b/src/resources/extensions/sf/commands/catalog.js @@ -69,7 +69,6 @@ export const TOP_LEVEL_SUBCOMMANDS = [ { cmd: "queue", desc: "Queue and reorder future milestones" }, { cmd: "quick", desc: "Execute a quick task without full planning overhead" }, { cmd: "discuss", desc: "Discuss architecture and decisions" }, - { cmd: "steer", desc: "Steerable autonomous panel (Shift+Tab)" }, { cmd: "capture", desc: "Fire-and-forget thought capture" }, { cmd: "debug", desc: "Create and inspect persistent /debug sessions" }, { cmd: "scan", desc: "Run source and project scans" }, @@ -82,7 +81,10 @@ export const TOP_LEVEL_SUBCOMMANDS = [ { cmd: "todo", desc: "Triage root TODO.md dump into eval/backlog artifacts" }, { cmd: "dispatch", desc: "Dispatch a specific phase directly" }, { cmd: "research", desc: "Force research stage for current unit" }, - { cmd: "plan", desc: "Force planning stage for current unit" }, + { + cmd: "plan", + desc: "Force planning stage; /plan promote|list|diff manages planning artifacts in docs/", + }, { cmd: "implement", desc: "Force implementation stage for current unit" }, { cmd: "history", desc: "View execution history" }, { @@ -165,6 +167,10 @@ export const TOP_LEVEL_SUBCOMMANDS = [ { cmd: "migrate", desc: "Migrate a v1 .planning directory to .sf format" }, { cmd: "remote", desc: "Configure remote question delivery" }, { cmd: "steer", desc: "Hard-steer plan documents during execution" }, + { + cmd: "recover", + desc: "Reconstruct DB hierarchy (milestones/slices/tasks) from rendered markdown on disk", + }, { cmd: "inspect", desc: "Show SQLite DB diagnostics" }, { cmd: "knowledge", @@ -244,10 +250,6 @@ export const TOP_LEVEL_SUBCOMMANDS = [ cmd: "eval-review", desc: "Milestone-end evaluation review — audit slice coverage and infrastructure with scored EVAL-REVIEW.md", }, - { - cmd: "plan", - desc: "Promote planning artifacts from ~/.sf/ to docs/ (promote, list, diff)", - }, { cmd: "experimental", desc: "Toggle experimental feature flags (show/on/off/on /off )", @@ -255,10 +257,6 @@ export const TOP_LEVEL_SUBCOMMANDS = [ { cmd: "diff", desc: "Show git diff (HEAD by default, --staged for staged)" }, { cmd: "theme", desc: "Get or set the UI theme (dark/light/dim/auto)" }, { cmd: "rename", desc: "Rename the current session (sets terminal title)" }, - { - cmd: "session-rename", - desc: "Rename the current session by name (alias: /rename)", - }, { cmd: "streamer-mode", desc: "Toggle streamer mode — masks model names and quota details", diff --git a/src/resources/extensions/sf/commands/handlers/autonomous.js b/src/resources/extensions/sf/commands/handlers/autonomous.js index ea7dec612..667925d47 100644 --- a/src/resources/extensions/sf/commands/handlers/autonomous.js +++ b/src/resources/extensions/sf/commands/handlers/autonomous.js @@ -180,10 +180,6 @@ export async function handleAutonomousCommand(trimmed, ctx, pi) { } return true; } - if (trimmed === "stop") { - await stopAutonomousRun(ctx, pi); - return true; - } if (trimmed === "pause") { await pauseAutonomousRun(ctx, pi); return true; diff --git a/src/resources/extensions/sf/commands/handlers/core.js b/src/resources/extensions/sf/commands/handlers/core.js index ee689b8d9..e09dd6751 100644 --- a/src/resources/extensions/sf/commands/handlers/core.js +++ b/src/resources/extensions/sf/commands/handlers/core.js @@ -851,14 +851,6 @@ export async function handleCoreCommand(trimmed, ctx, pi) { ); return true; } - if (trimmed === "session-rename" || trimmed.startsWith("session-rename ")) { - // Alias for /rename - await handleRenameCommand( - trimmed.replace(/^session-rename\s*/, "").trim(), - ctx, - ); - return true; - } if (trimmed === "sidekicks" || trimmed.startsWith("sidekicks ")) { await handleSidekicksCommand(ctx); return true; diff --git a/src/resources/extensions/sf/commands/handlers/ops.js b/src/resources/extensions/sf/commands/handlers/ops.js index 620319edf..054ae4d57 100644 --- a/src/resources/extensions/sf/commands/handlers/ops.js +++ b/src/resources/extensions/sf/commands/handlers/ops.js @@ -245,15 +245,6 @@ export async function handleOpsCommand(trimmed, ctx, pi) { await handleTodo(trimmed.replace(/^todo\s*/, "").trim(), ctx, pi); return true; } - if (trimmed === "rate" || trimmed.startsWith("rate ")) { - const { handleRate } = await import("../../commands-rate.js"); - await handleRate( - trimmed.replace(/^rate\s*/, "").trim(), - ctx, - process.cwd(), - ); - return true; - } if (trimmed === "config") { await handleConfig(ctx); return true; diff --git a/src/resources/extensions/sf/extension-manifest.json b/src/resources/extensions/sf/extension-manifest.json index dbfd025c4..734b614d4 100644 --- a/src/resources/extensions/sf/extension-manifest.json +++ b/src/resources/extensions/sf/extension-manifest.json @@ -105,6 +105,7 @@ "queue", "quick", "rate", + "recover", "remote", "rename", "repair", @@ -118,7 +119,6 @@ "scan", "schedule", "search", - "session-rename", "session-report", "setup", "ship",