Claude Code снёс разработчику 48 218 рабочих файлов за 103 секунды
Задача была безобидной: пересобрать одну из изолированных копий проекта. Штатный скрипт сделать это на месте не мог, и агент написал собственный — удалить старую копию из временной папки. Скрипт честно пытался не заходить в связанные каталоги. Только на Windows функция проверки ссылок не видит директорные junction, поэтому скрипт аккуратно обошёл сами точки соединения и прошёл сквозь всё, что под ними. Прямо в живой проект.
Заодно под нож ушла история коммитов внутри .git, так что откатиться через git стало невозможно. Удалённого репозитория и бэкапа не было.
Самое человечное в этой истории — финал. Агент сам остановился и написал: «Крейг — остановись и прочитай. Я кое-что сломал». После чего выдал подробный отчёт о масштабах катастрофы. Не скрыл, не приукрасил, отчитался с точностью до секунды.
Мораль из двух половин. Первая для разработчиков: папка .git — не бэкап, а агенту с правом на массовое удаление нужны песочница и пробный прогон. Вторая для производителей агентов: честное «я сломал» — это хорошо, но лучше бы проверка срабатывала до удаления, а не после.
ИИ-кодер тихо выгружал чужие репозитории в облако — и зашифровал их своим ключом
Китайская Z.ai, та самая компания за моделями GLM, попалась на том, что её десктопный ассистент ZCode при каждом входе паковал рабочий каталог разработчика целиком и отправлял в облако Alibaba. Без спроса, без уведомления и без работающей кнопки «выключить».
Что именно уезжало
Разобрался в происходящем исследователь под ником ferstar. На его машине ZCode собрал из коммерческого репозитория на 345,5 МБ архив в 313 МБ — 42 411 файлов. Исходники и документация составили в нём меньшую часть: 86,6% объёма пришлось на каталог .git, то есть на полную историю правок. Git LFS — 196,1 МБ, объекты Git — ещё 102,2 МБ. Уезжал не код, который вы показываете заказчику, а весь след разработки: каждый коммит, каждая откаченная ветка, каждый случайно закоммиченный и потом удалённый ключ.
За одну сессию клиент сделал 62 захвата рабочего каталога. Счётчик неудачных отправок в момент наблюдения перещёлкнул с 564 на 565 — то есть попытки шли непрерывно. Удалить готовый архив вручную не помогало: ZCode делал новую копию и возобновлял загрузку.
Переключатель, который ничего не выключал
В настройках есть тумблер Repo Snapshot Indexing, и выглядит он как согласие на отправку. На деле он управлял только индексацией снимка на сервере — упаковку рабочего каталога и саму заливку он не останавливал. Политика конфиденциальности ZCode описывала сбор того, что пользователь отправляет в промпте, и об автоматических снимках рабочего пространства не упоминала вовсе.
Ключ остался у компании
Клиент запрашивал у zcode.z.ai учётные данные для хранилища, получал в ответ RSA-ключ, шифровал архив по AES-256-CTR, оборачивал симметричный ключ через RSA-OAEP-SHA256 и заливал результат в Alibaba Cloud OSS. Приватный ключ живёт на сервере Z.ai. Ни разработчик, ни сам клиент ZCode открыть загруженный архив уже не могут — расшифровать его способна только сама компания. Это переворачивает обычный порядок вещей: обещание «мы всё удалили» проверить невозможно в принципе, потому что содержимое собственного репозитория его владельцу больше не читается.
Реакция
Z.ai извинилась, заявила, что отправка файлов без согласия исправлена, а загруженные данные уничтожены и никогда не использовались для обучения моделей. Компания выложила исходники ZCode в открытый доступ, пообещала запустить процесс приёма сообщений об уязвимостях и платить за находки вознаграждение. Акции на торгах падали почти на 6%, но день закрыли ростом на 1,8%.
Осадок в другом. Вайб-кодинг устроен так, что инструменту отдают весь проект целиком — иначе он бесполезен. Доверие здесь не бонус, а условие работы, и проверить его у закрытого десктопного клиента нечем. ZCode оказался официальным харнессом для GLM-5.3, продуктом первого ряда, а не поделкой энтузиаста — и всё равно грузил чужие гит-истории в чужое облако, пока один человек не полез смотреть, что лежит у него в локальной папке.
Источники: Tom's Hardware, The Standard, Runtimewire
Я сделал GitDOS — эмулятор DOS с ИИ-помощником, и вот что из этого вышло
Как я объединил MS-DOS, GitHub и нейросети в одном проекте
Привет, Пикабу! Хочу рассказать про свой проект, над которым я работал последнее время. Это GitDOS — веб-приложение, которое позволяет запускать DOS прямо в браузере, хранить диск в репозитории GitHub и управлять всем этим голосом или через ИИ-ассистента.
Звучит как безумный эксперимент? Возможно. Но у меня получилось, и я хочу поделиться результатом.
С чего всё началось
Всё началось с ностальгии. Как и многие из вас, я вырос на DOS-играх: Doom, Duke Nukem 3D, Warcraft, Commander Keen... Потом были Windows 95, 98, XP, а старые игры остались где-то в прошлом.
Я пробовал эмуляторы, настраивал DOSBox, скачивал образы дисков. Но это всегда было муторно: нужно помнить команды, настраивать конфиги, монтировать диски... А если хотелось поиграть с другом по сети — начинался настоящий ад.
И тогда я подумал: а что, если сделать эмулятор, который будет работать как современный сервис? Чтобы диск хранился в облаке, настройки применялись автоматически, а интерфейс был дружелюбным даже для тех, кто не помнит команды DOS.
Что такое GitDOS и как он работает
GitDOS — это веб-приложение, которое я собрал на основе js-dos (эмулятор DOSBox, портированный в JavaScript). Но я добавил к нему три ключевые вещи:
1. GitHub как диск C:
Вместо того чтобы хранить образ диска локально, GitDOS использует реальный Git-репозиторий. Все файлы диска — это файлы в репозитории. Синхронизация происходит в реальном времени: меняешь файл в DOS — изменения летят на GitHub.
Зачем это нужно?
История изменений (можно откатиться к любой версии диска)
Доступ с любого устройства (просто открываешь браузер)
Бэкапы автоматические
Можно подключить дополнительные диски как папки в C:\DISKS\
2. ИИ-ассистент Claude
Это, пожалуй, самая безумная фишка. Внутри DOS работает команда AI, которая вызывает нейросеть Claude. Ассистент может:
Объяснять команды DOS
Писать BAT-файлы и программы
Помогать устанавливать игры и утилиты
Генерировать код на Turbo Pascal, C и других языках
При этом он работает прямо в терминале: ответы выводятся через ECHO, а команды (если включён авто-режим) выполняются автоматически.
3. Голосовое управление
Я добавил поддержку Web Speech API. Можно говорить команды голосом, и система их выполнит. Или задать вопрос ассистенту — он ответит голосом же (встроенный синтез речи).
Горячие клавиши:
ScrollLock — голосовая команда DOS
Pause/Break — голосовой вопрос ассистенту
ContextMenu — старт/стоп записи экрана
Это особенно удобно в полноэкранном режиме, когда клавиатура не нужна.
Технические детали
Если кому-то интересно, как всё это работает "под капотом":
js-dos v8 — движок эмуляции (лежит локально, без CDN)
GitHub API — для чтения/записи файлов и работы с git-объектами
Claude API — нейросеть, которая понимает DOS
WebRTC/WebSocket — для IPX-мультиплеера (игры по сети через интернет)
Git Data API — поддержка файлов до 100 МБ (веб-интерфейс GitHub режет на 25 МБ)
Важно: все токены (GitHub, Anthropic) хранятся только в localStorage браузера. В код и репозитории они не попадают. Безопасность — приоритет.
Какие проблемы я решил
Проблема 1: "Эмуляторы сложные"
Я сделал интерфейс в стиле Windows 98 — всё наглядно, есть кнопки вместо команд. Диск монтируется автоматически при открытии ссылки. Можно поделиться диском с другом: просто кидаешь ссылку, и у него открывается твой репозиторий в эмуляторе.
Проблема 2: "Игры не работают"
Я добавил GitDOS Store — каталог программ, откуда можно установить игры и утилиты одной командой INSTALL. Установка автоматически правит AUTOEXEC.BAT и CONFIG.SYS. Никаких танцев с бубном.
Проблема 3: "Не помню команды"
Встроенный ИИ-ассистент всегда под рукой. Спросил — получил ответ. Или вообще голосом сказал, что нужно сделать, — система выполнит.
Проблема 4: "Хочу играть с другом по сети"
IPX-мультиплеер работает через WebSocket-релей. Создаёшь комнату — друг подключается по коду. Играете в Doom, как в старые добрые.
Что можно сделать в GitDOS прямо сейчас
Запустить DOS в браузере — без установки, без регистрации
Подключить свой репозиторий — и работать с ним как с диском C:
Установить игры из каталога — несколько кликов, и всё готово
Попросить ИИ написать программу — описал задачу — получил работающий код
Играть по сети с друзьями — классический мультиплеер через интернет
Вести разработку прямо в DOS — компиляторы, редакторы, отладка
Пример: как я написал игру с помощью ИИ
Я решил проверить, насколько хорошо работает ассистент. Попросил его написать на Turbo Pascal игру "Змейка".
Вот что произошло:
Я написал AI напиши игру "Змейка" на Pascal
Ассистент создал файл SNAKE.PAS через директиву MAKE
Запустил компиляцию RUN: TPC SNAKE.PAS
Увидел ошибку в коде, исправил её
Снова скомпилировал — на этот раз успешно
Запустил игру — и она заработала!
Весь процесс занял около минуты. И это при том, что я не написал ни строчки кода руками. Только описывал, что нужно сделать, и смотрел на магию.
Это полезно? Я думаю, да
GitDOS может пригодиться:
Ретроэнтузиастам — играть в старые игры без установки виртуальных машин
Разработчикам — писать код на исторических языках и сразу видеть результат
Преподавателям — показывать студентам, как работали компьютеры до GUI
Коллекционерам — хранить свои старые проекты в Git и запускать их в любой момент
Что дальше?
Планов много:
Добавить поддержку большего количества языков программирования
Улучшить ИИ-ассистента (чтобы он лучше понимал контекст DOS)
Расширить каталог игр и утилит
Сделать ещё более удобный интерфейс для встраивания на другие сайты
Но в целом GitDOS уже работает и доступен всем желающим.
Заключение
Я сделал GitDOS, потому что сам хотел иметь такой инструмент. Простой, удобный, с современными технологиями, но при этом сохраняющий дух старого доброго DOS.
Мне кажется, это отличный способ показать, что даже устаревшие технологии могут получить новую жизнь, если их правильно объединить с тем, что есть сейчас.
Исходный код тут, можно в любых целях, лицензия открытая, GPL-2:
Написал свою мини-утилиту EasyGit для тех, кому лень возиться с консолью гита
Всем привет!
Решил поделиться своим небольшим опенсорс-проектом на C# (Windows Forms). Программа называется EasyGit, и создал я её чисто для себя и друзей, чтобы решать одну простую задачу — быстро клонировать Git-репозитории в пару кликов, не открывая терминал и не запуская тяжелые официальные клиенты.
Логика под капотом работает на библиотеке LibGit2Sharp.
Кому это может пригодиться?
Начинающим разработчикам, которые ещё путаются в командах терминала.
Тем, кому нужно просто быстро стянуть проект с гитхаба в нужную папку и сразу начать работать, не вспоминая синтаксис git clone.
Что внутри?
Интерфейс максимально простой (никакого перегруженного мусора): вставил ссылку на репозиторий, выбрал папку на компе, нажал кнопку — и всё готово. Проект полностью открытый, исходники весят копейки, а весь лишний компиляционный мусор я уже отсек, так что репозиторий теперь чистый как слеза.



Скриншоты из программы
Сейчас как раз выкатил свежее обновление, поправил пару багов и доработал встроенный апдейтер, так что утилита теперь сама умеет проверять свежие релизы на GitHub.
Ссылка на репозиторий (там же лежит готовый релиз в архиве): https://github.com/Pashamin/EasyGit/
Буду рад фидбеку и критике, код открытый, так что если есть идеи, что улучшить — залетайте в пул-реквесты!
HERMES.md в коммите — и Claude Code списал лишнее
Разработчик пишет код, коммитит. В описании одного из коммитов мелькает «HERMES.md» — просто название файла. После этого ИИ-ассистент в терминале начинает молча тратить деньги сверх оплаченного тарифа. Человек работает как обычно и не замечает — пока не кончается лимит доплаты. Сотни долларов мимо.
Я перечитал issue на GitHub дважды — звучит как байка. Но там пошаговое воспроизведение в три команды, таблица «что ломает, что нет» и холодный ответ поддержки. Не байка.
Что вообще случилось
Автор issue платит за подписку Claude Code — $200 в месяц. В личном кабинете квота почти полная: потрачено 13%. А система пишет, что доплата сверх тарифа исчерпана. $200.98 — ушли на доплату, хотя должны были идти из подписки.
Он не стал гадать. Клонировал репозитории, удалял историю коммитов кусками, сужал круг. Нашёл: если в тексте коммита есть слово «HERMES.md» — Claude Code начинает считать запросы как платные сверх тарифа. Не файл на диске — именно строка в описании коммита. В нижнем регистре «hermes.md» — всё работает. «HERMES.txt» — тоже нормально. Только «HERMES.md» большими буквами ломает биллинг.
Воспроизводится в три команды в пустой папке:
mkdir /tmp/test-fail && cd /tmp/test-fail git init && echo test > test.txt && git add . && git commit -m "add HERMES.md"
После этого любой запрос к Claude Code — и деньги идут мимо тарифа. Почему? Claude Code перед каждым запросом читает свежие коммиты из репозитория и отправляет их на сервер как часть контекста. Сервер видит «HERMES.md» — и переключает маршрут.
Если ты работал в таком репо неделями — счётчик крутился, пока ты искал не баг, а «почему модель стала такой жадной».
Это не баг модели. Это так задумано
Разработчик Anthropic закрыл тикет в тот же день: мол, сработала «слишком агрессивная система защиты от злоупотреблений», исправили.
Вдумайся. «Защита от злоупотреблений», которая не блокирует запрос, а молча переключает тебя на платный счётчик. Это как если бы антиспам в почте не удалял письма, а тихо переводил тебя на платный тариф. (Аналогия корявая, но суть та же.)
Дальше — классика. Поддержка отвечает шаблоном: мол, не компенсируем технические ошибки биллинга. Человек провёл полное расследование, нашёл причину, написал воспроизведение с нуля — а ему автоответ.
Тред попал на Hacker News, набрал тысячу с лишним голосов — публичный скандал оказался единственным рычагом быстрее тикета. После этого — рефанд и кредит для затронутых. До HN — не дождался. Мне кажется, выводы тут очевидны.
При чём ты
Если ты пользуешься Claude Code и привязал карту — твоя история коммитов уже не «просто текст». Раньше ты думал про секреты в .env. Теперь думай ещё и про строку в git log: любой инструмент, который скармливает его ИИ-модели как контекст, делает из сообщений коммитов часть контракта с биллингом.
К слову, баг стреляет не только на claude-opus-4-6 — автор проверил на claude-opus-4-7, результат тот же. Тикет закрыли в тот же день — это быстро. Но $200 уже ушли.
Странные списания при полной квоте? Смотри не дашборд — смотри, что недавно коммитили в активном репо. И если инструмент ведёт себя как чёрный ящик — иногда срабатывает только публичный тикет с пошаговым воспроизведением. Не потому что так надо жить.
Короткий вывод, без морали сверху: когда продукт обещает «агента в терминале», он обязан быть предсказуемым в том, за что именно ты платишь. Иначе это не ассистент — слот-машина с README.
Где читать дальше
Ещё разборы инструментов и денег в ИИ: MAX · aivibenews.ru





