From 2718506ced6c6093ffe537fd1eb52ecc73995595 Mon Sep 17 00:00:00 2001 From: "thomas g. lopes" Date: Tue, 10 Mar 2026 19:35:09 +0000 Subject: [PATCH] fuck dirty repo guard --- pi/files/agent/extensions/dirty-repo-guard.ts | 56 ------------------- pi/files/agent/settings.json | 2 +- 2 files changed, 1 insertion(+), 57 deletions(-) delete mode 100644 pi/files/agent/extensions/dirty-repo-guard.ts diff --git a/pi/files/agent/extensions/dirty-repo-guard.ts b/pi/files/agent/extensions/dirty-repo-guard.ts deleted file mode 100644 index e6e2b5c..0000000 --- a/pi/files/agent/extensions/dirty-repo-guard.ts +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Dirty Repo Guard Extension - * - * Prevents session changes when there are uncommitted git changes. - * Useful to ensure work is committed before switching context. - */ - -import type { ExtensionAPI, ExtensionContext } from "@mariozechner/pi-coding-agent"; - -async function checkDirtyRepo( - pi: ExtensionAPI, - ctx: ExtensionContext, - action: string, -): Promise<{ cancel: boolean } | undefined> { - // Check for uncommitted changes - const { stdout, code } = await pi.exec("git", ["status", "--porcelain"]); - - if (code !== 0) { - // Not a git repo, allow the action - return; - } - - const hasChanges = stdout.trim().length > 0; - if (!hasChanges) { - return; - } - - if (!ctx.hasUI) { - // In non-interactive mode, block by default - return { cancel: true }; - } - - // Count changed files - const changedFiles = stdout.trim().split("\n").filter(Boolean).length; - - const choice = await ctx.ui.select(`You have ${changedFiles} uncommitted file(s). ${action} anyway?`, [ - "Yes, proceed anyway", - "No, let me commit first", - ]); - - if (choice !== "Yes, proceed anyway") { - ctx.ui.notify("Commit your changes first", "warning"); - return { cancel: true }; - } -} - -export default function (pi: ExtensionAPI) { - pi.on("session_before_switch", async (event, ctx) => { - const action = event.reason === "new" ? "new session" : "switch session"; - return checkDirtyRepo(pi, ctx, action); - }); - - pi.on("session_before_fork", async (_event, ctx) => { - return checkDirtyRepo(pi, ctx, "fork"); - }); -} diff --git a/pi/files/agent/settings.json b/pi/files/agent/settings.json index 256e22d..248bbe2 100644 --- a/pi/files/agent/settings.json +++ b/pi/files/agent/settings.json @@ -2,7 +2,7 @@ "lastChangelogVersion": "0.57.1", "defaultProvider": "opencode-go", "defaultModel": "kimi-k2.5", - "defaultThinkingLevel": "off", + "defaultThinkingLevel": "low", "theme": "matugen", "lsp": { "hookMode": "edit_write"