Compare commits

..

1 Commits

Author SHA1 Message Date
shokollm
4ec76b1248 fix: improve worktree/session handling in cmd_start and cmd_continue
cmd_continue:
- Check if worktree exists before continuing
- If worktree is missing, remove stale session and exit with error
- Tell user to use cmd_start instead

cmd_start:
- Check BOTH worktree AND session existence
- If only worktree exists (not session): remove worktree, recreate both
- If only session exists (not worktree): remove session, recreate both
- If both exist: tell user to use continue

Daemon:
- Fixed wrong path in check_task_completion ($HOME/.kugetsu-worktrees -> $WORKTREES_DIR)
2026-04-07 01:29:49 +00:00

View File

@@ -83,10 +83,6 @@ EOF
if [ -n "$existing_base" ] && [ "$existing_base" != "null" ]; then if [ -n "$existing_base" ] && [ "$existing_base" != "null" ]; then
if [ "$force" = true ]; then if [ "$force" = true ]; then
echo "Warning: Reinitializing sessions (force mode)" >&2 echo "Warning: Reinitializing sessions (force mode)" >&2
echo "Destroying all sessions, worktrees, and logs..." >&2
cmd_destroy --base -y 2>/dev/null || true
cmd_destroy --pm-agent -y 2>/dev/null || true
rm -f "$LOGS_DIR"/*.log 2>/dev/null || true
else else
echo "Error: Base session already exists: $existing_base" >&2 echo "Error: Base session already exists: $existing_base" >&2
echo "Use --force to reinitialize" >&2 echo "Use --force to reinitialize" >&2
@@ -423,12 +419,12 @@ cmd_continue() {
local issue_ref=$(python3 -c "import json; print(json.load(open('$session_path')).get('issue_ref', ''))" 2>/dev/null || echo "") local issue_ref=$(python3 -c "import json; print(json.load(open('$session_path')).get('issue_ref', ''))" 2>/dev/null || echo "")
if [ -z "$worktree_path" ] || [ ! -d "$worktree_path" ]; then if [ -z "$worktree_path" ] || [ ! -d "$worktree_path" ]; then
echo "Warning: Worktree is missing for '$session_name'. Recovering..." >&2 echo "Error: Worktree is missing for '$session_name'" >&2
echo "Removing stale session file..." >&2
rm -f "$session_path" rm -f "$session_path"
remove_issue_from_index "$session_name" remove_issue_from_index "$session_name"
echo "Calling cmd_start to create new session and worktree..." >&2 echo "Use 'kugetsu start $session_name' to create a new session." >&2
cmd_start "$session_name" "$message" exit 1
return $?
fi fi
if [ -z "$message" ]; then if [ -z "$message" ]; then