fix(kugetsu): add fix_session_permissions command for cmd_doctor #93

Merged
shoko merged 3 commits from fix/issue-36-permissions-v2 into main 2026-04-02 04:37:39 +02:00
Showing only changes of commit b2f2df7b06 - Show all commits

View File

@@ -656,6 +656,39 @@ else
fi fi
echo "" echo ""
# Test E9: fix_session_permissions has valid permission JSON
echo "--- Test: fix_session_permissions has valid permission JSON ---"
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 python3 -c "import json; json.loads('$PERMISSION_JSON')" 2>/dev/null; then
pass "fix_session_permissions has valid permission JSON"
else
fail "fix_session_permissions permission JSON is invalid"
fi
echo ""
# Test E10: fix_session_permissions SQL UPDATE syntax is valid
echo "--- Test: fix_session_permissions SQL UPDATE syntax ---"
if python3 -c "
import sqlite3
conn = sqlite3.connect(':memory:')
cursor = conn.cursor()
cursor.execute('CREATE TABLE session (id TEXT, permission TEXT)')
cursor.execute('INSERT INTO session (id, permission) VALUES (?, ?)', ('test_id', 'original'))
cursor.execute('UPDATE session SET permission = ? WHERE id = ?', ('$PERMISSION_JSON', 'test_id'))
conn.commit()
cursor.execute('SELECT permission FROM session WHERE id = ?', ('test_id',))
result = cursor.fetchone()
if result and 'external_directory' in result[0]:
print('OK')
else:
print('FAIL')
" 2>/dev/null | grep -q OK; then
pass "fix_session_permissions SQL UPDATE syntax is valid"
else
fail "fix_session_permissions SQL UPDATE syntax failed"
fi
echo ""
# Cleanup # Cleanup
cleanup cleanup