fix: skip null/empty DisplayName in chat @-mention suggestions#8666
fix: skip null/empty DisplayName in chat @-mention suggestions#8666biotech77 wants to merge 3 commits into
Conversation
|
Windows and Mac build successful in Unity Cloud! You can find a link to the downloadable artifact below. |
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
|
@claude review |
|
Claude finished @biotech77's task in 2m 2s —— View job Claude Review
SummaryProblem: Does the fix address the cause? It addresses the consumer-side cause — using a possibly-null string as a dictionary key. It does not investigate why Blocking issuesNone. Notes (non-blocking, not required)
REVIEW_RESULT: PASS ✅ |
|
@claude review |
|
Claude finished @biotech77's task in 1m 20s —— View job Claude Review
SummaryProblem: Does the fix address the cause or a symptom? It fixes the consumer-side cause — guarding against a Blocking issuesNone. Notes (non-blocking, not required)
REVIEW_RESULT: PASS ✅ |
|
Claude finished @biotech77's task in 53s —— View job Claude Review
SummaryProblem: Does the fix address the cause or a symptom? It fixes the consumer-side cause — guarding against a Blocking issuesNone. Notes (non-blocking, not required)
REVIEW_RESULT: PASS ✅ |
NickKhalow
left a comment
There was a problem hiding this comment.
Explorer/Assets/DCL/Profiles/SharedAPI/Profile.CompactInfo.cs violates the contract:
/// <summary>
/// The name of the user after passing character validation, including the
/// Wallet Id (if the user doesnt have a claimed name)
/// </summary>
public string DisplayName { get; private set; }
Display name is never supposed to be null. The patch fixes consequences rather than the root cause. Please address the root cause
|
Claude finished @biotech77's task in 1m 38s —— View job Claude Review
SummaryProblem: Does the fix address the cause or a symptom? Symptom only. I'm aligning with @NickKhalow's review here — the prior auto-review I posted was too lenient. The XML doc on How does it become null? The struct's
Any of these flows can deliver a Blocking issues1. Fix the root cause, not the consumer —
After fixing the producer, the consumer guard added in this PR becomes unnecessary and should be reverted. Notes (non-blocking)
REVIEW_RESULT: FAIL ❌ Branch · |
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
|
I propose to close this PR as it doesn't bring any value per se |
Pull Request Description
Closes #8056
What does this PR change?
SuggestionPanelChatInputState.UpdateProfileNameMapiterates the participantlist and uses
Profile.CompactInfo.DisplayNameas aDictionary<string, V>key.When
DisplayNameisnull,TryGetValue/TryAddthrowArgumentNullException("Value cannot be null. Parameter name: key") andcrash the chat input on the next keystroke or focus loss.
This PR adds a one-line guard that skips participants whose
DisplayNameis null or empty — they cannot be
@-mentioned anyway.Quick reference
Run this PR (with cache)
metaforge explorer run
Run this PR (without cache — clears Explorer data)
metaforge explorer run --clear
Run this PR (fresh account — clears everything and creates a new account)
metaforge account create --clear
metaforge explorer run
Tail logs while testing
metaforge explorer logs tail --filter ""
Run automation tests against this PR
metaforge explorer test
-->
Steps (standard run):
metaforge explorer run XXXX # ← replace with this PR numberExpected result:
Steps (fresh account):
metaforge account create --clear metaforge explorer run XXXX # ← replace with this PR numberExpected result:
Automation (if applicable):
metaforge explorer test XXXXTest Steps
Additional Testing Notes
Quality Checklist
Code Review Reference
Please review our Branch & PR Standards before submitting. It explains the automated review flow, QA/DEV approval requirements, and what each label does — especially useful for first-time contributors.