@@ -72,11 +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 =
76- Transcript :: current_valid_session_id ( & project . worktree_dir ( ) , & session) . await ?;
75+ let worktree_dir = project . worktree_dir ( ) ? ;
76+ let current_id = Transcript :: current_valid_session_id ( worktree_dir, & session) . await ?;
7777 if let Some ( current_id) = current_id {
7878 let transcript_path =
79- but_claude:: Transcript :: get_transcript_path ( & project . worktree_dir ( ) , current_id) ?;
79+ but_claude:: Transcript :: get_transcript_path ( worktree_dir, current_id) ?;
8080 let transcript = but_claude:: Transcript :: from_file ( & transcript_path) ?;
8181 Ok ( but_claude:: ClaudeSessionDetails {
8282 summary : transcript. summary ( ) ,
@@ -205,8 +205,9 @@ pub fn claude_maybe_create_prompt_dir(project_id: ProjectId, path: String) -> Re
205205#[ instrument( err( Debug ) ) ]
206206pub async fn claude_get_mcp_config ( project_id : ProjectId ) -> Result < McpConfig , Error > {
207207 let project = gitbutler_project:: get ( project_id) ?;
208- let settings = ClaudeSettings :: open ( & project. worktree_dir ( ) ) . await ;
209- let mcp_config = ClaudeMcpConfig :: open ( & settings, & project. worktree_dir ( ) ) . 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 ;
210211 Ok ( mcp_config. mcp_servers ( ) )
211212}
212213
@@ -217,7 +218,7 @@ pub async fn claude_get_sub_agents(
217218) -> Result < Vec < but_claude:: SubAgent > , Error > {
218219 let project = gitbutler_project:: get ( project_id) ?;
219220 let sub_agents =
220- but_claude:: claude_sub_agents:: read_claude_sub_agents ( & project. worktree_dir ( ) ) . await ;
221+ but_claude:: claude_sub_agents:: read_claude_sub_agents ( project. worktree_dir ( ) ? ) . await ;
221222 Ok ( sub_agents)
222223}
223224
@@ -231,7 +232,7 @@ pub async fn claude_verify_path(project_id: ProjectId, path: String) -> Result<b
231232 std:: path:: PathBuf :: from ( & path)
232233 } else {
233234 // If relative, make it relative to project path
234- project. worktree_dir ( ) . join ( & path)
235+ project. worktree_dir ( ) ? . join ( & path)
235236 } ;
236237
237238 // Check if the path exists and is a directory
0 commit comments