fix(kugetsu): add fix_session_permissions command for cmd_doctor #87
@@ -546,12 +546,16 @@ cmd_logs() {
|
|||||||
|
|
||||||
cmd_doctor() {
|
cmd_doctor() {
|
||||||
local fix=false
|
local fix=false
|
||||||
|
local fix_permissions=false
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
--fix)
|
--fix)
|
||||||
fix=true
|
fix=true
|
||||||
;;
|
;;
|
||||||
|
--fix-permissions)
|
||||||
|
fix_permissions=true
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -649,6 +653,40 @@ cmd_doctor() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$fix_permissions" = true ]; then
|
||||||
|
echo ""
|
||||||
|
echo "Fixing session permissions..."
|
||||||
|
fix_session_permissions
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
fix_session_permissions() {
|
||||||
|
local opencode_db="${OPENCODE_DB:-$HOME/.opencode/opencode.db}"
|
||||||
|
|
||||||
|
if [ ! -f "$opencode_db" ]; then
|
||||||
|
echo "[ERROR] opencode database not found: $opencode_db"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local base_session_id=$(get_base_session_id)
|
||||||
|
local pm_agent_session_id=$(get_pm_agent_session_id)
|
||||||
|
|
||||||
|
local PERMISSION_JSON='[{"permission":"question","pattern":"*","action":"deny"},{"permission":"plan_enter","pattern":"*","action":"deny"},{"permission":"plan_exit","pattern":"*","action":"deny"},{"permission":"external_directory","pattern":"*","action":"allow"}]'
|
||||||
|
|
||||||
|
if [ -n "$base_session_id" ] && [ "$base_session_id" != "null" ]; then
|
||||||
|
echo "Updating base session permissions: $base_session_id"
|
||||||
|
sqlite3 "$opencode_db" "UPDATE session SET permission = '$PERMISSION_JSON' WHERE id = '$base_session_id';"
|
||||||
|
echo "[OK] Base session permissions updated"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$pm_agent_session_id" ] && [ "$pm_agent_session_id" != "null" ] && [ "$pm_agent_session_id" != "None" ]; then
|
||||||
|
echo "Updating PM agent session permissions: $pm_agent_session_id"
|
||||||
|
sqlite3 "$opencode_db" "UPDATE session SET permission = '$PERMISSION_JSON' WHERE id = '$pm_agent_session_id';"
|
||||||
|
echo "[OK] PM agent session permissions updated"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Session permissions fix complete"
|
||||||
}
|
}
|
||||||
|
|
||||||
DEBUG_MODE=false
|
DEBUG_MODE=false
|
||||||
|
|||||||
Reference in New Issue
Block a user