01 Problém
Ruční spouštění coding agentů neškáluje: jeden terminál, jeden úkol a musíš sedět u počítače. Chtěl jsem, aby agenti bezpečně zpracovávali frontu na více serverech, když nejsem u počítače, a předávali mi jen výsledky, které prošly kontrolami.
02 Co aplikace dělá
- Fronta v Postgresu s atomickým převzetím (FOR UPDATE SKIP LOCKED), takže dva workery nikdy nevezmou stejný úkol.
- Každý běh dostane vlastní git worktree, spustí agenta a pak ověřovací příkaz; když ověření selže, proběhne jeden opravný průchod, jinak úkol skončí jako partial, ne done.
- Rizikové úkoly projdou plánovací bránou: běh jen pro čtení, schválení v aplikaci a teprve pak ostrý běh.
- Android klient pro zadávání úkolů, schvalování plánů a rušení běhů, s push notifikacemi a OTA aktualizacemi.
03 Architektura
- 01 ClientNativní Android aplikace (Kotlin) + CLI `ns`
- 02 Control planeFastify REST API, autentizace, outbox notifikací, FCM
- 03 QueueStavový automat úkolů v PostgreSQL s leasy a heartbeaty
- 04 WorkersNode worker bez závislostí na každém serveru: worktree → claude -p → verify → PR
04 Technologie
TypeScriptNode.jsFastifyPostgreSQLClaude CodeKotlinAndroidFCMDockersystemd
05 Jak jsem pracoval s AI
Projekt je o tom, aby agenti byli dost důvěryhodní na práci bez dozoru: nikdy sami nemergují, selhání se poctivě označí, navazující nápady se jen navrhnou a nespustí automaticky a každý běh je izolovaný ve vlastní větvi.
06 Co je ověřené
- Server, worker, migrace i Android klient jsou v repozitáři.
- 16 testovacích souborů; Dockerfile a Compose pro control plane.
07 Upřímné poznámky
- Osobní infrastruktura, experimentální. CI pipeline zatím chybí.
08 Screenshoty
Screenshoty s anonymizovanými daty se připravují. Skutečná data klientů zveřejněna nebudou.