diff --git a/loop/server/loophttp.go b/loop/server/loophttp.go
index ede1644..0e0d930 100644
--- a/loop/server/loophttp.go
+++ b/loop/server/loophttp.go
@@ -1206,8 +1206,8 @@
 		return
 	}
 
-	// Get the git working directory from agent
-	repoDir := s.agent.WorkingDir()
+	// Get the git repository root directory from agent
+	repoDir := s.agent.RepoRoot()
 
 	// Parse query parameters
 	query := r.URL.Query()
@@ -1249,8 +1249,8 @@
 		return
 	}
 
-	// Get the git working directory from agent
-	repoDir := s.agent.WorkingDir()
+	// Get the git repository root directory from agent
+	repoDir := s.agent.RepoRoot()
 
 	// Parse query parameters
 	hash := r.URL.Query().Get("hash")
@@ -1286,8 +1286,8 @@
 		return
 	}
 
-	// Get the git working directory and initial commit from agent
-	repoDir := s.agent.WorkingDir()
+	// Get the git repository root directory and initial commit from agent
+	repoDir := s.agent.RepoRoot()
 	initialCommit := s.agent.SketchGitBaseRef()
 
 	// Call the git_tools function
@@ -1311,8 +1311,8 @@
 		return
 	}
 
-	// Get the git working directory from agent
-	repoDir := s.agent.WorkingDir()
+	// Get the git repository root directory from agent
+	repoDir := s.agent.RepoRoot()
 
 	// Parse query parameters
 	query := r.URL.Query()
@@ -1345,8 +1345,8 @@
 		return
 	}
 
-	// Get the git working directory from agent
-	repoDir := s.agent.WorkingDir()
+	// Get the git repository root directory from agent
+	repoDir := s.agent.RepoRoot()
 
 	// Parse request body
 	var requestBody struct {
diff --git a/loop/server/loophttp_test.go b/loop/server/loophttp_test.go
index 949a95a..58d8ad0 100644
--- a/loop/server/loophttp_test.go
+++ b/loop/server/loophttp_test.go
@@ -226,6 +226,7 @@
 func (m *mockAgent) TotalUsage() conversation.CumulativeUsage    { return conversation.CumulativeUsage{} }
 func (m *mockAgent) OriginalBudget() conversation.Budget         { return conversation.Budget{} }
 func (m *mockAgent) WorkingDir() string                          { return m.workingDir }
+func (m *mockAgent) RepoRoot() string                            { return m.workingDir }
 func (m *mockAgent) Diff(commit *string) (string, error)         { return "", nil }
 func (m *mockAgent) OS() string                                  { return "linux" }
 func (m *mockAgent) SessionID() string                           { return "test-session" }
