Skip to content

Fix nonce reuse across draws, validate inputs, drop runtime deps - #1

Merged
tacyarg merged 2 commits into
masterfrom
fix/nonce-per-draw-validation
Sep 17, 2026
Merged

tacyarg merged 2 commits into
masterfrom
fix/nonce-per-draw-validation

Conversation

@tacyarg

@tacyarg tacyarg commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

A Provable instance built its byte stream once, so repeated floats()/ints() calls kept the original nonce and the emitted state no longer reproduced the outcome. Every draw now opens a stream for the current nonce, then advances and emits; long-lived and re-created instances agree. Byte stream, float and integer conversions and rotation are unchanged and pinned by fixed vectors.

Also: validate seeds and integers (canonical decimal strings accepted), always derive serverHash from serverSeed, stop mutating caller objects, fix HashChain asserts and bounds, document HashSeries as immutable, restore the LICENSE holder, replace lodash and uuid with built-ins, add a files field, and rewrite the README to match the algorithm.

A Provable instance built its byte stream once, so repeated floats()/ints()
calls kept the original nonce and the emitted state no longer reproduced the
outcome. Every draw now opens a stream for the current nonce, then advances
and emits; long-lived and re-created instances agree. Byte stream, float and
integer conversions and rotation are unchanged and pinned by fixed vectors.

Also: validate seeds and integers (canonical decimal strings accepted),
always derive serverHash from serverSeed, stop mutating caller objects,
fix HashChain asserts and bounds, document HashSeries as immutable,
restore the LICENSE holder, replace lodash and uuid with built-ins,
add a files field, and rewrite the README to match the algorithm.
npm version patch|minor|major is now the whole release: preversion checks
the CHANGELOG has an Unreleased entry and runs the tests, version dates the
entry and rewrites the compare links, postversion pushes commit and vX.Y.Z
tag. publish.yml publishes on v* tags with npm provenance and creates the
GitHub release from the changelog section; ci.yml runs tests on Node 16-24.

Commit the Yarn 3.3.0 lockfile (node-modules linker, global cache), switch
repository.url to https for provenance, backfill CHANGELOG for 1.0.0 and
1.0.1, document the versioning policy, and drop the old release script.
@tacyarg
tacyarg merged commit e0006c4 into master Sep 17, 2026
5 checks passed
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