Skip to content

fix: stop showing nearby voice chat intro tip - #9698

Closed
decentraland-bot wants to merge 2 commits into
devfrom
fix/9696-remove-nearby-voice-tip
Closed

fix: stop showing nearby voice chat intro tip#9698
decentraland-bot wants to merge 2 commits into
devfrom
fix/9696-remove-nearby-voice-tip

Conversation

@decentraland-bot

@decentraland-bot decentraland-bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

What does this PR change?

Stops the outdated Nearby Voice Chat intro/tip banner from being started by VoiceChatPlugin.

The change removes the tip-specific runtime flow (RunNearbyVoiceTipAsync, NearbyVoiceTipFlow, and its cancellation token/constructor wiring) while keeping the Nearby Voice Chat feature initialization intact: button controller, widget controller, state model, audio systems, mute service, suppressor, and feature flag behavior are unchanged.

Closes #9696

Plan

The implementation was based on docs/plans/2026-08-12-fix-remove-nearby-voice-tip-plan.md:

  • Remove NearbyVoiceTipView/tip cancellation state from VoiceChatPlugin constructor and fields.
  • Remove the RunNearbyVoiceTipAsync call and all tip flow methods from VoiceChatPlugin.
  • Update DynamicWorldContainer to stop passing SidebarView.NearbyVoiceTip into VoiceChatPlugin.
  • Leave serialized prefab/view assets untouched in this PR to avoid Unity prefab serialization risk without editor validation.

Test Instructions

Steps (standard run):

metaforge explorer run XXXX  # ← replace with this PR number

Expected result:

  • The Nearby Voice Chat intro/tip banner does not appear after loading.
  • The Nearby Voice sidebar button still appears when FeatureId.NearbyVoiceChat is enabled.
  • Clicking the Nearby Voice sidebar button still opens the widget/panel as before.

Steps (fresh account):

metaforge account create --clear
metaforge explorer run XXXX  # ← replace with this PR number

Expected result:

  • The Nearby Voice Chat intro/tip banner does not appear for a fresh account.
  • Nearby Voice Chat remains accessible from the sidebar button.

Automation (if applicable):

metaforge explorer test XXXX

Prerequisites

  • Nearby Voice Chat feature flag enabled for verification.

Test Steps

  1. Launch Explorer with Nearby Voice Chat enabled.
  2. Wait until loading completes.
  3. Verify the intro/tip banner is not shown.
  4. Click the Nearby Voice Chat sidebar button.
  5. Verify the Nearby Voice widget/panel still opens.

Additional Testing Notes

  • Local bash scripts/lint/lint-changed.sh was attempted; it skipped because ReSharper CLI is not installed in this environment.
  • Local make test-editmode TEST_FILTER=NearbyVoiceChatStateModelShould was attempted; it could not run because make is not available in this environment.

Quality Checklist

  • Changes have been tested locally
  • Documentation has been updated (if required)
  • Performance impact has been considered
  • For SDK features: Test scene is included

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.


Requested by Ignacio Mazzara via Slack
🤖 Created via Slack with Claude

@decentraland-bot
decentraland-bot requested review from a team as code owners August 12, 2026 12:01
@github-actions
github-actions Bot requested a review from DafGreco August 12, 2026 12:02
@decentraland-bot decentraland-bot added the ext-contribution Identifies a contribution which was not initiated by a Unity Developer label Aug 12, 2026
@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

🚦 CI Status

Build

Build failed! Check the logs to see what went wrong.
If the error repeats please consider the clean-build tag.

Lint

Warnings not reduced: 13292 => 13292 — remove at least 1 warning to merge.

Warnings/errors in files changed by this PR (3)
Assets/DCL/PluginSystem/Global/VoiceChatPlugin.cs:89  CSharpWarnings::CS8618  Non-nullable field 'voiceChatConfiguration' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the field as nullable.
Assets/DCL/PluginSystem/Global/VoiceChatPlugin.cs:22  RedundantUsingDirective  Using directive is not required by the code and can be safely removed
Assets/DCL/PluginSystem/Global/VoiceChatPlugin.cs:38  RedundantUsingDirective  Using directive is not required by the code and can be safely removed

Tests

⚠️ EditMode produced no results — the run likely crashed or timed out before finishing. Check the Unity Test / Test (editmode) job.

TESTS SUITE Result Passed Failed Skipped
EditMode ⚠️ No results
PlayMode ✅ Passed 236 0 36

@github-actions

Copy link
Copy Markdown
Contributor

Slack notification sent to #explorer-ext-contributions for external review.
To re-send, delete this comment and re-add the ext-contribution label.

@decentraland-bot decentraland-bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — fix: stop showing nearby voice chat intro tip

STEP 2 — Root-cause check: PASS ✅

The PR removes an outdated Nearby Voice Chat intro/tip banner (NearbyVoiceTipFlow). The change directly addresses the intent — eliminating the feature entirely rather than working around it. This is a deliberate removal, not a symptom patch.

STEP 3 — Design & integration: PASS ✅

No new units are introduced. This is a pure deletion of:

  • NearbyVoiceTipView field + constructor parameter from VoiceChatPlugin
  • nearbyTipCts (CancellationTokenSource) field + its SafeCancelAndDispose() in Dispose()
  • RunNearbyVoiceTipAsync static method
  • NearbyVoiceTipFlow nested static class
  • SidebarView.NearbyVoiceTip argument from DynamicWorldContainer

Teardown trace: The removed nearbyTipCts.SafeCancelAndDispose() was the only teardown for nearbyTipCts, and both are removed together — no leak introduced. All remaining voice chat initialization (button controller, widget controller, state model, audio systems, mute service, suppressor) is untouched and correctly scoped via pluginScope.

loadingStatus field: Still consumed by NearbyVoiceChatSuppressor — not dead after this removal.

STEP 4 — Member audit: PASS ✅

No new members added. All removed members (nearbyVoiceTipView, nearbyTipCts, constructor parameter, methods, nested class) are consistently removed as a unit.

STEP 5 — Line-level review: No issues found

The deletion is clean and consistent across both files. No orphaned references, no broken constructor signatures, no missing dispose paths.

[P2] Leftover dead assets (acknowledged): After this PR, the following become unreferenced from runtime code:

  • NearbyVoiceTipView class (Explorer/Assets/DCL/VoiceChat/NearbyVoiceChat/UI/NearbyVoiceTipView.cs)
  • SidebarView.NearbyVoiceTip serialized property (Explorer/Assets/DCL/UI/Sidebar/SidebarView.cs)
  • DCLPrefKeys.NEARBY_VOICE_TIP_DISMISSED constant

The PR description explicitly states these are left in place to avoid Unity prefab serialization risk without editor validation — this is a reasonable scope decision. Consider filing a follow-up issue to clean up the dead view class, serialized field, and pref key constant.

Git conventions (ADR-6): PASS ✅

  • PR title: fix: stop showing nearby voice chat intro tip — valid semantic commit format
  • Branch: fix/9696-remove-nearby-voice-tip — matches <type>/<summary> convention

Security review: No security issues found

Pure UI code removal with no auth, input handling, or data exposure implications.


REVIEW_RESULT: PASS ✅
COMPLEXITY: SIMPLE
COMPLEXITY_REASON: Deletion-only change in 2 files removing an unused UI tip banner from VoiceChatPlugin — no ECS, async, or architectural changes.
QA_REQUIRED: YES


Reviewed by Jarvis 🤖 · Requested via GitHub

@lorux0

lorux0 commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator

Superseded by: #9698

@lorux0 lorux0 closed this Aug 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ext-contribution Identifies a contribution which was not initiated by a Unity Developer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Nearby Voice Chat tip: fix overlay behavior or remove

3 participants