Files
amethyst/commonsUI
Vitor PamplonaandClaude Opus 5 c4f6469a5f feat(cordn): make the discovery list on New Cordn group usable
A discovery run against a public relay returned 55 coordinators as a flat list
of identical-looking rows. Each showed a name and one line of text, and that
line was broken.

**"Last announced Aug 7 ago".** `timeAgoNoDot` answers with a span for
something recent and an absolute date for anything past a month, and one
template served both. Every stale row read as nonsense. The date branch now
gets a template with no "ago" in it.

**Rows that could not be told apart.** The reference server ships as "My
coordinator", so a dozen rows carried that name and nothing else. A pubkey
prefix is appended to the names that actually collide, so the common case
stays clean — "My coordinator · b9d8fac7" next to a plain "cordn-net".

**Nothing about where or what.** The relays were already in
`DiscoveredCoordinator` and simply never drawn; rows now show the hosts (two,
then a count) and the coordinator's own `about` when it published one, which
turns out to be the most telling line on the page: "Cordn coordinator running
in a browser tab; key package quota 32 per identity".

**55 rows deep.** Anything that has not announced in a month is folded behind
"Show 55 that stopped announcing", with a line saying why it matters — creating
a group on a coordinator that has gone away fails at the first call. Live ones
are capped at eight with "Show all N".

On group count: there is no such number to show. The eleven coordinator tools
have no group listing and should not — a coordinator enumerating its groups to
a stranger would leak exactly what the exposure card promises it does not.
Liveness, relays and the advertised surface are the honest substitutes.

**Not a LazyColumn**, which was my first instinct and is wrong here: this
screen is a form, and a lazy list disposes what scrolls off, which for the text
fields below would throw away focus and IME state mid-typing. Capping the rows
bounds composition without putting a form inside a recycler.

Also capitalises the last two stragglers, the screen title and the picker's
call to action.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-25 16:51:01 -04:00
..