summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* web: disallow crawlers and quiet the game portsalmonik84 min.10-13/+81
| | | | Adds robots.txt with Disallow: / plus noindex/X-Robots-Tag on the site and app. The v5 server treats an HTTP request as a malformed frame, closes silently before HELLO, and suppresses the common TLS scanner noise. Deploy now verifies robots.txt.
* web: match the desktop layout and remove play-money copysalmonik89 min.10-334/+501
| | | | | | The browser now uses the desktop's full-width game split: no extra game header or card frame, a full-height sidebar with a pinned action block, and the same lobby grid, topbar account/balance blocks, and bottom-left notices. Slots uses the desktop symbol colours and gold win border; roulette gets the flat felt, column bets under the dozens, the wheel, circular chips, and a LAST line; blackjack gets a centred dealer/player table and divider; crash gets the chart panel, phase label and empty ready state. Also drops every play-money/real-money disclaimer from the page copy.
* web: remove .git from repo linksalmonik90 min.1-2/+2
|
* dev: add a no-nginx browser stack scriptsalmonik2 hours5-9/+171
| | | | scripts/dev-web.sh builds the server, gateway and app, creates target/dev-web/identity, and runs the game server, webd and a loopback static server. The app accepts a ?ws= override only on loopback so the page and gateway can sit on different local ports; production stays same-origin at /ws.
* web: link the GPL source from the play page; normalise gateway configsalmonik10 hours3-2/+18
| | | | The browser footer links the public repository. ZAGAN_WEB_ORIGIN is lowercased for origin matching, and the pinned fingerprint accepts the colon-separated form operators often copy.
* web: show the account number and stop reel spin on an errorsalmonik10 hours6-5/+12
| | | | Also documents the __Host- cookie prefix used on HTTPS.
* crash: show and verify the revealed seed in the TUI and GUIsalmonik10 hours4-7/+107
| | | | The crash board gained a fairness line: the short commit while the round runs, then the short seed marked verified when sha256(seed) and the recomputed crash point both match. The terminal board grew from six to seven lines and the GUI sidebar shows the same values.
* web: restore the balance on a refresh into historysalmonik10 hours5-1/+11
| | | | The gateway hello now carries the core's last known balance alongside the user, so a refresh on a non-game view does not blank the header before the next INFO reply.
* web: accept the serialized reels array and stop game loops on navigationsalmonik10 hours8-10/+86
| | | | | | The Rust SlotsView serializes reels as an array of chars, so the browser joins it instead of String(array). The crash chart, reel animation and roulette observer now stop when another screen takes over, and a returning crash screen rebuilds its detached canvas. Action buttons ignore a double click before the server view arrives. Also tightens the gateway session registry with a generation token, caps WebSocket messages at 64 KiB, uses the __Host- cookie prefix on HTTPS, and ships the systemd unit.
* v5.0.0: protocol v5 and the browser frontendsalmonik10 hours62-414/+6783
| | | | | | | | | | 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.
* web: serve latest.php through PHP and refuse stray PHP filessalmonik7 days2-19/+58
| | | | nginx example now routes index.php and latest.php to php-fpm, sends the newest-version feed with no-store, keeps the stable installers revalidated, and returns 404 for every other .php request so releases.php cannot be downloaded as source. Documents Debian and Arch pool sockets.
* v4.4.0: stable installers that follow the newest published buildsalmonik7 days14-420/+485
| | | | | | Adds web/latest.php: a plain-text feed of the newest version with each artifact's filename and SHA-256. The per-release generated installers are replaced by stable web/install.sh and web/install.ps1; both read the feed, pick the newest build, verify it, install per-user and add a launcher. Publishing a new app version no longer regenerates or versions the installers. publish.sh drops the installer renderer and Python dependency. deploy.sh now also verifies latest.php against the local artifacts and that the served installer scripts match the repository.
* v4.3.1: render Windows through wgpu and keep the installer window opensalmonik7 days7-29/+147
| | | | | | Windows 10 1809 sessions with only the Microsoft display driver expose OpenGL 1.1, which egui_glow refuses. The Windows build now uses wgpu on Direct3D 12 and its adapter selector accepts WARP, the software rasterizer, after every hardware class, so a VM or Remote Desktop session still starts. Linux keeps the smaller glow renderer. The GUI is a windows-subsystem binary now, so launching it from the Start menu does not flash a console; startup failures and --help go to a native message box. The PowerShell installer pauses before closing unless -NoPause is passed.
* docs: record the v4.3.0 packaging verificationsalmonik7 days1-3/+5
|
* v4.3.0: package the desktop app with verifiable installerssalmonik7 days13-46/+416
| | | | | | publish.sh builds the GUI with the gui-release profile, names it zagan-bet-gui-<version>-<platform>-<arch>, and renders a bash and a PowerShell installer next to each app. Both embed the app's SHA-256, verify the file (or fetch it), install per-user and add a launcher: a desktop entry plus an SVG icon on Linux, a Start-menu shortcut on Windows. The download page gains a Desktop app section with the apps and installers, keeps the terminal client and server, links the public git repository for the GPL source, and lists every file in the sha256sum block. deploy.sh verifies all four artifact kinds. Publishing refuses a dirty tree so the linked history matches the binaries.
* v4.2.1: plain-language game copy and a balance fetch on loginsalmonik7 days16-223/+51
| | | | The lobby and every game screen now speak to a player, not an operator: each game has one how-to sentence, and the table headers, limits, RTP, paytable and server-timing notes are gone. The account and balance are fetched whenever a session signs in, including stored-credential auto-login, so the header is filled before the lobby appears.
* v4.2.0: wire the GUI to the core, transport and all four gamessalmonik7 days26-562/+3935
| | | | | | | | | | Phase 4. The egui frontend now shares ClientCore and the client database with the terminal: one background worker owns TLS, trust answers go through a channel, and a 10 s request deadline mirrors the terminal socket timeout. First contact, a changed key and a version mismatch are explicit screens; login can remember the credential and auto-login signs in before the login form appears. Adds the lobby with an update notice, a full-width scrollable history table, and the four games painted from View: slots with reel animation and win lines that stop at the last matching reel, roulette with the hover lattice and wheel spin, blackjack with vector-drawn suits, and a smooth crash curve. Sidebars pin their action block; leaving a live hand or round asks before forfeiting. The header balance holds the staked amount while the reels or wheel turn and only shows the payout when they stop. Refused spins cancel the animation. Live crash multipliers keep full precision for the chart; the terminal still displays two decimals. Verified live against a 4.2.0 server: register, login, auto-login, trust, all four games settling, history (50 rows), logout, disconnect, forfeit confirmation, and the version-mismatch screen. Release: 8.3 MB Linux, 6.8 MB Windows, 61 ms to window, 131 MB idle RSS.
* v4.1.1: pointer-first betting and visible payouts in the GUIsalmonik7 days14-186/+402
| | | | | | | | The felt snaps the hover to the shared fine lattice: inner half of a cell is a straight, an edge a split, a crossing a corner. A translucent chip previews the target and the covered cells tint. Left click adds the selected chip, right or middle click takes one back through the new Bets::reduce; C or CLEAR empties the slip, and SPIN stays disabled with no chips. The result now pays out: the wheel leaves the winning pocket under the pointer, the winning cell and pocket get a gold outline, and the sidebar reports the amount returned and the net for the round (NO WIN on a loss). Placing a chip after a result starts the next round without losing the wheel position. The column row now spans the full width like a real table instead of hugging the left edge. Adds tests for lattice snapping, target naming and taking chips back.
* v4.1.0: add the egui workspace member and the roulette style spikesalmonik7 days18-12/+1722
| | | | | | | | Phase 3 of the GUI plan. gui/ is a separate package that depends on the core with default features off, so egui never enters the TUI or server build graph. It carries the theme tokens and two embedded fonts (Open Sans OFL, Hack MIT), paints the felt, chips, cursor and wheel from RouletteView, and composes the persistent header with the betting sidebar. The reference screen runs on demo state: arrow keys move the shared Cursor, clicks place chips, and SPIN animates a 2.4 s wheel that settles with the winning pocket under the pointer. No network until Phase 4. Verified x86_64-pc-windows-gnu cross-compile. Measured on Linux at 1080p with llvmpipe: 6.0 MB binary (4.7 MB on Windows), 52 ms to window, 137 MB idle RSS, 0% idle CPU.
* v4.0.7: finish the Phase 1 boundary with a command shellsalmonik7 days15-299/+566
| | | | | | The terminal command line moves to client::shell: a typed line becomes a core Command or an adapter action (connect, login, register, set-credential, host maintenance). ClientCore loses submit_line and the last TUI-shaped effects (Interactive, SetPrompt, ListHosts, ForgetHost, AnimateRoulette); the adapter animates roulette from the Result view. Adds forget-login, which drops the stored credential for the pinned key and keeps trust, distinct from logout (session only) and forget-host (trust too).
* v4.0.6: move the prompt editor and key mapping out of the coresalmonik7 days8-230/+261
|
* v4.0.5: login and registration as core commandssalmonik7 days5-6/+156
|
* v4.0.4: move the client transport and TOFU into the librarysalmonik7 days9-442/+498
|
* v4.0.3: lobby and history screens behind commandssalmonik7 days6-40/+222
|
* v4.0.2: port slots, blackjack and crash to structured viewssalmonik7 days9-263/+540
|
* v4.0.1: introduce Command/View and port roulette to the shared boundarysalmonik7 days9-143/+380
|
* docs: document DOWNLOAD_URL and the XDG reset pathsalmonik7 days1-2/+5
|
* v4.0.0: require HELLO MAJOR.MINOR lockstep before authsalmonik7 days9-3/+373
|
* docs: add the phased GUI plansalmonik7 days1-0/+87
|
* docs: record the GUI architecture and version lockstep; adopt GPL-3.0-or-latersalmonik7 days5-5/+840
|
* v3.3.0: keep client.db in the XDG data dir, add -d/--data-dirsalmonik7 days8-18/+246
|
* v3.2.0: straight and split bets anywhere on the felt; add history commandsalmonik7 days17-94/+544
|
* add nginx + php-fpm deployment examplesalmonik10 days2-0/+89
|
* add deploy script with live verification; cache file hashes by size and mtimesalmonik10 days4-16/+295
|
* add publish script that names release artifacts from Cargo.toml and the ↵salmonik10 days2-12/+70
| | | | target triple
* strip the download page to plain HTML: no CSS, sha256sum-format checksumssalmonik10 days2-261/+53
|
* make the download page dynamic: scan builds, show versions and SHA-256salmonik10 days4-213/+503
|
* add static download page for client and server buildssalmonik10 days1-0/+213
|
* v3.1.1: make native-tls optional so the client cross-compiles without OpenSSLsalmonik10 days2-2/+42
|
* PLN changed to Kromersalmonik10 days11-143/+153
|
* v3.1.0: warn on shrink, but let a live round finishsalmonik10 days8-4/+182
|
* v3.0.0: cursor-driven roulette felt with splits and corners; drop schema ↵salmonik10 days21-434/+957
| | | | migrations; require 80x24
* v2.4.0: key stored credentials by certificate fingerprintsalmonik10 days9-49/+307
|
* formattingsalmonik10 days31-327/+208
|
* initial connection timeout set to 10ssalmonik10 days1-10/+8
|
* v2.3.2: group hosts by certificate fingerprintsalmonik10 days4-4/+73
|
* v2.3.1: settle orphaned reservations on server restartsalmonik10 days8-18/+389
|
* v2.3.0: add crash with local multiplier and pushed crash eventsalmonik10 days23-45/+1800
|
* v2.2.1: forfeit blackjack bets when leaving or disconnectingsalmonik10 days11-42/+107
|
* v2.2.0: add blackjack with reserved bets and hit/stand/doublesalmonik10 days19-18/+1549
|