镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

fix(people): find verified people who have no profile in New message, mentions and Command-K - #2668

Open
morgmart wants to merge 8 commits into
mainfrom
morganm/verified-only-people-search
Open

morgmart wants to merge 8 commits into
mainfrom
morganm/verified-only-people-search

Conversation

@morgmart

@morgmart morgmart commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Fixes AIDA-2449 and AIDA-2436.

What

People who have a relay-verified name but no profile could be added in Add members (#2554), but New message, @mentions and Command-K still couldn't find them.

This builds on #2554's rule instead of adding a second one:

  • No names are copied onto search results. The people directory returns someone found only by a verified name as an unnamed row. Each picker names it live through the existing verified-name lookup, which stays pinned to the relay's authority key. A head signed by anyone else finds nobody.
  • New message always searches typed names. A finished browse lists profiles only, so it can't prove that someone with only a verified name isn't there.
  • Mentions reuse a finished search, or treat an empty one as proof that nobody matches, only when the typed text is long enough for the relay to match verified names (a plain word of 3+ characters). They keep an unnamed row until its name is looked up.

Tests

  • Directory: finds a verified-only person, and ignores a head from another signer.
  • New message: finds a verified-only person by verified name and names the chip from it. Also covers searching after a finished browse.
  • Mentions: keeps an unnamed row on refinement, and searches again after a 2-character query.
  • The new tests fail on main and pass with this change.

Screenshots

No visual change. Rows use the existing pickers and labels.

🤖 Generated with Claude Code

@morgmart
morgmart marked this pull request as ready for review November 5, 2026 21:26
@morgmart
morgmart requested a review from a team as a code owner November 5, 2026 21:26

@kalvinnchau kalvinnchau 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.

🤖 Three verified-name search gaps remain: directory completion suppresses lookup, two-character mention caching suppresses refinement, and pending exact-key reads retain withdrawn authority names.

Comment thread src/features/relay/direct-messages.ts Resolved

@kalvinnchau kalvinnchau 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.

🤖 Three residual verified-name search defects and a page-completeness edge case remain. The prior three reported triggers are repaired.

Comment thread src/shared/search-debounce.ts Resolved
Comment thread src/features/relay/direct-messages.ts Resolved

@kalvinnchau kalvinnchau 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.

🤖 Two remaining mention-name lifetime defects and a regression-coverage gap. The authority-withdrawal issue is an incomplete repair of the earlier finding; display-name matching, compound-prefix controls and raw-page pagination now pass the exercised cases.

Comment thread src/features/relay/direct-messages.ts Resolved

@kalvinnchau kalvinnchau 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.

🤖 The mounted chooser repair passes withdrawal/rotation checks. Remaining lifetime consumers and a caller regression gap are detailed inline.

Comment thread src/features/relay/verified-profile.ts Resolved
… mentions and Command-K

Builds on #2554's rule for Add members: a person the relay finds by a
verified name alone comes back as an unnamed row, and the picker names
it live from the community's verified lookup. No name is copied onto
search results.

- The people directory returns those rows, so New message, mentions
  and Command-K all see them.
- New message always searches typed names: a finished browse lists
  profiles only and cannot rule them out.
- Mentions reuse a finished search, or treat an empty one as proof of
  absence, only for text long enough for the relay to match verified
  names, and keep an unnamed row until its name is looked up.

Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
@morgmart
morgmart force-pushed the morganm/verified-only-people-search branch from a899cf8 to 5226bbb Compare November 6, 2026 02:51
@morgmart morgmart changed the title fix(people): find people who only have a verified name fix(people): find verified people who have no profile in New message, mentions and Command-K Nov 6, 2026
…reads

The recipient search now checks verified names in the shared profiles.

Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>

@kalvinnchau kalvinnchau 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.

🤖 Three functional gaps remain in verified-name discovery/completion, plus a missing regression assertion. Details inline.

Comment thread src/features/relay/direct-messages.ts Resolved
Every consumer of the people directory now names a person found by a
verified name alone before offering or deciding on them:

- Agent Share names rows like New message, and hides one still unnamed.
- Space completion reads the verified names it needs before deciding,
  so a pending chip resolves even if the chooser never named the row.
- Refining a cached mention page also matches the verified username.

Adds a usePeople test that fails without the verified-name match keys.

Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>

@kalvinnchau kalvinnchau 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.

🤖 Two new pending-Space naming concerns. The namesake defect is reproduced in an isolated resolver test, but actual-app browser checks did not reproduce it; that discrepancy remains unresolved. The supersession concern is source-supported and lacks runtime confirmation.

Space completion had its own copy of the verified-name rules, and it
drifted: it asked only about unnamed rows, missing a namesake with a
profile, and could restore a name a newer shared head had withdrawn.

The lookup that useVerifiedNames runs is now one function,
lookUpVerifiedNames. The hook and the Space resolver both call it, and
both read names back through verifiedName, so they share one set of
authority and supersession rules.

Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>

@kalvinnchau kalvinnchau 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.

🤖 A verified-name read failure now allows pending Space resolution to select a namesake from incomplete evidence. Details inline.

…amed

A person found by a verified name alone, whose name the lookup could
not read, may be a namesake of anyone else on the page. Space returns
to prose instead of picking from incomplete evidence, whether the read
failed or simply did not answer.

Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>

@kalvinnchau kalvinnchau 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.

🤖 One remaining Space-completion consistency defect.

morgmart and others added 2 commits November 5, 2026 21:00
The mounted chooser and the pending resolver now share hasUnnamed: a
page holding someone found by a verified name alone, whose name is not
known yet, cannot decide Space in either path.

Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>
Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>

@kalvinnchau kalvinnchau 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.

🤖 One new merge-integration regression; the existing continuation finding remains unchanged.

hasUnnamed now takes the query: a pasted key names one person and has
no namesakes, so its page always decides. The gate stays for names.

Co-authored-by: Carl <c217fe6b9d958f41c3a5e030dccc7f626775a923089cb6491305eade75ea1f1b@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com>

This branch has not been deployed

No deployments
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.

2 participants