Files
local_machine/docs/apps/cursor/RUNBOOK.md
ahauimix 0238aa7c02 Add Object B and self-growth canons with Cursor ledger rules; refresh connectivity and VPN runbooks.
Track day metrics/anamnesis HARD rules under .cursor/rules and personal docs so each screening updates days/{KIN}, dynamics, and big-data ledger.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-26 10:22:56 +08:00

6.6 KiB
Raw Blame History

Runbook: Cursor не подключается (Agent / Chat / API)

Симптом: сеть на Mac работает, браузер открывает сайты, DNS OK, но Cursor — Agent, Chat, Marketplace, auth — падают или «не подключается» после смены страны / сети.


Показательная диагностика (2026-07, смена страны → ID)

Что показала Network Diagnostics Cursor

Проверка Результат
Интернет OK
DNS OK
HTTP/2 OK
SSL / API / Chat / Agent FAIL

Единственная настоящая ошибка в логах

Failed to establish a socket connection to proxies: SOCKS 127.0.0.1:1090

За 2 суток (сессии 20260709T150616, 20260712T121524, 20260712T122718) — тысячи повторов этой ошибки в:

  • Cursor Structured Logs*.log
  • renderer.log
  • cursor-sentry-events*.log
  • Agent Exec / Indexing & Retrieval

Типичные вызовы: refreshAuthentication, getEmailAndSignUpType, GetEffectiveUserPlugins, GetGithubInstallations, unary AI connect.

Причина (не сеть и не «Индонезия»)

В ~/Library/Application Support/Cursor/User/settings.json было жёстко:

"http.proxy": "socks5://127.0.0.1:1090",
"http.proxySupport": "override"

override = игнорировать системный прокси macOS и всегда гнать HTTP Cursor через указанный SOCKS.

После переезда локальный SOCKS на 1090 (старый SSH Dynamic Forward / clash / xray и т.п.) не слушал, порт пуст → весь API Cursor мёртв, хотя прямой интернет живой.

Подтверждение источника:

grep -R "127.0.0.1:1090" ~/Library/Application\ Support/Cursor 2>/dev/null
# → User/settings.json: "http.proxy": "socks5://127.0.0.1:1090"

Отключение прокси в Cursor помогло — это и есть фикс.


Быстрый фикс (локальный выход, другая страна)

  1. Открыть Cursor → Settings → Open User Settings (JSON) или:
open -a "Cursor" "$HOME/Library/Application Support/Cursor/User/settings.json"
  1. Убрать / заменить:
"http.proxy": "",
"http.proxySupport": "off"

Либо удалить ключи http.proxy и http.proxySupport целиком.

  1. Cmd+Q (полностью закрыть Cursor) → запустить снова.

  2. Опционально: если Network Diagnostics показывает HTTP/2: Success, убрать костыль:

"http.disableHttp2": false

(или удалить ключ) — раньше true ставили как обход для РФ; вне РФ он часто не нужен.

  1. Проверить, что 1090 никто не слушает (ожидаемо пусто, если прокси не нужен):
lsof -nP -iTCP:1090 -sTCP:LISTEN || echo "1090 free"

Кто подсовывает SOCKS — чеклист (2 минуты)

# 1. Env (обычно пусто — Cursor берёт settings.json)
env | egrep -i 'proxy|http_proxy|https_proxy|all_proxy|no_proxy' || echo "(none)"

# 2. Явный 1090 в профиле Cursor
grep -R "127.0.0.1:1090" ~/Library/Application\ Support/Cursor 2>/dev/null | grep -v Cache_Data

# 3. settings.json
cat ~/Library/Application\ Support/Cursor/User/settings.json

# 4. Системный прокси macOS (не источник, если http.proxySupport=override)
networksetup -getsocksfirewallproxy "Wi-Fi"
networksetup -getwebproxy "Wi-Fi"
networksetup -getsecurewebproxy "Wi-Fi"
networksetup -getautoproxyurl "Wi-Fi"

# 5. Слушает ли кто-то 1090
lsof -nP -iTCP:1090 -sTCP:LISTEN || echo "(nothing on 1090)"

# 6. Логи за сегодня
grep -R "SOCKS 127.0.0.1:1090" ~/Library/Application\ Support/Cursor/logs --include='*.log' 2>/dev/null | tail -5
Источник Роль
settings.jsonhttp.proxy + override Главный виновник (этот инцидент)
Env ALL_PROXY / HTTPS_PROXY Редко; Cursor может подхватить при запуске из терминала
Системный SOCKS / PAC Только если http.proxySupport не override / не off
Порт 1090 слушает процесс Нужен только когда осознанно гоните Cursor через локальный SOCKS

Правило после смены страны / сети

Сеть Cursor proxy
Прямой интернет работает (ID, EU, …) http.proxySupport: off, без http.proxy
Нужен RU→DO (из РФ / DPI) Поднять SOCKS 10809, затем socks5://127.0.0.1:10809 + override только пока туннель жив

Не держать мёртвый 127.0.0.1:1090 (или любой порт) в settings навсегда.

Рекомендуемый порт для Cursor-туннеля в этом репо: 10809 (см. README.md), не 1090.

Включить на время:

"http.proxy": "socks5://127.0.0.1:10809",
"http.proxySupport": "override"

Выключить:

"http.proxy": "",
"http.proxySupport": "off"

Скрипты выхода: SSH_EXIT_MODES.md — после exit-via-local.sh обязательно снять proxy в Cursor.


Симптом → действие

Симптом Действие
Diagnostics: DNS/HTTP2 OK, API FAIL; лог SOCKS 127.0.0.1:… Снять http.proxy / override → Cmd+Q
lsof :1090 пусто + proxy в settings То же — прокси прописан, слушателя нет
Нужен выход с IP DO exit-via-ru-do.sh + proxy на 10809, не 1090
После фикса всё ещё FAIL Новый Network Diagnostics + свежие логи без строки SOCKS

Логи

~/Library/Application Support/Cursor/logs/<timestamp>/

Искать: SOCKS 127.0.0.1, Failed to establish a socket connection to proxies, ConnectError.


Инцидент зафиксирован: 2026-07-12. Отключение прокси в settings.json — рабочий фикс.