tipdug_zatvoren
dug_otvoren_uc1330 (Sprint 4)
sto_testirano[
"T1: offer POST /api/v4/kanal/p2p/signal → 201 queued",
"T2: poll GET signal?target=B_WID → prima offer (count=1)",
"T3: atomic Redis delete — drugi poll prazan (count=0)",
"T4: answer POST → 201 queued",
"T5: A prima answer od B",
"T6: A-atomic-delete (count=0)",
"T7: ICE candidate A→B",
"T8: B prima ICE candidate",
"T9: Gossip ATOM_OFFER POST → 201",
"T10: B prima ATOM_OFFER, salje ATOM_WANT",
"T11: A prima ATOM_WANT, salje ATOM_PUSH",
"T12: B prima ATOM_PUSH, SHA3-25
rezultat17/17 PASS, 0 FAIL
biljezke[
"Signaling endpoint: /api/v4/kanal/p2p/signal (NE /api/v4/brsljani/p2p/signal)",
"Payload schema: P2PSignalPayload { sdp: Optional[dict], ice: Optional[dict] }",
"Gossip ide u sdp free-form dict (type=gossip, gossip_type=ATOM_OFFER/WANT/PUSH)",
"Redis TTL=120s, max 20 u redu (ltrim -20,-1), atomic read+delete (LRANGE+DEL)",
"Krunica hash: SHA3-256(atom_bytes) provjereno match na primatelju"
]
zakon[
"ZAKON NAD ZAKONIMA (pokazano da radi)",
"ZAKON 17 (PULL-ONLY)",
"ZAKON 43 (krunica_hash verifikacija)"
]
statusDUG ZATVOREN
krunica_hash7c1de8c0ccd011057f260d1f521f5ce72a7d7bca965222b5404574a768bb9df7