Skip to content

Ddd audit - #138

Merged
folkengine merged 6 commits into
mainfrom
ddd-audit
Sep 15, 2026
Merged

folkengine merged 6 commits into
mainfrom
ddd-audit

Conversation

@folkengine

@folkengine folkengine commented Sep 15, 2026 •

Copy link
Copy Markdown
Collaborator

Features

  • New entropy feature. It is on by default. Without it, the core build uses no OS randomness (no getrandom).
  • New persistence feature. It holds the file save and load code.
  • New json, csv and full features. full gives back the old default set.
  • New "twin" functions that take an id or an RNG (random number maker) as input. Examples: Table::*_with_id, Player::with_id, act_shuffle_deck_with,
    PokerSession::start_hand_with / run_hand_with.
  • New Pluribus::parse_log(text). It reads a log from text, not from a file.
  • New SimTable::DEFAULT_SEED and EquityOptions::DEFAULT_SEED.

Breaking changes

  • The default features are now small: equity, player-stats, hup-charts. YAML, rayon, JSON and CSV are off by default.
  • BotDecider::decide_seeded is now the method you must write. decide is now a built-in helper.
  • The console input helpers now need the terminal feature.
  • The embedded heads-up chart code now needs hup-charts.
  • Callers that turn off default features must add entropy. Known callers: pkwasm, pkarena0-web, cardroom.

Fixes

  • A replay now gives the same Table every time. Ids come from the record, not from chance.
  • Table::default() now writes the nil id to the event log. Before, it wrote a random id.
  • Nubificus::get_log_files is now behind persistence.
  • make generate-hups-bin works again.

Refactors

  • SimTable always holds its own RNG.
  • Removed util::name and the random_name_generator dependency.
  • Removed Util::read_lines and Util::commentary_action_to.
  • The perf/ crate uses fixed ids. Its Cargo.lock is much smaller.

Config / docs / tests

  • make check-purity is stricter. It fails on getrandom, csv, serde_json and clap in the small builds.
  • The Makefile and CI now use --features full. They also check each feature by itself.
  • Examples now list the features they need.
  • New tests/kernel_determinism.rs. It tests the core build with no entropy.
  • New docs/KERNEL_PURITY

…uild free of getrandom

0.17.0: gate
  file, console and chart code behind persistence/terminal/hup-charts; add Pluribus::parse_lo

0.16.0: pure by default — lean default features, full umbrella, csv/json optional, purity gate checks the default
  tree

0.15.0: inject Table/Player ids, drop random_name_generator, ratchet purity gate on
  getrandom

Kernel purity audit re-run: random IDs in Table/Player, getrandom ratchet
@folkengine
folkengine merged commit cd090bf into main Sep 15, 2026
17 checks passed
@folkengine
folkengine deleted the ddd-audit branch September 15, 2026 23:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant