Загрузка...

Cursor под капотом: изоляция чатов, ловушки кастомных моделей и удаление соавтора из Git

Cursor под капотом: изоляция чатов, ловушки кастомных моделей и удаление соавтора из Git

При ежедневной разработке в Cursor с использованием чатов и фоновых агентов разработчик неизбежно упирается в неочевидную механику самого редактора: контекст переполняется старыми диффами, скорость генерации падает, сторонние модели через OpenRouter не получают заявленный контекст в миллион токенов, а кнопка коммита упорно засоряет историю чужими соавторами. Ниже — разбор того, как эти механизмы работают на уровне файловой системы и API, и как настроить редактор под чистый рабочий процесс.

Изоляция диалогов: что на самом деле делает кнопка Archive

В боковой панели Cursor рядом с каждым диалогом находится кнопка Archive (горячая клавиша Ctrl+Alt+Backspace или Cmd+Alt+Backspace). В интерфейсе она выглядит как удаление, но работает принципиально иначе.

В процессе обсуждения задачи диалог обрастает контекстом: редактор подтягивает куски открытых файлов, промежуточные диффы, вывод терминала и историю правок. Когда размер треда переваливает за 50–80 тысяч токенов, начинаются три проблемы:

  1. Деградация ответов: модель начинает путаться в старых версиях функций, которые вы переписали двадцать минут назад.
  2. Накладные расходы: каждый новый вопрос повторно отправляет весь накопленный хвост сообщений, впустую сжигая квоты быстрой подписки или баланс API.
  3. Задержки: генерация первого токена (TTFT) увеличивается пропорционально размеру передаваемого контекста.

Кнопка Archive не стирает диалог из базы. Она отсекает активное контекстное окно. Диалог сохраняется в локальной SQLite-базе редактора в директории пользовательских данных (~/.config/Cursor/User/workspaceStorage/ в Linux или ~/Library/Application Support/Cursor/User/workspaceStorage/ в macOS).

Вы можете в любой момент поднять старый диалог через историю (Ctrl+Alt+L / Cmd+Alt+L), но для текущей задачи создается чистый тред с нулевым контекстом. Это базовая гигиена работы: одна задача или баг — один изолированный диалог.

Подключение сторонних моделей через OpenRouter и ловушка контекстного окна

Штатная подписка Pro за $20 дает 500 быстрых запросов к флагманским моделям, после чего переводит запросы в медленную очередь. Чтобы не зависеть от пула Cursor, редактор поддерживает режим Bring Your Own Key (BYOK).

Самый гибкий сценарий — подключение через шлюз OpenRouter, который позволяет роутить запросы на любые доступные на рынке LLM:

  1. Открываем Cursor Settings → Models.
  2. В блоке OpenAI API Key разворачиваем поле Override Base URL и указываем:
    https://openrouter.ai/api/v1
  3. В поле ключа вставляем токен OpenRouter вида sk-or-v1-....
  4. В списке моделей нажимаем Add Model и вписываем точный идентификатор, например deepseek/deepseek-chat или zhipu/glm-5.3.

Почему контекст в 1M токенов не работает в Cursor

Здесь кроется критическое архитектурное ограничение, о которое спотыкаются разработчики. Если подключить модель вроде Zhipu GLM 5.3 с заявленным контекстным окном в 1 миллион токенов, скормить ей крупный репозиторий через интерфейс Cursor всё равно не удастся.

Причина — на стороне клиента Cursor. Редактор самостоятельно формирует и токенизирует исходящий payload перед отправкой в сеть. Для кастомных строковых идентификаторов, добавленных вручную, в клиентской части редактора зашит жесткий внутренний лимит (hardcap), обычно не превышающий 100k–200k токенов.

Даже если шлюз OpenRouter и удаленная модель технически готовы принять миллион токенов, сам Cursor просто не соберет запрос такого объема и обрежет контекст на клиенте. Поэтому сторонний API в Cursor — это способ оптимизировать расходы и получить доступ к специализированным кодерам (вроде DeepSeek), но не инструмент для безлимитного скармливания гигабайтов кода.

Удаление «Co-authored-by: Cursor» из Git-коммитов

Одна из самых раздражающих деталей при работе со встроенным в Cursor Git-интерфейсом — автоматическая вставка соавтора в сообщение коммита:

Co-authored-by: Cursor <cursor@cursor.com>

Почему правила в .cursorrules здесь бесполезны

Многие пытаются решить проблему добавлением инструкций в системный промпт или файл .cursorrules: «Никогда не добавляй co-authored-by в коммиты». Это не работает.

Файлы .cursorrules влияют исключительно на текст, который генерирует нейросеть в чате или в окне Composer. Кнопка «Commit» в интерфейсе панели Source Control вызывает не LLM, а внутренний обработчик расширения Git в самом редакторе. Этот обработчик подставляет трейлер напрямую в буфер сообщения коммита перед выполнением команды git commit, полностью игнорируя любые правила для нейросети.

Как отключить автоматического соавтора

Есть два надежных способа решить проблему раз и навсегда.

1. Отключение в настройках интерфейса:

В настройках редактора откройте Cursor Settings (через палитру или сочетанием Ctrl+, / Cmd+,). В левом меню перейдите в раздел Git & PRs и найдите блок Attribution:

  • Commit Attribution (Mark Agent commits as ‘Made with Cursor’) — переключите тумблер в OFF.
  • PR Attribution (Mark pull requests as made with Cursor) — переключите тумблер в OFF, если не хотите видеть автоматические подписи редактора в описаниях Pull Request.

В конфигурационном файле settings.json за это отвечают параметры атрибуции Git:

{
    "cursor.git.includeCoAuthor": false,
    "cursor.general.attribution": false
}

2. Защита на уровне Git-хуков:

Если после обновлений редактора настройка сбрасывается или коммиты выполняются через терминал агента, добавьте хук prepare-commit-msg в репозиторий (.git/hooks/prepare-commit-msg):

#!/bin/sh
# Удаляем строки соавторства Cursor из сообщения коммита
if [ -f "$1" ]; then
    sed -i '/[Cc]o-authored-by:.*[Cc]ursor/d' "$1"
fi

Сделайте файл исполняемым:

chmod +x .git/hooks/prepare-commit-msg

Чтобы хук работал во всех проектах на машине, задайте глобальный путь к хукам в конфигурации Git:

git config --global core.hooksPath ~/.git-hooks

Privacy Mode: изоляция исходного кода от обучающих выборок

При работе с клиентскими проектами и закрытыми репозиториями критично проверить режим приватности в Cursor Settings → General → Privacy Mode.

По умолчанию редактор может сохранять телеметрию сессий и фрагменты кода для улучшения собственных моделей автодополнения (Cursor Tab). Включение Privacy Mode блокирует любое сохранение кода и запросов на серверах разработчиков Cursor: данные проксируются поставщикам моделей без логирования. А при использовании собственного API-ключа (BYOK) запросы уходят напрямую к вашему провайдеру, исключая утечку приватной кодовой базы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *