Skip to content

RU Windows and macOS

VVG-web edited this page Oct 13, 2026 · 4 revisions

Windows и macOS

Wiki · см. также: Если что-то не так · Карточка

Кит разрабатывается на Linux и проверяется на каждый push на Linux (Python 3.11–3.14), Windows (windows-latest; Python 3.12 блокирует выпуск, 3.14 пока нет) и macOS (macos-latest; выпуск пока не блокирует). Проект одновременно открывают люди на Windows, macOS и Linux, поэтому правило для имён — самое строгое из трёх.

Имена файлов должны проходить везде

Правило Почему
без < > : " / \ | ? * Windows их не принимает
не CON, NUL, COM1, … зарезервированы в Windows
не больше 255 байт на имя (кириллица — два байта на букву) пределы macOS и Linux
путь от корня проекта до 200 символов предел Windows в 260 с запасом
имена в одной папке различаются не только регистром macOS и Windows считают A и a одним файлом
буквы в NFC macOS создаёт имена в NFD; то же слово тогда выглядит для Linux иначе
без точки или пробела в конце Windows их отрезает

Проверяет kit:doctor, чинит kb:names (предпросмотр, затем --apply). Пути зеркал синхронизация сокращает сама, когда глубокая ветка Confluence не помещается.

Windows

  • Запуск: двойной щелчок по start-aurora.bat. Он ищет Python, предлагает поставить недостающее и открывает панель.
  • Python: запускатели пробуют python и py, прежде чем доверять заглушке; нужны Python 3.11+ и git (3.10 работает с предупреждением).
  • Установка недостающего: start-aurora.bat предлагает winget install -e --id Python.Python.3.14 и winget install -e --id Git.Git (сначала спросит, [y/N]). Нужен доступный winget; без него файл напечатает страницы загрузки (python.org, git-scm.com) и остановится. После установки через winget закройте окно и запустите файл снова: новый PATH виден только новым окнам.
  • Ярлык Microsoft Store: python.exe из WindowsApps открывает магазин вместо запуска Python. Файл проверяет интерпретатор запуском, а не поиском в PATH, поэтому такой ярлык за Python не принимается.
  • Открытый файл нельзя заменить. Windows не даёт заменить файл, который читает другой процесс. Атомарные записи движка (манифест, векторный индекс, настройки) ждут и повторяют попытку, а не падают.
  • pid чужого процесса. Блокировка пишущего прогона спрашивает у системы через Windows API, жив ли владелец, и никогда не шлёт ему сигнал («сигнал 0» в Windows остановил бы процесс).
  • Кодировка. Консоль и каналы в cp1251/cp1252; движок переключает свой вывод и вывод дочерних процессов на UTF-8, поэтому русский текст и — не теряются.
  • Пути в собственных отчётах движка и в панели везде с /, какая бы ни была система.
  • Символьные ссылки требуют привилегии. Установщик скиллов копирует скиллы в ~/.claude/skills и, если не смог создать ссылку для другого harness, говорит об этом и продолжает.
  • Команды python3 нет. Python с python.org и из winget ставит python и запускатель py, но не python3; python3 из WindowsApps — заглушка магазина. Запускайте скрипты как py -3 script.py или python script.py. Хуки git и start-aurora.bat проекта выбирают интерпретатор запуском (python3, python, py -3); версию затем проверяет сам движок и останавливается с сообщением, если она слишком старая. Хуки git, start-aurora.bat и start-aurora.command кита и start-aurora.bat проекта ищут Python 3.10 и новее (start-aurora.command проекта версию не проверяет: движок сам останавливается с сообщением); если линтер завершился любым кодом, кроме 0 и 1 (например, остановился на версии, упал с трассировкой или проектный kb_lint.py старее хука и не знает аргумента), хук pre-commit печатает собственный вывод линтера и строку «линтер завершился кодом N — см. вывод выше»; проход по коммиту при этом уступает полному проходу по базе (храповик и режим block действуют, как прежде), а если и он не сработал, проверка пропускается и коммит не блокируется (если в выводе названа версия Python, поставьте Python 3.11+). У проверки секретов того же хука (aurora_hooks.py --scan-secrets) свои коды выхода: 1 — в добавленных строках настроек, навыков, ботов или mcp.json найден секрет и коммит остановлен (снятый храповик и кнопка «зафиксировать всё равно» его не снимают, только git commit --no-verify), любой другой ненулевой код — сбой самой проверки, коммит не блокируется.
  • Хукам git нужен Git for Windows. Хуки — скрипты sh, их выполняет оболочка из Git for Windows; без неё они не запустятся. start-aurora.bat проверяет наличие git.
  • Нет бита исполнения и 0600. В NTFS нет бита исполнения, поэтому скрипты запускают через py -3. Режим 0600 у файлов с ключами и токенами в Windows ничего не защищает (права берутся от папки): держите проект в профиле пользователя, а не в общей папке.
  • Концы строк. Выгрузка git с autocrlf превращает файлы кита в CRLF; движок читает их как текст, так что это безвредно.
  • Разные диски. Проект на D: при оболочке на C: работает: движок не предполагает один диск.

macOS

  • start-aurora.command блокируется Gatekeeper в первый раз: правая кнопка → Открыть.
  • Системный Python — 3.9 (из Xcode command line tools) и он не поддерживается: его нельзя обновить, а движок сразу останавливается с сообщением, что поставить. Поставьте Python 3.11+, не трогая системный: brew install python@3.14, установщик с python.org (затем откройте Install Certificates.command) или uv python install 3.14, если нет прав администратора. Запускатель распознаёт заглушку «Xcode command line tools» как «не Python» и говорит, что поставить.
  • Кнопка «Обновить кит» и старый Python. До записи любых файлов кнопка читает минимальный Python у НОВОЙ версии; если панель работает на более старом, она отказывает с подсказкой установки и ничего не меняет. Перезапуск панели сначала проверяет, что новая версия стартует на этом интерпретаторе: не стартует — старая панель остаётся жить, а в сообщении виден хвост ошибки вместо обещания, что панель вернётся. Если не запустился сам doctor на «Здоровье», страница показывает причину, а не пустой список блокеров. Если перезапуск отказал уже после обновления, карточка «О программе» возвращает кнопку и постоянно, пока вы на странице, показывает причину отказа (а не только тост на несколько секунд): старая панель жива, и карточка так и говорит. Следующий шаг назван в самой причине: старый Python — запустите панель заново из терминала под более новым интерпретатором командой aurora_cockpit.py --restart (простой запуск лишь откроет старую панель); ошибка в самом коде новой версии (она названа ошибкой кода, а не «старым Python») — повторный перезапуск откажет, пока кит не исправлен или не откачен. Если новая панель не поднялась за отведённое время, старая уже остановлена: карточка так и пишет и просит запустить панель заново из терминала.
  • Файловая система без учёта регистра. Переименование raw → Raw делается в два шага: mv raw tmp && mv tmp Raw.
  • Имена NFD. macOS хранит имена с диакритикой и кириллицей в разложенном виде; kit:doctor их находит, а kb:names нормализует.

Что гарантируют тесты

Тот же набор идёт на Windows в CI тремя параллельными частями. Он покрывает блокировки, атомарные записи, пути с \, каналы в UTF-8, файлы с кириллическими именами под .gitignore, терминал, который на деле NUL, и проекты на другом диске. Проблема на Windows, которой нет в этом списке, — ошибка; заведите, пожалуйста, issue.


Эта wiki собирается из папки wiki/ репозитория — правьте страницы там, изменения, сделанные здесь, будут перезаписаны. · Home

Clone this wiki locally