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

fix(search): make Command F search the Bestie conversation - #3084

Merged
matt2e merged 3 commits into
mainfrom
command-f-in-bestie
Nov 10, 2026
Merged

matt2e merged 3 commits into
mainfrom
command-f-in-bestie

Conversation

@matt2e

@matt2e matt2e commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Summary

On the Bestie page, ⌘F (Ctrl+F) opened nothing and ⌘K (Ctrl+K) had no "Search conversation with " row. PageSearch only recognised a conversation navigation target as the current conversation, and the Bestie page is a page target that presents the promoted Bestie DM.

PageSearch now derives the current channel from the conversation target's channel, or, on the Bestie page, from the shell's Bestie projection via useBestieConversation (provided by AppShell above it). That channel drives the ⌘F guard, the scoped search and ⌘K's "This conversation" row. Other page targets still open nothing with ⌘F. The header menu is out of scope.

Before / after

Left is main (58116b8), right is this branch. The fixture runs on Linux, so the shortcuts show as Ctrl+F and Ctrl+K. Both sides start on an ordinary DM with Ada, where Ctrl+F already works, then switch to the Bestie page ("Bestie · Pollen").

bestie-cmd-f-before-after.mp4

Ctrl+F on the Bestie page: main opens nothing (left); the fix opens a search scoped to Pollen that finds "gym" (right)

Ctrl+F on the Bestie page: main opens nothing (left); the fix opens a search scoped to Pollen that finds "gym" (right).

Ctrl+K on the Bestie page: main shows only Recent activity (left); the fix adds "Search conversation with Pollen" under This conversation (right)

Ctrl+K on the Bestie page: main shows only Recent activity (left); the fix adds a "Search conversation with Pollen" row under This conversation (right).

Commits

  • b5135e9 fix(search): make Command F search the Bestie conversation — PageSearch takes the current conversation from the conversation target or, on the Bestie page, from useBestieConversation; tests for ⌘F and the ⌘K row scoped to the Bestie DM, and for ⌘F opening nothing on another page; Bestie README and Buzz help updated.
  • 2ea0ff5 refactor(search): name the Bestie page check and cover other conversations — adds isBestiePage(target) next to BESTIE_PAGE in bestie-context.ts, makes useBestieConversation require a session explicitly, and tests that ⌘F on another DM with a Bestie DM present scopes to that DM.
  • 86f4ffc docs(bestie): mention Command K's conversation row on the Bestie page — Buzz help mentions the ⌘K "Search conversation with" row.

Testing

  • Typecheck and lint pass.
  • PageSearch, BestieNavigation and ChannelInventory suites: 119/119.
  • Full vitest run: 20,060 passed, 27 skipped, 0 failed.
  • Still to do: the native-app run that AGENTS.md requires (agent, then human). The reproduction and recording used a browser fixture with a device-local Bestie choice.

Related PRs

Open PRs #2775 and #2804 touch bestie-context.ts only cosmetically and do not conflict with this change.

🤖 Generated with Claude Code

@matt2e
matt2e marked this pull request as ready for review November 9, 2026 13:21
@matt2e
matt2e requested a review from a team as a code owner November 9, 2026 13:21
@matt2e
matt2e force-pushed the command-f-in-bestie branch from 86f4ffc to 336d184 Compare November 9, 2026 14:14

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

🤖 Star Lord automated source review via Wes’s account.

Reviewed head 336d1840783f8e9a8261bf3dacdf4807d85561f3 against base/merge base 3a1eb5601e997811009d01601786df8af9393a7f.

No actionable findings in the reviewed change after independent Rocket, Mantis and Groot lanes plus Star Lord integration. The Bestie page reuses the shell’s exact-session DM projection for both Command F and Command K’s conversation row, while ordinary conversations retain precedence. Existing shortcut cleanup, search scope labels and dialog focus handling are preserved.

Source-only review: no tests, builds or app workflows were run. The public description and both screenshots were inspected; the video was not. The one-time CI snapshot still had checks running, and the PR explicitly lists native-app agent/human validation as pending. This comment does not establish runtime validation or approval.

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

Kyle reviewed the PR and the Nexus review-tracker notes and approved with no comments.

Posted by Codex (gpt-6.1-sol) on behalf of kylez

matt2e and others added 3 commits November 10, 2026 12:43
On the Bestie page, Command F opened nothing and Command K had no
"Search conversation with <name>" row, because PageSearch only treated a
`conversation` navigation target as the current conversation. The Bestie
page is a `page` target that presents the promoted Bestie DM.

PageSearch now takes the current conversation from the conversation
target's channel, or, on the Bestie page, from the shell's Bestie
projection (useBestieConversation, provided by AppShell above it). It
drives the Command F guard, the scoped search and Command K's row. Other
page targets still open nothing with Command F. The header menu is out of
scope.

Tests cover Command F and the Command K row scoped to the Bestie DM, and
Command F opening nothing on another page. The Bestie README and Buzz
help now say Command F searches the Bestie conversation.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: mtoohey <mtoohey@squareup.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
…tions

Follow-up to review of b5135e9.

- Add isBestiePage(target) next to BESTIE_PAGE in bestie-context.ts and
  use it in PageSearch instead of hardcoding the plugin and page ids.
- useBestieConversation now requires a session explicitly instead of
  relying on undefined === undefined when neither is present.
- PageSearch tests: on a conversation target for another DM (Ada) with a
  Bestie DM present, Command F scopes to that conversation, not the
  Bestie DM. The fixture now notes the production invariant it stands in
  for: AppShell mounts BestieNavigationProvider above PageSearch, reading
  the same relay as searchServices.communities.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: mtoohey <mtoohey@squareup.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
Buzz help now says that on the Bestie page Command K (Ctrl+K elsewhere)
offers "Search conversation with" the Bestie, alongside Command F,
matching the Bestie README.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: mtoohey <mtoohey@squareup.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
@matt2e
matt2e force-pushed the command-f-in-bestie branch from cd9fd3c to b0940cb Compare November 10, 2026 01:44
@matt2e
matt2e merged commit 1ce4269 into main Nov 10, 2026
66 checks passed
@matt2e
matt2e deleted the command-f-in-bestie branch November 10, 2026 03:28
gilgtm added a commit that referenced this pull request Nov 10, 2026
…nt-progress-rows

* origin/main: (53 commits)
  fix(search): make Command F search the Bestie conversation (#3084)
  fix(plugins): keep failed update checks on the plugin's Settings row instead of a toast (#3088)
  Show single-agent Stop on the activity bubble (#3140)
  fix: support explicit hosted browser origins (#3149)
  fix: keep Codex tool namespace descriptions bounded (#3128)
  fix(messages): show "New messages" in channels longer than one page (#3071)
  Keep shared agent guidance generic (#3134)
  fix(typing): a thread reply also ends the agent's channel-level typing (#3148)
  Stream protected evidence across agent runtimes (#2882)
  feat(identity): consolidate key and account controls (#3069)
  Add portrait-colored foil and animated agent card reveal (#3144)
  NEXUS-4190: Disclose unavailable saved Solo choices (#2544)
  docs: mark the plugin API as preview and say which parts are steady (#3129)
  Open the app with a saved key; check the account's key in the background (#3064)
  fix(federated-identity): name only communities that require NIP-FI as affected by a switch (#3072)
  feat(pairing): signed in with Builderlab, say to get the app instead of pairing (#3039)
  Show Add agent button on shared agent previews (#3131)
  NEXUS-4224: Preserve peer unread intent during automatic reads (#2641)
  fix(plugins): review a pinned link to an installed plugin's source as an update (#3024)
  perf(profiles): resume verified-profile batches after a planned renewal (#2293)
  ...

Signed-off-by: Gil Birman <gil@squareup.com>

# Conflicts:
#	docs/buzz-help.md
damienrj added a commit that referenced this pull request Nov 10, 2026
…rminal-font-picker

* 'main' of https://github.com/block/buzz-app: (168 commits)
  Unify Membership sharing and live roster updates (#3147)
  fix(activity): show one working cue per agent request (#3166)
  Introduce opt-in first-agent setup (#2804)
  fix(codex): drop the security-review sign-in prompt from harness defaults (#3188)
  feat(releases): publish desktop download manifest (#3154)
  fix(mcp): preserve current attachments across edits (#2937)
  fix(agents): call the Claude and Codex first-run download "the integration" (#3165)
  chore(goose): bump bundled goose-acp to v1.58.1 (#3161)
  Revert "ci: use larger GitHub runners for Rust and browser journeys (#3090)" (#3180)
  Show Goose's unset thinking level as Default, not Off (#3124)
  ci(release): publish stable and beta desktop releases from v tags (#3150)
  fix(messages): end the New messages hold when no repair can sample (#3169)
  fix(search): make Command F search the Bestie conversation (#3084)
  fix(plugins): keep failed update checks on the plugin's Settings row instead of a toast (#3088)
  Show single-agent Stop on the activity bubble (#3140)
  fix: support explicit hosted browser origins (#3149)
  fix: keep Codex tool namespace descriptions bounded (#3128)
  fix(messages): show "New messages" in channels longer than one page (#3071)
  Keep shared agent guidance generic (#3134)
  fix(typing): a thread reply also ends the agent's channel-level typing (#3148)
  ...

Signed-off-by: damienrj <damien@squareup.com>

# Conflicts:
#	src-tauri/Cargo.toml
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.

3 participants