summaryrefslogtreecommitdiffstats
path: root/AGENTS.md
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-11-01 19:58:59 +0100
committersalmonik <salmonik@tuta.io>2026-11-01 19:58:59 +0100
commit10ff558853f549d3f3c7c8432488bfad9da6973a (patch)
tree271b05fead384e2d91e5c8332fea9d00b540f0cc /AGENTS.md
parentv4.0.7: finish the Phase 1 boundary with a command shell (diff)
downloadzagan-bet-10ff558853f549d3f3c7c8432488bfad9da6973a.tar.gz
zagan-bet-10ff558853f549d3f3c7c8432488bfad9da6973a.zip
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.
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md13
1 files changed, 11 insertions, 2 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 3908c2d..c3b555d 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -59,11 +59,20 @@
59 receives `Command` or a finished line through `submit_line`, never a key. 59 receives `Command` or a finished line through `submit_line`, never a key.
60- egui lives in the `gui/` workspace member. Its dependencies must never 60- egui lives in the `gui/` workspace member. Its dependencies must never
61 enter the TUI or server build graph: no GUI crate in the root package's 61 enter the TUI or server build graph: no GUI crate in the root package's
62 `[dependencies]`. 62 `[dependencies]`. The GUI may depend on the core, never the reverse.
63- Build the GUI with `cargo build -p zagan-bet-gui --profile gui-release`;
64 the profile lives at the workspace root because a member's is ignored.
65- Colours, spacing and font sizes come from `gui/src/theme.rs`; screens must
66 not hard-code them. The embedded fonts are Open Sans (OFL) and Hack (MIT);
67 ship their licence files with any change.
68- GUI integration tests live in `gui/tests/`, because the root package cannot
69 depend on the GUI.
63- First contact shows the fingerprint and waits for a decision before sending 70- First contact shows the fingerprint and waits for a decision before sending
64 any credentials. A changed key is a hard stop; forgetting it is explicit. 71 any credentials. A changed key is a hard stop; forgetting it is explicit.
65- The GUI is themed deliberately. Default egui styling is not an acceptable 72- The GUI is themed deliberately. Default egui styling is not an acceptable
66 look; keep a style module and a reference screen. 73 look; keep a style module and a reference screen. The palette is derived
74 from the terminal's ANSI colours, and felt green is only ever the roulette
75 table.
67 76
68## Client TUI 77## Client TUI
69- `render_lines()` and `render()` must agree. If `render()` uses `\r\n`, 78- `render_lines()` and `render()` must agree. If `render()` uses `\r\n`,