Skip to content

fix(ui): restore Governance → Voting (build break + missing back navigation) - #925

Merged
QuantumExplorer merged 1 commit into
developfrom
fix/governance-voting-entry-point
Aug 7, 2026
Merged

fix(ui): restore Governance → Voting (build break + missing back navigation)#925
QuantumExplorer merged 1 commit into
developfrom
fix/governance-voting-entry-point

Conversation

@QuantumExplorer

@QuantumExplorer QuantumExplorer commented Aug 7, 2026

Copy link
Copy Markdown
Member

Two fixes to the same entry point, one commit each.

1. develop is currently red

develop does not compile. #923 and #924 collided after both merged green independently:

On the merged tip the two halves are crossed:

  • GovernanceMenuScreen.swift:123 — the live entry point — still called the deleted UsernameVotingViewController: error: cannot find 'UsernameVotingViewController' in scope.
  • MainMenuViewController.showVoting() — the updated copy — was orphaned: defined, never called, because feat(ui): group Masternodes and Voting under a Governance menu #924 removed its caller.

So the reachable path was broken and the fixed path was unreachable. Points Governance at UsernameVotingScreen (exactly what #923 wrote, in the location that is actually reachable) and deletes the dead copy.

2. No way back out of a contested name

With the build restored, opening a name stranded the user: the contest detail had no back button and no navigation bar at all.

showVoting() pushed a bare UIHostingController(rootView: UsernameVotingScreen()). Both voting screens set .navigationTitle, and the list drills into ContestDetailScreen via NavigationLink — but with no NavigationStack there was no bar to host that title, and no automatic back button for the push.

Wrapped in a NavigationStack with a leading chevron that pops the UIKit stack — the same wrapper showMasternodes() in this file already uses, for the same reason. Contest detail now gets its standard back button, and the root gets a way back to Governance.

Verification

dashpay scheme builds clean (arm64 simulator) — it does not on develop without commit 1. Installed and launched on the simulator; back navigation itself is unverified on-device (PIN-gated), so the thing to click is Governance → Voting → a contested name → back.

develop does not compile: #923 and #924 collided after both merged
green independently.

#923 replaced UsernameVotingViewController with the SwiftUI
UsernameVotingScreen and updated the showVoting() that lived in
MainMenuViewController when that PR was written. #924 had since moved
the Voting entry point into GovernanceMenuScreen, which #923 never saw.

On the merged tip the live entry point (Governance) still called the
deleted controller — a hard build error — while the updated copy in
MainMenuViewController was orphaned, since #924 removed its caller.

Points Governance at UsernameVotingScreen (exactly what #923 wrote, in
the location that is actually reachable) and deletes the dead copy.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@QuantumExplorer, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 16 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 2de56b85-e24a-4214-9eb9-525507411ece

📥 Commits

Reviewing files that changed from the base of the PR and between 86301f0 and cfb8667.

📒 Files selected for processing (2)
  • DashWallet/Sources/UI/Menu/Governance/GovernanceMenuScreen.swift
  • DashWallet/Sources/UI/Menu/Main/MainMenuViewController.swift

Comment @coderabbitai help to get the list of available commands.

@QuantumExplorer
QuantumExplorer merged commit bd3b7d1 into develop Aug 7, 2026
2 checks passed
@QuantumExplorer QuantumExplorer changed the title fix(ui): point Governance's Voting row at UsernameVotingScreen fix(ui): restore Governance → Voting (build break + missing back navigation) Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant