diff --git a/src/resources/extensions/gsd/bootstrap/register-hooks.ts b/src/resources/extensions/gsd/bootstrap/register-hooks.ts index 0cdc0353f..9de7759e8 100644 --- a/src/resources/extensions/gsd/bootstrap/register-hooks.ts +++ b/src/resources/extensions/gsd/bootstrap/register-hooks.ts @@ -69,6 +69,14 @@ export function registerHooks(pi: ExtensionAPI): void { } }); + pi.on("session_switch", async (_event, ctx) => { + resetWriteGateState(); + resetToolCallLoopGuard(); + clearDiscussionFlowState(); + await syncServiceTierStatus(ctx); + loadToolApiKeys(); + }); + pi.on("before_agent_start", async (event, ctx: ExtensionContext) => { return buildBeforeAgentStartResult(event, ctx); }); diff --git a/src/resources/extensions/gsd/extension-manifest.json b/src/resources/extensions/gsd/extension-manifest.json index a1b2877be..2c01ab4ee 100644 --- a/src/resources/extensions/gsd/extension-manifest.json +++ b/src/resources/extensions/gsd/extension-manifest.json @@ -12,7 +12,7 @@ "gsd_requirement_update", "gsd_milestone_generate_id" ], "commands": ["gsd", "kill", "worktree", "exit"], - "hooks": ["session_start"], + "hooks": ["session_start", "session_switch"], "shortcuts": ["Ctrl+Alt+G"] } }