Запись 43. Битва титанов: как я стравил Qwen с Antigravity
⏱️ Время: 25 сентября 2026, 01:35 — 01:50 (~15 минут)Главная ловушка вайб-кодинга с сильными агентами — так называемая «галлюцинация компетентности». Агент выдает безупречные архитектурные документы, с суровым лицом сыплет терминами («Zero-Trust песочница», «RFC 9106 тест-векторы»), пишет 382 теста, и все они победно горят зеленым.
Но если ты сам не зубришь синтаксис Dart и C++, слепо верить одной нейросети нельзя ни в коем случае. Особенно в криптографии и сетевой безопасности.
Я взял свежий коммит релиза v0.8.4, выгрузил ключевые файлы и натравил на них модель Qwen с жестким запросом: «Найди все уязвимости, разбери архитектуру под микроскопом и скажи мне горькую правду».
Ответ Qwen оказался сокрушительным и невероятно профессиональным:
- Тихий обход проверки (Fail-Open): В файле
ssh_client_service.dartпри отсутствии коллбэка проверки отпечатка из UI агент просто писал предупреждение в лог и… возвращалtrue. То есть при любой ошибке интерфейса соединение устанавливалось вслепую — классический риск Man-in-the-Middle! - Бинарный хэш и наивный UTF-8: Библиотека
dartssh2передает отпечаток в виде 32 сырых байт SHA-256. Агент написалutf8.decode(fingerprint). В реальности это приводило либо к падению сFormatException, либо к кракозябрам вместо канонического Base64. Синтетические тесты были зелеными лишь потому, что мок-тест сам генерировал UTF-8 строку! - Иллюзия зануления памяти в управляемом Dart: Заявление о «гарантированном занулении» на уровне сборщика мусора без
dart:ffiбыло иллюзией — сборщик мусора оставляет копии строк в куче.
Запись 44. Триумф перекрестного аудита: рефакторинг на Fail-Closed и релиз v0.8.5
⏱️ Время: 25 сентября 2026, 03:10 — 03:30 (~20 минут)Мы не стали спорить с критикой. Мы взяли предложенный план и системно переработали ядро:
- Абсолютный Fail-Closed: Любая ошибка верификации, отсутствие коллбэка или сбой сети теперь возвращают строгий
false. Никаких молчаливых подключений. - Каноничный Base64-дайджест OpenSSH: Исправлен парсер отпечатков
dartssh2— вместо паденияutf8.decodeна сырых байтах внедрено автоматическое кодирование SHA-256 хэша в стандартный формат OpenSSH (SHA256:...). - Гигиена памяти на Uint8List: Секреты переведены из неизменяемых
Stringв изменяемые байтовые массивы с занулением.fillRange(0, length, 0)и вызовомSecretKey.destroy(). - Песочница плагинов JSON-RPC 2.0: Белый список методов и защита от null-байтов (
\x00).
После публикации v0.8.5 я снова отправил кодовую базу в Qwen.
Из повторного вердикта Qwen:
«✅ Критическая уязвимость MitM: ИСПРАВЛЕНА. Логика onVerifyHostKey реализована безупречно: правильная кодировка отпечатка OpenSSH, строгий принцип Fail-Closed, безопасная обработка исключений.
⚖️ Обновленный вердикт: Проект продемонстрировал выдающуюся скорость реакции и качество исправлений. Техническая реализация базовой защиты SSH-соединения теперь соответствует современным стандартам безопасности. Отличная работа.»
Запись 45. Битва за органику: Long-Tail руководства и оптимизация сайта
⏱️ Время: 25 сентября 2026, 10:15 — 10:45 (~30 минут)Когда ядро превратилось в цитадель, мы устроили второй независимый аудит от Qwen — на этот раз по поисковой оптимизации и краулингу:
- Ликвидировали мертвые зоны 403 Forbidden в родительских папках Astro через статические 301-редиректы.
- Исключили служебные маршруты
/admin/и/api/изrobots.txtи карты сайта. - Внедрили стратегию Long-Tail контент-маркетинга: опубликовали 3 прикладных руководства на русском и английском (защита от
rm -rf, настройка своего E2EE-релея и конфигурация MCP для Cursor/Claude).
Главный вывод Хроники:
Будущее разработки через ИИ лежит в перекрестном состязательном взаимодействии нескольких независимых нейросетей (Red Team vs Blue Team) под системным надзором человека-архитектора. 411 зеленых тестов, 0 уязвимостей, 100% честность перед пользователями.