feat: restore previous permission mode when exiting plan mode (#866)

This commit is contained in:
paulbettner
2026-02-08 21:10:21 -06:00
committed by GitHub
parent 89ace569d7
commit f5c143ec74
3 changed files with 58 additions and 3 deletions

View File

@@ -452,3 +452,20 @@ test("Permission mode takes precedence over CLI allowedTools", () => {
// Clean up
cliPermissions.clear();
});
test("plan mode - remembers and restores previous mode", () => {
permissionMode.setMode("bypassPermissions");
expect(permissionMode.getMode()).toBe("bypassPermissions");
// Enter plan mode - should remember prior mode.
permissionMode.setMode("plan");
expect(permissionMode.getMode()).toBe("plan");
expect(permissionMode.getModeBeforePlan()).toBe("bypassPermissions");
// Exit plan mode by restoring previous mode.
permissionMode.setMode(permissionMode.getModeBeforePlan() ?? "default");
expect(permissionMode.getMode()).toBe("bypassPermissions");
// Once we leave plan mode, the remembered mode is consumed.
expect(permissionMode.getModeBeforePlan()).toBe(null);
});