# P2P isporuke — regwatch pausal izvor (#107169) i cutover runbook (#107170)

# P2P isporuke — regwatch paušal izvor (#107169) i cutover runbook (#107170)

**Datum:** 2026-08-15/16 · **Izvršilac:** `pi-orchestrator` (openai-codex/gpt-5.6-sol) preko Company Mesh
**Orkestracija i nezavisna verifikacija:** John (Claude)
**Dokazi:** `~/system/evidence/107169/`, `~/system/evidence/107170/`

Obje stavke su isporučene i provjerene 15/16.08, ali su predane na review tek 17.08 — kašnjenje je
moje, ne izvršiočevo. Zapisano ovdje jer je isporuka bez zatvaranja isto što i nezavršen posao.

---

## #107169 — regwatch nije pratio paušalne razrede

**Kvar:** `regwatch-hr` prati mišljenja Porezne, Fiskalizaciju 2.0 i FINA certifikate, ali **ne i
stranicu s godišnjim paušalnim razredima**. Kad se razredi promijene za 2027, Bilkov kalkulator
tiho postaje pogrešan i ništa ne alarmira.

**Popravka:** dodan izvor `porezna-obrtnici-pausalisti` u `SCRAPE_SOURCES`
(`~/system/tools/regwatch-hr.js`), po istom obrascu kao postojeća tri (id / label / url).

**Šta sam nezavisno provjerio (John), ne preuzeo iz izvještaja:**

| tvrdnja | provjera |
|---|---|
| URL živ, bez preusmjerenja | `curl` → `http=200 redirects=0`, 234 KB |
| stranica stvarno nosi razrede | 14 različitih iznosa; izvučen tekst pokazuje **sedam razreda** od `0–11.300,00` do `50.000,01–60.000,00 eura` |
| upisan u state s hashom | `hr-state.json` → `hash c066d659…`, `lastCheckedAt 2026-08-15T19:37:54Z`, url |
| izvor ne pada na short-body guard | tijelo 20.952 znaka poslije stripovanja — prag se ne dira |
| bez commita/pusha | promjena ostavljena u radnom stablu |

**Ograničenje koje ostaje:** run je prošao granom „nema izmjena", koja `sendMail` uopšte ne zove.
Da alarm stvarno stiže dokazuje tek prvi run koji detektuje promjenu. To nije tvrdnja da radi —
to je zapisano ograničenje.

**Uzgredno potvrđeno:** isti run je prošao kroz izmijenjeni `sendMail` iz #107106 bez pada.

---

## #107170 — cutover runbook je slao na ugašen GCP projekat

**Kvar:** BookStack stranica 2908 („Bilko Stage→Demo→Prod Cutover Runbook") propisivala je
`gcloud ... --project=tribal-sign-487920-k0`. Bilko je na Azure Container Apps od maja, GCP
billing je otkačen 02.08. Operater koji prati runbook dobija greške — ili gore, misli da je
promocija prošla a ništa nije izvršeno. Logika i lista gate-ova su bile i dalje tačne; **komande
su bile mrtve.**

**Popravka:** 20 zastarjelih poziva u 13 blokova zamijenjeno, jednim fail-closed API PUT-om
(HTTP 200, revizija 4), pa ponovo dohvaćena stranica radi provjere.

**Šta sam nezavisno provjerio (John):**

| tvrdnja | provjera |
|---|---|
| `tribal-sign` uklonjen | moj re-fetch stranice → **0** pojava |
| `gcloud` uklonjen | **0** |
| `gcr.io` uklonjen | **0** |
| komande nisu izmišljene | `az containerapp list -g rg-bilko-demo` vraća **bilko-api-demo, bilko-web-demo, bilko-api-stage, bilko-web-stage** — imena koja stoje u tekstu |
| org/projekat u `az pipelines` | `alai-holding` / `Bilko` poklapa se s git remote-om |
| rollback postoji | backup prije pisanja, `0600`, 21.887 B, SHA `3f6cb9b2…`, sadrži 16 starih `tribal-sign` referenci |

**Najvrednije je ono što nije napisano.** Četiri mjesta su označena `TODO/UNKNOWN` umjesto
uvjerljive izmišljotine, i svako od njih je stvarna rupa u operativnoj spremnosti:

1. nema odobrenog 10/90 gradual rollouta za produkciju
2. Web app je u Single revision modu → nema rollback puta koji bi se mogao potvrditi
3. nema sigurne standalone provjere prijavljenog korisnika poslije penzionisanog login toka
4. nema tenant-safe fixture za invoice-PDF provjeru na produkciji

Stranica 3104 je odbijena kao izvor jer su joj komande iz pred-Azure ere.

---

## Pravilo koje je ovdje potvrđeno

Izvršiocu je u oba zadatka izričito rečeno: **ne izmišljaj komandu — ako se ne može utvrditi,
piši UNKNOWN.** Runbook s tri tačne komande i jednim poštenim UNKNOWN je upotrebljiv; onaj s
četiri samouvjerene od kojih je jedna izmišljena je gori od zatečenog stanja.