Grow default profile pseudonym pool to 128x128 (16,384 combinations)#765
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
WalkthroughExpands the default profile pseudonym adjective and noun word lists in marmot-app from smaller sets to larger sets, altering the deterministic word selection derived from SHA-256 indices, and adds a unit test validating list sizes, casing, and sort order. ChangesPseudonym word list expansion
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Ready to review this PR? Stage has broken it down into 2 individual chapters for you:
Chapters generated by Stage for commit 352c09c on Jul 1, 2026 9:44pm UTC. |
|
@Datawav you have failing CI here. |
Expand DEFAULT_PROFILE_ADJECTIVES and DEFAULT_PROFILE_NOUNS from 32 to 128 entries each. Pool grows from 1,024 to 16,384 combinations. At 32 nouns the birthday-paradox 50% collision threshold sits at ~7 rolls, which is why users see the same animals repeating almost immediately at signup. At 128 nouns the same threshold moves to ~14. No logic changes. Existing 32 entries preserved; lists stay alphabetical. Existing assert_two_word_pseudonym shape test continues to pass. Word lists are byte-identical to the client-side mirror in marmot-protocol/whitenoise-android. Refs #764
cbffa47 to
352c09c
Compare
Closes marmot-protocol/mdk#401
Coordinates with marmot-protocol/whitenoise-android#883 / marmot-protocol/whitenoise-android#885
Summary
Grow
DEFAULT_PROFILE_ADJECTIVESandDEFAULT_PROFILE_NOUNSfrom 32 entries each to 128. Pool size moves from 1,024 to 16,384.With only 32 animals the birthday-paradox 50% collision probability hits around 7 random rolls — which is why users see the same animals repeating almost immediately at signup or across small group views. At 128 nouns the same threshold moves to roughly 14.
Changes
crates/marmot-app/src/lib.rs: expand the two&[&str]literals. Existing 32 entries preserved. Lists remain alphabetical, no duplicates.No logic changes.
default_profile_pseudonymis untouched and continues to usedigest[0..2]anddigest[2..4]modulo each list's length.Word-selection rubric
Approachable, broadly recognized English. No obscure register, no politicized terms, no scientific names, no folkloric beasts.
Coordination
This is the source of truth. Every client that calls into
marmot-app::default_profile_pseudonymvia the FFI bindings (iOS, desktop, Mac, Linux, web, rs) picks up the new lists automatically. The one exception iswhitenoise-android, which re-implements the generator locally for the edit-profile roll action so it doesn't need an engine round-trip; that file is updated in lockstep in marmot-protocol/whitenoise-android#885.The word lists in this PR are byte-identical to the Kotlin lists in the Android PR.
Verification
cargo check -p marmot-apppasses cleanly.crates/marmot-app/tests/relay_runtime.rs::assert_two_word_pseudonymis a shape-only check ("two ASCII title-case words separated by a space") and continues to pass without modification.DEFAULT_PROFILE_ADJECTIVES.len() == 128DEFAULT_PROFILE_NOUNS.len() == 128ProfilePseudonymGenerator.kt(verified by parsing both sources and comparing).Summary by CodeRabbit