diff --git a/src/commands.ts b/src/commands.ts index e2e34e9..50815f1 100644 --- a/src/commands.ts +++ b/src/commands.ts @@ -100,7 +100,37 @@ async function handleSkillReinjectCommand( } const subcommand = trimmed.split(/\s+/)[0]; + if (subcommand === "on" || subcommand === "off" || subcommand === "reset") { + handleSessionToggle(subcommand, ctx, deps); + return; + } + if (ctx.hasUI) { ctx.ui.notify(`skill-reinject: unknown subcommand "${subcommand}"`, "warning"); } } + +function handleSessionToggle( + subcommand: "on" | "off" | "reset", + ctx: ExtensionCommandContext, + deps: SkillReinjectCommandDeps, +): void { + switch (subcommand) { + case "on": + deps.state.sessionOverride = true; + break; + case "off": + deps.state.sessionOverride = false; + break; + case "reset": + deps.state.sessionOverride = null; + break; + } + deps.persistState(); + if (!ctx.hasUI) { + return; + } + const settings = readSettings(ctx); + const enabledLine = formatEnabledLine(deps.state.sessionOverride, settings); + ctx.ui.notify(enabledLine, "info"); +}