hermes-hub/src/antigravity_provider
ochenstarik-ui 7fb8c6a6c5 feat(ci): матрица Windows + Linux; распаковка обновления ограничена каталогом
P1 после зелёного main.

1. CI-матрица. Обе джобы стояли на windows-latest, и это дорого обошлось:
   инвариант A37 не держался на Windows, а четыре теста молча предполагали
   Linux. Прогон на одной системе не показывал ни того, ни другого. Проект
   работает на Linux и активно получает Linux-правки — теперь обе системы
   проверяются одинаковым набором.

2. Zip-slip из аудита НЕ ВОСПРОИЗВОДИТСЯ — измерено, а не принято на веру.
   Архив с "../", с абсолютным путём и с записью-ссылкой распакован через
   zipfile.extractall: ничего за пределы каталога не вышло, абсолютный путь
   стал относительным, "../" схлопнулись, а запись-ссылка легла обычным
   файлом. CPython санирует пути сам.

   Но это свойство реализации, а не обещание формата, и распаковка идёт в
   корень установки. Граница сделана собственным инвариантом: каждая запись
   проверяется до записи на диск, отклоняются абсолютные пути, выход через
   "..", ссылки и записи не-файлового типа. Инвариант закреплён тестом, а не
   оставлен на усмотрение стандартной библиотеки.

Тесты: 776 -> 777 passed, 2 skipped, 4 deselected. ruff check . чисто.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 19:01:30 +07:00
..
router fix(release,web): ворота публикации перестали пропускать всё подряд, /api/action — межсайтовые запросы 2026-09-03 19:01:30 +07:00
updater feat(ci): матрица Windows + Linux; распаковка обновления ограничена каталогом 2026-09-03 19:01:30 +07:00
__init__.py feat(state): harden snapshots quotas and routing 2026-08-21 00:03:50 +07:00
agy_subprocess.py feat(agy): A58 read-only eligibility state detection and owner patcher controls 2026-09-02 01:26:46 +07:00
antigravity_client.py feat: initialize standalone Hermes Hub 2026-08-20 00:17:11 +07:00
cloudcode.py feat: initialize standalone Hermes Hub 2026-08-20 00:17:11 +07:00
console_encoding.py fix(security): граница workspace держится одинаково на Windows и Linux 2026-09-03 19:01:30 +07:00
credentials.py fix(windows): чёрные окна консоли выскакивали каждую минуту 2026-08-31 19:39:12 +07:00
errors.py feat: initialize standalone Hermes Hub 2026-08-20 00:17:11 +07:00
hermes_plugin.py feat(a51): hub controls hermes - full real routing, bypass telemetry and truthful status 2026-08-31 18:53:55 +07:00
hermes_provider.py feat: initialize standalone Hermes Hub 2026-08-20 00:17:11 +07:00
models.py feat: initialize standalone Hermes Hub 2026-08-20 00:17:11 +07:00
oauth.py fix(oauth): preserve complete credentials and sync oauth_creds.json for Antigravity profiles (A20) 2026-08-23 23:09:58 +07:00
openai_compat.py feat: initialize standalone Hermes Hub 2026-08-20 00:17:11 +07:00
paths.py fix(profiles): пустые слоты появлялись сами, потому что запрос пути создавал каталог 2026-09-01 15:27:33 +07:00
runtime.py fix(router): correct spare assignment and error presentation 2026-08-20 17:21:30 +07:00
sanitizer.py feat(release): recovery stabilization, built-in updater, release gate, and v0.1.1 release pipeline 2026-08-20 16:29:35 +07:00
transform.py feat: initialize standalone Hermes Hub 2026-08-20 00:17:11 +07:00
version.py fix(antigravity): вход завершался успешно, а agy требовал войти снова 2026-09-01 10:37:27 +07:00