fix(data): enforce 32-char display_name limit at sync client boundary (M-22)

opt_in_leaderboard in sync_client.rs was passing display_name through
as-is, relying solely on the engine's .chars().take(32) call upstream.
Add the truncation in the sync client so any caller is protected, and
also apply it at save-time in handle_display_name_confirm so settings
never stores an over-length name.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
funman300
2026-05-17 21:29:38 -07:00
parent 2301cc65d3
commit 2e52f544f1
2 changed files with 4 additions and 1 deletions
+1 -1
View File
@@ -746,7 +746,7 @@ fn handle_display_name_confirm(
return;
}
if let Some(mut settings) = settings {
let trimmed = buf.0.trim().to_string();
let trimmed: String = buf.0.trim().chars().take(32).collect();
settings.0.leaderboard_display_name = if trimmed.is_empty() {
None
} else {