Nofax: izričite ljudske odluke za AI agente
Open-source most između AI programerskih agenata i izričitih ljudskih odluka. Lokalni režim podržava odobrenja, izbore, dorade i ograničeno čekanje; opcioni udaljeni Worker namerno je ograničen na jednosmerna obaveštenja i bezbedan pregled zahteva.
Otvori repozitorijumLokalne odluke, uži udaljeni uvid
Nofax zadržava ovlašćenje za odlučivanje lokalno. Lokalni tok može tražiti od osobe odobrenje ili odbijanje, izbor među opcijama, doradu zahteva i čekati izričit odgovor. Opcioni udaljeni Worker ima manji ugovor: može poslati jednosmerno obaveštenje i izložiti ograničene metapodatke zahteva za pregled. Ne može odobriti, odbiti, birati, dorađivati niti čekati odluku.
Granica mogućnosti
Razdvajanje je namerno: udaljena dostupnost ne daje udaljeno ovlašćenje za odlučivanje.
| Mogućnost | Lokalni tok | Udaljeni Worker |
|---|---|---|
| Jednosmerno obaveštenje | Da | Da |
| Pregled metapodataka zahteva | Da | Da |
| Dozvoli / odbij | Da | Ne |
| Izbori / dorada | Da | Ne |
| Čekanje odluke | Da | Ne |
Čekanje nije odobrenje
Trenutna dokumentacija i testovi rade fail-closed: stanje pending, timeout, neispravni rezultati, mrežne greške i prekidi veze ne smeju se pretvoriti u odluku Allow. Ako je čekanje i dalje pending, ostaje pending i traži novo izričito čekanje. Nofax prenosi ljudsku odluku; nije policy engine koji sam odlučuje da li radnja treba da bude dozvoljena.
Dohvat najnovijeg zahteva na čekanju
PR #34 „fix: recover newest pending requests” spojen je 22. septembra 2026. merge commitom 979df9f5a3a3e52004a398c1b8738dbb80c6ffd2.
Pre
Nazivi datoteka na čekanju sadrže nasumične ID-jeve zahteva. Implementacija ih je sortirala obrnutim redosledom i stala čim je dostignut limit rezultata. Novi zahtev sa leksikografski niskim ID-jem zato je mogao biti izostavljen pre nego što je zapis uopšte pročitan.
Posle
Implementacija učita zapise na čekanju, sortira ih po trajnom createdAt od najnovijeg ka starijima uz ID zahteva kao deterministički razrešivač izjednačenja, pa tek onda primenjuje limit.
Sintetički regresijski primer
Regresijski test stvara 20 starijih zapisa i jedan najnoviji, traži limit 20 i proverava da je najnoviji prvi i uključen, a najstariji isključen. To su sintetički testni podaci, a ne volumen korisnika, incident klijenta ili izmeren uticaj na korisnike.
Javni dokazi
Istorijski CI 22. septembra 2026. prošao je Node 20, Node 22, Node 24, Worker i CodeQL provere. To je istorijski GitHub CI dokaz, odvojen od testova portfolija pokrenutih za ovu stranicu.
Trenutne granice
- Udaljeni Worker izlaže samo obaveštenja i bezbedne funkcije pregleda; nije hostovana usluga odobravanja.
- Ovde nema tvrdnji o timovima koji plaćaju, usvajanju, dostupnosti ili univerzalnoj bezbednosti.
- Verzije paketa i broj preuzimanja namerno su izostavljeni jer su promenljivi i ne dokazuju granicu odobrenja.

