@@ -72,10 +72,11 @@ pub async fn claude_get_session_details(
7272 let session_id = uuid:: Uuid :: parse_str ( & session_id) . map_err ( anyhow:: Error :: from) ?;
7373 let session = but_claude:: db:: get_session_by_id ( & mut ctx, session_id) ?
7474 . context ( "Could not find session" ) ?;
75- let current_id = Transcript :: current_valid_session_id ( & project. path , & session) . await ?;
75+ let worktree_dir = project. worktree_dir ( ) ?;
76+ let current_id = Transcript :: current_valid_session_id ( worktree_dir, & session) . await ?;
7677 if let Some ( current_id) = current_id {
7778 let transcript_path =
78- but_claude:: Transcript :: get_transcript_path ( & project . path , current_id) ?;
79+ but_claude:: Transcript :: get_transcript_path ( worktree_dir , current_id) ?;
7980 let transcript = but_claude:: Transcript :: from_file ( & transcript_path) ?;
8081 Ok ( but_claude:: ClaudeSessionDetails {
8182 summary : transcript. summary ( ) ,
@@ -204,8 +205,9 @@ pub fn claude_maybe_create_prompt_dir(project_id: ProjectId, path: String) -> Re
204205#[ instrument( err( Debug ) ) ]
205206pub async fn claude_get_mcp_config ( project_id : ProjectId ) -> Result < McpConfig , Error > {
206207 let project = gitbutler_project:: get ( project_id) ?;
207- let settings = ClaudeSettings :: open ( & project. path ) . await ;
208- let mcp_config = ClaudeMcpConfig :: open ( & settings, & project. path ) . await ;
208+ let worktree_dir = project. worktree_dir ( ) ?;
209+ let settings = ClaudeSettings :: open ( worktree_dir) . await ;
210+ let mcp_config = ClaudeMcpConfig :: open ( & settings, worktree_dir) . await ;
209211 Ok ( mcp_config. mcp_servers ( ) )
210212}
211213
@@ -215,7 +217,8 @@ pub async fn claude_get_sub_agents(
215217 project_id : ProjectId ,
216218) -> Result < Vec < but_claude:: SubAgent > , Error > {
217219 let project = gitbutler_project:: get ( project_id) ?;
218- let sub_agents = but_claude:: claude_sub_agents:: read_claude_sub_agents ( & project. path ) . await ;
220+ let sub_agents =
221+ but_claude:: claude_sub_agents:: read_claude_sub_agents ( project. worktree_dir ( ) ?) . await ;
219222 Ok ( sub_agents)
220223}
221224
@@ -229,7 +232,7 @@ pub async fn claude_verify_path(project_id: ProjectId, path: String) -> Result<b
229232 std:: path:: PathBuf :: from ( & path)
230233 } else {
231234 // If relative, make it relative to project path
232- project. path . join ( & path)
235+ project. worktree_dir ( ) ? . join ( & path)
233236 } ;
234237
235238 // Check if the path exists and is a directory
0 commit comments