@@ -262,13 +262,28 @@ function update_option( string $key, mixed $value, bool $autoload = true ): bool
262262 $ second_worktree = $ backend ->worktree_add ('example ' , 'fix/remove-me ' );
263263 $ assert ('second worktree add succeeds ' , ! is_wp_error ($ second_worktree ) && 'example@fix-remove-me ' === $ second_worktree ['handle ' ]);
264264
265- $ remove = $ backend ->worktree_remove ('example ' , 'fix/remove-me ' );
266- $ assert ('worktree remove clears remote runtime state ' , ! is_wp_error ($ remove ) && 'example@fix-remove-me ' === $ remove ['handle ' ]);
267- $ removed_status = $ backend ->git_status ('example@fix-remove-me ' );
268- $ assert ('removed worktree no longer resolves ' , is_wp_error ($ removed_status ) && 'remote_workspace_repo_not_found ' === $ removed_status ->get_error_code ());
269-
270- $ state = $ GLOBALS ['dmc_remote_workspace_options ' ]['datamachine_code_remote_workspace_state ' ];
271- $ state ['worktrees ' ]['missing@stale ' ] = array (
265+ $ remove = $ backend ->worktree_remove ('example ' , 'fix/remove-me ' );
266+ $ assert ('worktree remove clears remote runtime state ' , ! is_wp_error ($ remove ) && 'example@fix-remove-me ' === $ remove ['handle ' ]);
267+ $ removed_status = $ backend ->git_status ('example@fix-remove-me ' );
268+ $ assert ('removed worktree no longer resolves ' , is_wp_error ($ removed_status ) && 'remote_workspace_repo_not_found ' === $ removed_status ->get_error_code ());
269+
270+ $ state = $ GLOBALS ['dmc_remote_workspace_options ' ]['datamachine_code_remote_workspace_state ' ];
271+ $ state ['worktrees ' ]['example@old-reused-handle ' ] = array (
272+ 'repo_name ' => 'example ' ,
273+ 'repo ' => 'chubes4/example ' ,
274+ 'branch ' => 'fix/current-branch ' ,
275+ 'pending_files ' => array (),
276+ 'changed_files ' => array (),
277+ 'last_commit_sha ' => '' ,
278+ );
279+ $ GLOBALS ['dmc_remote_workspace_options ' ]['datamachine_code_remote_workspace_state ' ] = $ state ;
280+ $ reused_remove = $ backend ->worktree_remove ('example ' , 'fix/current-branch ' );
281+ $ assert ('worktree remove finds reused handle by stored branch ' , ! is_wp_error ($ reused_remove ) && 'example@old-reused-handle ' === $ reused_remove ['handle ' ]);
282+ $ state = $ GLOBALS ['dmc_remote_workspace_options ' ]['datamachine_code_remote_workspace_state ' ];
283+ $ assert ('worktree remove clears reused handle row ' , ! isset ($ state ['worktrees ' ]['example@old-reused-handle ' ]));
284+
285+ $ state = $ GLOBALS ['dmc_remote_workspace_options ' ]['datamachine_code_remote_workspace_state ' ];
286+ $ state ['worktrees ' ]['missing@stale ' ] = array (
272287 'repo_name ' => 'missing ' ,
273288 'repo ' => 'chubes4/missing ' ,
274289 'branch ' => 'stale ' ,
0 commit comments