From 10ff558853f549d3f3c7c8432488bfad9da6973a Mon Sep 17 00:00:00 2001 From: salmonik Date: Sun, 1 Nov 2026 19:58:59 +0100 Subject: v4.1.0: add the egui workspace member and the roulette style spike 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. --- AGENTS.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'AGENTS.md') diff --git a/AGENTS.md b/AGENTS.md index 3908c2d..c3b555d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -59,11 +59,20 @@ receives `Command` or a finished line through `submit_line`, never a key. - egui lives in the `gui/` workspace member. Its dependencies must never enter the TUI or server build graph: no GUI crate in the root package's - `[dependencies]`. + `[dependencies]`. The GUI may depend on the core, never the reverse. +- Build the GUI with `cargo build -p zagan-bet-gui --profile gui-release`; + the profile lives at the workspace root because a member's is ignored. +- Colours, spacing and font sizes come from `gui/src/theme.rs`; screens must + not hard-code them. The embedded fonts are Open Sans (OFL) and Hack (MIT); + ship their licence files with any change. +- GUI integration tests live in `gui/tests/`, because the root package cannot + depend on the GUI. - First contact shows the fingerprint and waits for a decision before sending any credentials. A changed key is a hard stop; forgetting it is explicit. - The GUI is themed deliberately. Default egui styling is not an acceptable - look; keep a style module and a reference screen. + look; keep a style module and a reference screen. The palette is derived + from the terminal's ANSI colours, and felt green is only ever the roulette + table. ## Client TUI - `render_lines()` and `render()` must agree. If `render()` uses `\r\n`, -- cgit v1.2.3