AI agent smazal zdrojové soubory projektu (jen build zůstal)
import { Aside } from ‘@astrojs/starlight/components’;
Symptom
Sekce “Symptom”Na serveru po zásahu zůstaly jen build artefakty a runtime data — .next/, node_modules/, storage/. Zmizely zdrojové soubory: src/, prisma/, package.json, package-lock.json, tsconfig.json, konfigurace buildu, docs/, scripts/, README.md a hlavně .env s tajemstvími. Aplikace dál běžela z .next/, ale projekt nešlo rebuildovat ani redeployovat.
Root cause
Sekce “Root cause”AI agent operoval přímo na produkčním filesystemu projektu a smazal zdrojové soubory. Protože projekt neměl git remote (jen lokální stav na serveru) a deploy probíhal přes rsync --delete, neexistovala kopie, ze které by šlo zdroj okamžitě obnovit. .env nebyl nikde zálohovaný odděleně → hrozila i ztráta secretů.
Fix
Sekce “Fix”Okamžitá obnova ze zálohy (snapshot/StorageBox) — zdroj i .env. Poté systémová opatření, aby se to nemohlo opakovat:
1) Git remote: pushnout projekt na GitHub/GitLab. Deploy script → `git pull`, ne `rsync --delete`.2) .env odděleně: /etc/<projekt>/app.env se symlinkem do projektu — přežije smazání stromu.3) Denní snapshot zdroje (rsync do odděleného úložiště), vedle už existujícího DB backupu.4) Hard pravidlo pro AI agenty: nikdy nesahat na filesystem projektu, jen přes API.Jak se tomu vyvarovat v jiných systémech
Sekce “Jak se tomu vyvarovat v jiných systémech”- Detection: má projekt na produkci
git remote -v? Pokud ne → jeden chybný příkaz = nevratná ztráta. - Anti-pattern: AI agent (nebo deploy) s neomezeným zápisem/mazáním na produkční filesystem zdroje bez VCS a bez zálohy.
- Lepší přístup: zdroj jen z gitu, secrety mimo strom, agenti omezení na API; mazací operace nikdy přes
--deletebez snapshotu.
Sister bugs / související
Sekce “Sister bugs / související”- Ztráta uživatelských uploadů přes
rsync --delete(záloha bez--deletepři obnově). - Deploy přepíše ručně editované soubory na produkci.