<feed xmlns='http://www.w3.org/2005/Atom'>
<title>zagan-bet/webd/src/main.rs, branch master</title>
<subtitle>Everything about zagan-bet casino is here.
</subtitle>
<id>https://git.2137697.xyz/zagan-bet/atom?h=master</id>
<link rel='self' href='https://git.2137697.xyz/zagan-bet/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/zagan-bet/'/>
<updated>2026-11-08T02:29:35Z</updated>
<entry>
<title>v5.0.0: protocol v5 and the browser frontend</title>
<updated>2026-11-08T02:29:35Z</updated>
<author>
<name>salmonik</name>
<email>salmonik@tuta.io</email>
</author>
<published>2026-11-08T02:29:35Z</published>
<link rel='alternate' type='text/html' href='https://git.2137697.xyz/zagan-bet/commit/?id=058432130628d00764663ecf819a9adc6793768d'/>
<id>urn:sha1:058432130628d00764663ecf819a9adc6793768d</id>
<content type='text'>
Protocol v5 replaces newline lines with bounded [u32 len][text] frames and REQ/RES/EVT envelopes. Requests carry correlation ids and the server replays the last 256 replies per connection, so a gateway retry cannot double-debit and a late reply cannot clobber a newer request. HELLO/PONG carry server time; crash rounds announce started_at and push coalesced 10 Hz ticks. Crash now commits sha256(seed) before a round and reveals the seed when it ends, so clients recompute the crash point.

Adds the webd/ gateway: one blocking thread, one ClientCore and one pinned upstream TLS connection per session, an HttpOnly session cookie, takeover, and a 60-second grace window. The browser sends Command JSON and renders View JSON; it never speaks the game protocol or stores credentials.

Adds the vanilla TypeScript browser app at /play/ (login, lobby, all four games, history, notices, crash verification), the nginx /play and /ws routes, and the headless DOM smoke test. webd and the app stay out of the TUI/GUI/server build graph.

The client/server version moves to 5.0.0 in lockstep; v4 peers are refused at HELLO.
</content>
</entry>
</feed>
