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>
This commit is contained in:
ahauimix
2026-07-26 10:22:56 +08:00
parent 4bc9629a09
commit 0238aa7c02
214 changed files with 121312 additions and 388 deletions

176
docs/apps/cursor/RUNBOOK.md Normal file
View File

@@ -0,0 +1,176 @@
# 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` было жёстко:
```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 мёртв, хотя прямой интернет живой.
Подтверждение источника:
```bash
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)** или:
```bash
open -a "Cursor" "$HOME/Library/Application Support/Cursor/User/settings.json"
```
2. Убрать / заменить:
```json
"http.proxy": "",
"http.proxySupport": "off"
```
Либо **удалить** ключи `http.proxy` и `http.proxySupport` целиком.
3. **Cmd+Q** (полностью закрыть Cursor) → запустить снова.
4. Опционально: если Network Diagnostics показывает **HTTP/2: Success**, убрать костыль:
```json
"http.disableHttp2": false
```
(или удалить ключ) — раньше `true` ставили как обход для РФ; вне РФ он часто не нужен.
5. Проверить, что **1090 никто не слушает** (ожидаемо пусто, если прокси не нужен):
```bash
lsof -nP -iTCP:1090 -sTCP:LISTEN || echo "1090 free"
```
---
## Кто подсовывает SOCKS — чеклист (2 минуты)
```bash
# 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.json``http.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](./README.md)), не 1090.
Включить на время:
```json
"http.proxy": "socks5://127.0.0.1:10809",
"http.proxySupport": "override"
```
Выключить:
```json
"http.proxy": "",
"http.proxySupport": "off"
```
Скрипты выхода: [SSH_EXIT_MODES.md](../../connectivity/vpn/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 — рабочий фикс.*