Skip to content

fix: keep name-less accounts usable and count held balance as the add-money milestone - #634

Merged
bmc08gt merged 3 commits into
mainfrom
fix/nameless-account-tabs-and-add-money-gate
Aug 24, 2026
Merged

bmc08gt merged 3 commits into
mainfrom
fix/nameless-account-tabs-and-add-money-gate

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Aug 23, 2026

Copy link
Copy Markdown
Collaborator

Three fixes that shipped in the 2026.8.3 rebuild, brought back to main so they aren't stranded on the release branch.

fix(you) — keep the You tab usable without a display name

TipCardTab swapped YouScreen out entirely for a bare setup prompt, so an account with no display name could not reach Settings — and therefore could not log out. YouScreen now always renders; only the card slot changes. Where the card would be, a blurred stand-in card carries the invitation, and the share affordances drop out until there is a name.

The card's own fill is black over a frosted backdrop, so on the black page it can only subtract brightness — the stand-in gets a pale base underneath instead, clipped back to the card's outline so the blur reads as a card rather than a smudge.

The CTA routes to .changeDisplayName, not .profileName: the latter's submit path guards on the sheet being on the .tips stack, so pushing it from .you saves the name and strands the user.

fix(chats) — stop gating the Chats tab on a tip card

TipsScreen swapped the whole Chats tab for the tip-card intro when the profile wasn't tippable. That hid existing conversations, and put a second copy of the invitation behind a tab that already has one next door. A name-less account can still send tips, so it can still hold conversations — the embedded tab now always renders TipConversationsScreen with its own "No Chats Yet" empty state.

The v1 sheet keeps the intro: it is that flow's only door into profile creation.

The You tab's copy is now word-for-word the Chats tab's, since the same account hits both and two different asks for one thing read as two different jobs.

fix(wallet) — count money in hand as the add-money milestone

hasEverAddedMoney() read only the activity table. On the affected account that table had 0 rows against a balance of 17452 quarks, so an account visibly holding $0.02 was being told to go add money. A balance cannot exist without having arrived, and the history feed does not always carry the arrival that put it there — so money in hand now settles the milestone before history is consulted. History still answers the spent case, where the balance is gone but the milestone must stay met.

Dust counts: the check is quarks > 0, not the giveable-balance check — too-small-to-spend still proves money arrived.

The second half is re-evaluation. The check was one-shot, so WalletScreen now recomputes the milestone and pulls history when the balance moves; onAppear alone fires once per launch and never again after a deposit lands.

The tab swapped YouScreen out for a bare full-screen setup prompt when
the profile had no name, which took the settings rows with it. My
Account and Advanced are the only route to Log Out, so a name-less
account could not sign out, or reach any setting at all.

YouScreen now renders either way. Where the card would be it draws the
card the user is about to get: a real TipcardView behind a blur, clipped
back to its own outline so it reads as a card rather than a smudge, with
the invitation to claim it on top. The link row and the Share/Download
pair address a card that does not exist yet, so they sit out until it
does.

The copy is the Chats tab's own name-less state word for word. The same
account meets both, and two different asks for the one thing read as two
different jobs.
The tab swapped its whole contents for the tip-card setup prompt until
the profile had a display name. A name-less account can still send tips,
so it can still hold conversations, and those were hidden behind the
prompt along with the No Chats Yet empty state the tab already has.

The Chats tab is now chats whatever the profile says. The invitation to
set up a tip card belongs to the tip-card tab, which makes it. The v1
Tips sheet keeps the intro: that flow has no other door into profile
creation.
The tutorial read the milestone from the activity table alone, so an
account holding a balance against an empty history was told to go add
money it already had. The history feed does not always carry the arrival
that put the balance there.

A balance now settles it before history is consulted: money cannot be
held without having arrived. History still answers for the spent case,
where the balance is gone but the milestone must stay met, which is what
it was there for. The wallet reloads the milestones when a balance moves
as well as on a history change, so the answer does not wait on an
activity row that may never come.
@bmc08gt
bmc08gt force-pushed the fix/nameless-account-tabs-and-add-money-gate branch from 653bfd3 to d318d61 Compare August 23, 2026 23:33
@bmc08gt
bmc08gt merged commit c3d8573 into main Aug 24, 2026
@bmc08gt
bmc08gt deleted the fix/nameless-account-tabs-and-add-money-gate branch August 24, 2026 00:24
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