Repository navigation
Comparing changes
Open a pull request
base repository: uuidjs/uuid
base: v14.0.1
head repository: uuidjs/uuid
compare: v14.0.2
- 7 commits
- 11 files changed
- 9 contributors
Commits on Jul 2, 2026
-
fix(v7): align default seq formula in v7Bytes with updateV7State (#965)
--------- Co-authored-by: JSap0914 <JSap0914@users.noreply.github.com> Co-authored-by: Robert Kieffer <robert@broofa.com>
Configuration menu - View commit details
-
Copy full SHA for a67db57 - Browse repository at this point
Copy the full SHA a67db57View commit details
Commits on Jul 7, 2026
-
chore: pin
publintversion in CI (#966)--------- Co-authored-by: Robert Kieffer <robert@broofa.com>
Configuration menu - View commit details
-
Copy full SHA for ac36860 - Browse repository at this point
Copy the full SHA ac36860View commit details -
Configuration menu - View commit details
-
Copy full SHA for ea83515 - Browse repository at this point
Copy the full SHA ea83515View commit details
Commits on Aug 6, 2026
-
fix(v1): carry nsecs overflow into the timestamp's high bits (#972)
The v1/v6 timestamp is `msecs * 10000 + nsecs` in 100-nanosecond intervals since the Gregorian epoch. It needs 57+ bits, so `v1Bytes()` computes it as a 32-bit `time_low` and a 28-bit `time_mid`/`time_high` half. `nsecs` was added to the low half only, and the low half was reduced mod 2^32, so a `nsecs` value that pushed it past 2^32 wrapped without incrementing the high half. The high half was also derived from `msecs` alone via a floating-point divide, which cannot see that carry at all. The result is a timestamp 2^32 * 100ns = 429.4967296 seconds in the past. It happens whenever `msecs * 10000` lands within 10000 of a 2^32 boundary, i.e. for one millisecond about every 430 seconds, and then only for the `nsecs` values above the boundary. `v1()`'s internal state walks `nsecs` from 0 to 9999 within a millisecond, so it is reachable with no options at all: generating enough ids inside that millisecond makes the timestamp jump backwards, breaking the monotonicity that v1 ordering and v6 sorting depend on. Because the wrap maps two distinct instants onto one encoded timestamp, a generator with a stable `clockseq` and `node` can also emit the same id twice, 429.496s apart. Compute the low half's own carry and fold it into the high half. `msecs` is split at bit 28 rather than 32 because `0x10000000 * 10000` is exactly `625 * 0x100000000`, so the split is exact and the high half needs no floating-point division.
Configuration menu - View commit details
-
Copy full SHA for 6adcc1d - Browse repository at this point
Copy the full SHA 6adcc1dView commit details
Commits on Aug 8, 2026
-
fix(v1): set the multicast bit on v1Bytes's own randomly-generated no…
…de (#973) updateV1State() already sets the RFC 9562 section 6.10 multicast bit on the node it randomizes and caches, but that's only reached by plain v1() calls with no options. Every other path -- v1(options) whenever options omits node, and v6() unconditionally, since v6 always defers its random node to v1Bytes() rather than updateV1State() -- computes its own fresh random node inline via node ??= rnds.slice(10, 16) without the same bit set. v6() is the RFC-recommended, time-ordered generator, and it fails this MUST-level requirement on its default random node roughly half the time, not as a rare edge case (empirically ~50% across repeated trials before this fix, 100% after).
Configuration menu - View commit details
-
Copy full SHA for b1da338 - Browse repository at this point
Copy the full SHA b1da338View commit details
Commits on Aug 18, 2026
-
docs: point the Node support permalink at the CI version matrix (#974)
Co-authored-by: MoonsvnLyn <287222957+FirmaSpring@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for f3c564e - Browse repository at this point
Copy the full SHA f3c564eView commit details -
chore(main): release 14.0.2 (#967)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for fd59f02 - Browse repository at this point
Copy the full SHA fd59f02View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v14.0.1...v14.0.2