Skip to content

v3.9.0 — Кросс-платформенный порт: macOS, Linux и Windows

Choose a tag to compare

@Yahor777 Yahor777 released this 07 Jul 14:40

🌊 RepoPilot Bridge 3.9.0 — теперь на Windows, macOS и Linux

Главный релиз: RepoPilot Bridge стал кросс-платформенным. Теперь он одинаково хорошо работает на Windows, macOS и Linux. PowerShell-скрипты остались для Windows, а рядом появились нативные bash-скрипты для macOS/Linux — две параллельные версии в одном репозитории.

При запуске repopilot теперь появляется красивая анимация моря с закатом и отливом — работает на всех трёх системах с автоматическим определением цветовой поддержки.


🖥️ Кросс-платформенное ядро

  • Авто-детекция ОС через sys.platform — сервер сам определяет Windows или POSIX.
  • Команды исполняются через cmd.exe на Windows и /bin/sh -c на macOS/Linux.
  • Метасимвольный фильтр адаптирован под семантику оболочки: на POSIX блокируются backticks и $(...), но % и ^ (не являющиеся метасимволами sh) больше не дают ложных срабатываний.
  • Расширены блок-листы опасных команд для macOS/POSIX: sudo, dd of=/dev/, mkfs, diskutil eraseDisk, launchctl bootout, defaults write, csrutil, nvram, pmset, fork-бомба :(){:|:&};:, > /dev/sd*, killall системных процессов, рекурсивные chmod/chown на системных путях.

📜 Новая POSIX-обвязка (bash, параллельно с PowerShell)

Файл Назначение
start.sh Менеджер сессий (TUI): выбор проекта, режима, запуск uvicorn + туннеля, генерация промптов
install.sh Установщик: поиск Python (Homebrew/python.org), venv, шим ~/.local/bin/repopilot, ярлык .command
doctor.sh Диагностика: все эндпоинты в read_only/autopilot/full, проверка POSIX-блокировок
uninstall.sh Деинсталляция: удаление runtime, конфига, шима, ярлыка, чистка PATH
bootstrap.sh One-shot установка: curl | bash

Кросс-платформенное управление процессами: PID через $! + фолбэки на pgrep/lsof/fuser/taskkill/netstat (для Windows Git Bash, где нет pgrep). UTF-8-safe HTTP через curl --data-binary @tmpfile.

🌅 Анимация моря с закатом

  • Новый scripts/ocean.py: море с волнами, закат, отлив, опускающееся солнце, баннер RepoPilot.
  • 4 цветовых режима с autodetect: truecolor (24-bit), 256-color, 16-color, монохром.
  • На Windows 10+ включает VT-обработку через ctypes, чтобы ANSI рендерился в cmd.exe.
  • Интегрирована в start.sh и start.ps1. Отключается через REPOPILOT_NO_SPLASH=1.
  • Режимы: --long, --loop, --no-banner, --test.

🧪 Smoke-тест без Mac

  • Dockerfile.smoke + scripts/smoke-test.sh: Linux-контейнер прогоняет doctor.sh, проверяя POSIX-ветку run_cmd и блок-листы без реального Mac.

🛡️ Усиление

  • start.sh и doctor.sh проверяют наличие curl и git с подсказками установки.
  • Нет bash 4+ фич — совместимо с macOS default bash 3.2.
  • mktemp имеет фолбэки для GNU/BSD различий.

📚 Документация

  • README.md, QUICKSTART.md, TROUBLESHOOTING.md теперь покрывают все три ОС: Homebrew, pbcopy/open, пути Homebrew на Apple Silicon vs Intel, Gatekeeper для .command, XDG-пути на Linux.
  • .editorconfig добавляет правила [*.{sh,command}] (LF, UTF-8 без BOM).

📦 Установка

macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/Yahor777/repopilot-bridge/v3.9.0/bootstrap.sh | bash

Windows (PowerShell):

powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/Yahor777/repopilot-bridge/v3.9.0/bootstrap.ps1 | iex"

✅ Проверено

  • doctor.sh: 44/44 проверок прошли (HTTP, эндпоинты, блокировки sudo/dd/launchctl, метасимволы, изоляция, секреты, commit).
  • POSIX-ветка run_cmd: 22/22 проверки (имитация macOS).
  • Windows-ветка cmd.exe не сломана: /run echo → exit 0.
  • bash -n на всех 6 .sh + py_compile — без ошибок.
  • ocean.py во всех 4 цветовых режимах.