Skip to main content

QODY CI gate — build-validation policy blocking (MC #106804, 2026-08-05)

QODY CI gate — build-validation policy sada BLOKIRA merge (MC #106804)

Datum: 2026-08-05 · Izvršio: FlowForge (dispatch John) · Nezavisno verifikovao: verifier agent (6/6 PASS, živi REST pozivi)

Šta je promijenjeno

  • Azure DevOps, repo QODY, grana refs/heads/main: Build validation policy prebačena s isBlocking=false na isBlocking=true (policy id=2, revision 1→2).
  • Od sada se nijedan PR ne može completati dok "CI Gates" validation build ne prođe — ručni complete prije builda vraća GitPullRequestUpdateRejectedByPolicyException.

Zašto

2026-08-03 je PR #301 (payment fix) mergovan ručno bez ijednog uspješnog validation builda — policy je postojao ali je bio savjetodavan (isBlocking=false). Uz to je CEO primao ~30 "canceled build" mailova jer agentska velocity mergeva otkazuje superseded buildove. Puna istraga: MC #106804, forge dokument ~/system/prompts/forged/106804.md.

Živi dokaz (ne "green build" nego stvarni pokušaj proboja)

  • Probni PR #316: pokušaj complete PRIJE builda → ODBIJEN policy-jem; PR abandonovan, probni branch obrisan, main HEAD netaknut (956f9f35).
  • Bypass audit: nijedan ACE na repou nema PolicyExempt/PullRequestBypassPolicy.
  • Evidence: ~/system/evidence/106804/{d0-final,d2,peer-verify}/ (before/after JSON, response JSON-i, nezavisni peer verdikt sa sha256 hashevima).

Šta NIJE urađeno (svjesno) i zašto

  1. Reviewer policy (min 1, bez self-approve) NIJE upaljena: org ima samo jedan ljudski ADO identitet (Alem Basic — svi agenti rade kroz njegov PAT), pa bi obavezan nezavisni reviewer blokirao 100% mergeva. Čeka drugi identitet → vezano za Entra povezivanje (#106841, pauzirano CEO odlukom "Ne" 2026-08-05).
  2. 2. self-hosted parallel slot NIJE kupljen: ADO org nema podešen billing (nije vezan za Azure subscription, korijen: org nije povezan s Entra tenantom). CEO odluka: ne raditi Entra plan za sada. QODY CI ovim NIJE pogođen (ide na MS-hosted pool); Bilko cancel-lanac se rješava throttlingom (#106809).

Otvoreni rizici (za buduće hardening odluke)

  • Alemov PAT identitet drži EditPolicies + ManagePermissions na QODY repou → isti identitet koji merga može i ukinuti policy. Gate je stvaran, ali samoodbranjiv nije — pravi fix traži odvojene identitete (Entra).
  • Company Mesh peer-verify infrastruktura (lokalni Ollama) je srušena — peer-verifikacija za ovaj task rađena native-agent putem; Ollama treba restart/popravku.

Povezani taskovi

#106804 (ovaj), #106809 (Bilko main validacija), #106810 (Rollback-Rehearsal istraga), #106811 (mail digest — TEK nakon punog merge ciklusa s novim gate-om), #106841 (Entra, pauzirano), #106802 (slot, blocked), #106815 (PAT rotacija).

Dopuna 2026-08-05 — istraga 2 pala builda (MC #106810)

Dva "failed main" runa od 2026-08-03 (20:18, 20:35) NISU glavni CI: to je ručni stage-rollback rehearsal alat (Bilko-Gate0-Stage-Rollback-Rehearsal, defId=4) koji dira samo stage ACA app-ove. Pao je na vlastitom query bugu (az containerapp revision list bez --all → prazan rezultat → fail-closed). Bug ispravljen 2026-08-04, run 20260804.4 SUCCEEDED. "Requested for Alem Basic" je PAT artefakt. Nema buildNumber kolizije (obje definicije koriste ADO default brojanje). Zaključak: resolved-in-place. Evidence: ~/system/evidence/106810/istraga-2026-08-05.md.