Privacy Policy v2.0 implementacija (pravnik Ilhan Erma) — MC #106821, 2026-08-04
MC #106821 · Status: Implementirano, spremno za deploy-gate · 2026-08-04 · Grana fix/106821-privacy-policy, worktree ~/business/ALAI-Holding-AS/products/qody-106821-privacy
1. Kontekst
Pravnik Ilhan Erma je mailom (posredstvom Asmira, 2026-08-04) dostavio finalni tekst Politike privatnosti koji zamjenjuje interni draft v1.0 iz MC #104526 (koji je nosio napomenu „podložno pravnoj reviziji“). Izvor istine za sadržaj je repo fajl docs/legal/politika-privatnosti-pravnik-2026-08-04.md — sav frontend tekst je preslikan iz njega, ne parafraziran.
2. Šta je promijenjeno
Implementacija pokriva četiri deliverable-a, u jednom PR-u (commitovi 6af2683 inicijalna implementacija + 2777887 fix nakon peer-review nalaza), na grani fix/106821-privacy-policy:
- Landing stranica Politike privatnosti v2.0 (
apps/landing/politika-privatnosti/index.html) — svih 11 sekcija pravnikovog teksta, DPO „Ilhan Erma, licencirani pravnik“, kontakti[email protected](sekcije 1 i 8) i[email protected], datum ažuriranja 2026-08-04, TOC ažuriran, string „podložno pravnoj reviziji“ uklonjen, postojećilegal.csslayout zadržan. - Footer na sve 4 landing stranice (
index.html,politika-privatnosti,politika-kolacica,uvjeti-koristenja) — standardizovan tekst „© 2026 SnowIT d.o.o. — QODY. Sva prava zadržana.“ + 4 linka (Uslovi korištenja | Politika privatnosti | Politika kolačića | Kontakt). - CookieBanner (
apps/guest/src/components/CookieBanner.tsx) — naslov „Vaša privatnost nam je važna“ + pravnikov tekst, tri dugmeta (Prihvati sve / Odbij opcionalne / Postavke kolačića), consent state perzistiran ulocalStorage, nijedan opcioni skript se ne aktivira prije saglasnosti, link na politiku kolačića. - InviteAcceptScreen (
apps/admin/src/InviteAcceptScreen.tsx) — obavezan checkbox „Pročitao/la sam i prihvatam Uslove korištenja QODY platforme.“ (submit blokiran dok nije čekiran), info linija s linkom na Politiku privatnosti, odvojen opcioni checkbox za marketing saglasnost (default neoznačen). Nigdje se ne koristi zabranjena fraza „prihvatam Politiku privatnosti“.
3. Verifikacija (Writer ≠ Witness)
Nezavisna peer-verifikacija (Angie Jones / Proveo persona, odvojena sesija od buildera) prošla je kroz dva kruga:
Round 1 — PARTIAL, 5 nalaza:
- UTF-8/ćirilica korupcija u TOC-u („2.Ције podatke prikupljamo?“ umjesto „2. Koje podatke prikupljamo?“) — greška heredoc encodinga pri inicijalnom pisanju fajla.
- Footer na
apps/landing/index.htmlnije bio ažuriran iako je AC2 tvrdio suprotno. - Rečenica o kartičnim podacima bila parafrazirana umjesto doslovnog citata pravnika.
- Mrtvi i18n fallback u
InviteAcceptScreen.tsx—t("admin.invite.tosRequired") || "..."nikad ne bi pao na fallback jer nepostojeći i18n ključ vraća istinit (truthy) string. - Build gate blokiran jer je MC owner bio „john“ umjesto „codecraft“, pa sankcionisani
run-build.shrunner nije mogao izvršiti buildove.
Fix ciklus (commit 2777887): sva 4 sadržajna nalaza ispravljena (heredoc encoding root-cause, footer standardizovan na svih 4 stranice, kartična rečenica vraćena na doslovan pravnikov tekst, i18n fallback zamijenjen literalnim stringom), owner promijenjen na codecraft → buildovi izvršeni: guest app 283 modula, admin app 1947 modula, oba PASS bez TypeScript grešaka.
Round 2 — PASS: svih 5 nalaza nezavisno reprodukovano kao popravljeno (verifikator sam ponovo pokrenuo buildove — byte-identični brojevi modula/bundle veličina, ne samo pročitan builderov transkript). Uživo Playwright testiranje protiv stvarnih dist/ bundlova: cookie baner (3 dugmeta po role/label, settings panel, perzistencija preko reloada, 3 distinktna consent stanja u localStorage), invite ekran (mockovan peek endpoint, submit dugme disabled→enabled tačno na ToS checkbox, marketing checkbox potvrđeno neoznačen po defaultu, pravnikov tekst doslovan u DOM-u). Pun diff commit-a 2777887 pročitan direktno — potvrđeno da nijedan drugi paragraf nije dirnut. Zabranjene fraze i provjera odsustva analytics/marketing skripti i dalje čiste.
4. DEPLOY GATE — JOŠ NIJE DEPLOYANO
Implementacija je verifikovana lokalno (build + Playwright protiv lokalno serviranih bundlova), ali deploy je izričito van scope-a ovog MC-a i čeka sljedeće uslove:
- Email adrese moraju postojati živo:
[email protected]i[email protected](CF Email Routing) — čeka odluku CEO-a/Asmira o destinaciji poruka. - Politika kolačića i Uslovi korištenja i dalje sadržajno nedovršeni: obje stranice još nose napomenu „Verzija 1.0 (2026-06-30) — podložno pravnoj reviziji“ — footer im je ažuriran u ovom MC-u, ali sadržaj čeka odvojen pravnikov pregled.
- PI2 deploy verifikacija mora se odraditi kao poseban zadatak nakon deploya (landing = CF Pages
qody-landing; guest/admin = ACA sVITE_API_BASE_URLbuild-argom) — browser/production dokaz, ne samo build zeleno. - Puni invite-accept submit round-trip (kreiranje naloga) nije end-to-end testiran — van pravnog/consent scope-a ovog MC-a, izričito deklarisano kao netestirano, ne kao PASS.
5. Follow-up
MC #106826 — otvoren za dodavanje marketing-consent polja na backend invite-accept endpoint (trenutno checkbox state postoji samo lokalno u formi jer backend polje ne postoji; nije izmišljen backend ugovor).
Evidence: /Users/makinja/system/evidence/106821/ (dispatch-plan.md, s1-fix-report.md, s2-verify-report.md, s2-verify-report-round2.md, p2p-native-verify-transcript.md, screenshotovi i JSON izvještaji Playwright testova).
No comments to display
No comments to display