Skip to content

fix(mobile): hide archived people and agents from choices; give them their own members section - #9320

Open
loganj wants to merge 7 commits into
mainfrom
loganj/mobile-hide-archived
Open

loganj wants to merge 7 commits into
mainfrom
loganj/mobile-hide-archived

Conversation

@loganj

@loganj loganj commented Nov 10, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Mobile kept offering archived people and agents as choices: Add members (including adding an agent to a Solo chat), New DM, the @ mention chooser, Search › People and the Agents page. An archived agent that shares a live agent's name also forced a qualifier onto the live one, because names were told apart across both. The members sheet listed archived members among live ones with nothing to mark them.

Now, matching desktop:

  • Archived people and agents are left out of those choices. History (messages, activity, profiles) still shows them.
  • The members sheet moves archived members out of People and Agents into their own "Archived · N" section after both: archived people, then archived agents. Each row reads "Archived · Member" (or Agent) in place of the role, status or "Working…" line. A screen reader reads it with the name. The members preview on the channel info page (the first five members above "See all") follows the same order and label.
  • Nothing is hidden or marked while the community's archive list is unknown or cannot be read, and you are never hidden from yourself.

Related issue

None found. The desktop members dialog gets the same Archived section in block/buzz-app#3203.

Testing

Widget and provider tests cover each surface, the unknown-archive case, the viewer rule and a community switch. Each test fails without its change.

Android emulator, local relay, fictional names. Each archived person or agent has a live namesake. History rows still show archived identities, as intended.

@ mention chooser, typing "@sc" (Scout qsfn is archived)

Before After

@ mention chooser, typing "@ca" (Casey Lee 9mhy is archived)

Before After

Add members, searching "Morgan" (Morgan Reyes ssc2 is archived)

Before After

Add members, searching "Atlas" (Atlas 85gl is archived)

Before After

New DM, no query yet

Before After

New DM, searching "Morgan"

Before After

Search › People, "Morgan"

Before After

Agents page

Before After

Channel info, members preview

Before After

Members sheet, top

Before After

Members sheet, scrolled to the end

Before After

Details

  • The archive reader (the community's NIP-IA archive list, signed by the relay's NIP-11 self key) moves from shared/me to shared/identity_archives, since it is no longer Solo-only. hiddenArchivedIdentitiesProvider is the single rule the surfaces read.
  • Pulling to refresh on the Agents page also rereads the archive list. Other views reuse the last list, as on desktop; it is also reread on reconnect and when the agent inventory changes.
  • A refresh keeps the last known list. After a community or account switch, the previous community's list does not apply: nobody is hidden until the new list arrives.
  • The shared chooser drops archived identities before names are compared, which covers Add members, New DM and mentions.
  • Search › People asks the relay for 24 people and shows the first 8 that are not archived, so archived matches do not push live people out.
  • The channel info preview shows the label on one line, so with a long name the role after "Archived" can be cut off. A screen reader still reads it in full.
  • Not changed: typing a full @Name by hand (without the chooser) still resolves against archived channel members too, so an archived namesake can still make a typed name ambiguous. Picking from the chooser is unaffected. Possible follow-up.

🤖 Generated with Claude Code

loganj and others added 5 commits November 10, 2026 10:32
Mobile offered known-archived people and agents wherever a person is
picked: Add members (also adding an agent to a Solo chat), New DM, the
mention chooser, Search > People and the Agents page. An archived agent
with a live agent's name also forced a qualifier onto the live name,
because labels were scoped over both.

This follows desktop's archiveHides rule. The NIP-IA archive reader
moves from shared/me to shared/identity_archives, and a new
hiddenArchivedIdentitiesProvider names the identities to leave out:
the known-archived ones, never the viewer, and none while the archive
list loads or cannot be read. History keeps showing them.

- The shared chooser drops them before labels are scoped, which covers
  Add members, New DM and mentions.
- Search > People asks for 24 people and shows the first 8 that are not
  archived, so archived people do not push live people out.
- The Agents page leaves them out.

Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Logan Johnson <loganj@squareup.com>
A community or account switch reloads the archive list, and while it
reloaded the hidden set was still the previous community's, so people
and agents archived there disappeared from the new community's pickers
for a few seconds. The hidden set now records the relay configuration
it was read for and hides nobody until the new community's list
arrives. A refresh in the same community still keeps the known set.

Tests now also cover the viewer never being hidden and Search > People
asking for more people than it shows.

Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Logan Johnson <loganj@squareup.com>
The members sheet listed known-archived members among live ones, in the
relay's order, with nothing to say they are archived. They now follow
the live members in People and in Agents, and their row reads
"Archived · <role>" in place of the role, status or "Working…" line,
which a screen reader reads with the name. It uses the shared
hiddenArchivedIdentitiesProvider: nobody while the archive list is
unknown, never the viewer.

Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Logan Johnson <loganj@squareup.com>
The members preview on the channel info page (the first five members
above "See all") still listed known-archived members in roster order,
with no label. It now uses the members sheet's rule: archived members
after the live ones, and "Archived" before their role.

Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Logan Johnson <loganj@squareup.com>
The previous change moved archived members to the end of the whole
preview, so an archived person could land below the agents. Archived
members now go last within People and within Agents, as in the members
sheet.

Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Logan Johnson <loganj@squareup.com>
@loganj
loganj marked this pull request as ready for review November 10, 2026 16:52
@loganj
loganj requested a review from a team as a code owner November 10, 2026 16:52
@loganj
loganj deployed to codex-review November 10, 2026 16:52 — with GitHub Actions Active
@github-actions github-actions Bot added the codex-security-review-current The posted Codex security review matches its recorded range. label Nov 10, 2026
@github-actions

This comment has been minimized.

Pull to refresh on Agents reread the inventory but kept the archive
list from the first read, so an agent restored elsewhere stayed hidden
until a reconnect. Reread the archive list with the inventory, as the
desktop members refresh does.

Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Logan Johnson <loganj@squareup.com>
@loganj

This comment has been minimized.

@github-actions github-actions Bot removed the codex-security-review-current The posted Codex security review matches its recorded range. label Nov 10, 2026
@loganj
loganj deployed to codex-review November 10, 2026 17:05 — with GitHub Actions Active
@github-actions github-actions Bot added the codex-security-review-current The posted Codex security review matches its recorded range. label Nov 10, 2026
@salman1993

This comment has been minimized.

Archived people and agents leave People and Agents for their own
Archived section after both: archived people, then archived agents,
each in the relay's order. Each row keeps its Archived label. The
channel info preview follows the same order. This matches the desktop
members dialog.

Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Logan Johnson <loganj@squareup.com>
@loganj
loganj deployed to codex-review November 10, 2026 17:13 — with GitHub Actions Active
@github-actions github-actions Bot added codex-security-review-current The posted Codex security review matches its recorded range. and removed codex-security-review-current The posted Codex security review matches its recorded range. labels Nov 10, 2026

@salman1993 salman1993 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🤖 Reviewed 8c8195fa1 and 2049ffdef: no blockers. The archive-refresh finding is fixed, and archived members now follow People and Agents in both the members sheet and preview. just mobile-check mobile-test passed at 2049ffdef. CI is still running.

@loganj loganj changed the title fix(mobile): hide archived people and agents from choices; list them last in members fix(mobile): hide archived people and agents from choices; give them their own members section Nov 10, 2026
@loganj

This comment has been minimized.

This branch was successfully deployed

1 active deployment
codex-review — 2049ffde Deployed Nov 10, 2026 by loganj via Run Codex Security Review #14274
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

codex-security-review-current The posted Codex security review matches its recorded range.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants