fix(kugetsu): destroy --base now also deletes PM agent session

When destroying base session, we now also delete the PM agent session
and all issue session files. This ensures clean slate on re-init.
This commit is contained in:
shokollm
2026-04-02 14:47:40 +00:00
parent 1c1d18b9ae
commit d316fdb5a0

View File

@@ -1602,19 +1602,21 @@ cmd_destroy() {
if [ "$target" = "base" ]; then if [ "$target" = "base" ]; then
if [ "$force" = true ]; then if [ "$force" = true ]; then
local base_session_id=$(get_base_session_id) local base_session_id=$(get_base_session_id)
local pm_agent_session_id=$(get_pm_agent_session_id)
rm -f "$SESSIONS_DIR/base.json" rm -f "$SESSIONS_DIR/base.json"
local pm_agent=$(get_pm_agent_session_id)
if [ -n "$pm_agent" ] && [ "$pm_agent" != "null" ]; then
rm -f "$SESSIONS_DIR/pm-agent.json" rm -f "$SESSIONS_DIR/pm-agent.json"
rm -f "$SESSIONS_DIR/issue-"*.json 2>/dev/null || true
echo '{"base": null, "pm_agent": null, "issues": {}}' > "$INDEX_FILE" echo '{"base": null, "pm_agent": null, "issues": {}}' > "$INDEX_FILE"
else
echo '{"base": null, "pm_agent": null, "issues": {}}' > "$INDEX_FILE"
fi
if [ -n "$base_session_id" ] && [ "$base_session_id" != "null" ]; then if [ -n "$base_session_id" ] && [ "$base_session_id" != "null" ]; then
echo "Deleting opencode session: $base_session_id" echo "Deleting base session: $base_session_id"
opencode session delete "$base_session_id" 2>/dev/null || echo "Warning: Could not delete session from opencode (may already be deleted)" opencode session delete "$base_session_id" 2>/dev/null || echo "Warning: Could not delete base session"
fi fi
echo "Base session destroyed" if [ -n "$pm_agent_session_id" ] && [ "$pm_agent_session_id" != "null" ]; then
echo "Deleting PM agent session: $pm_agent_session_id"
opencode session delete "$pm_agent_session_id" 2>/dev/null || echo "Warning: Could not delete PM agent session"
fi
echo "Base and PM agent sessions destroyed"
else else
echo "Error: destroying base session requires --base -y" >&2 echo "Error: destroying base session requires --base -y" >&2
exit 1 exit 1