Fix initial emoji autocomplete selection - #419
Conversation
Signed-off-by: klopez4212 <klopez4212@gmail.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
wesbillman
left a comment
There was a problem hiding this comment.
Star Lord automated source review (via Wes’s account)
Reviewed head d471b50b3916747ffeb331756269cd46944c859b against base 32982724223d8090441415ed89ddf7cb7a8d286e.
No concrete production correctness or security defect found. The implementation meets the 9/10 minimalness/elegance/correctness bar on source inspection: leaving implicit selection unpinned lets the first ranked Unicode result replace an early community match, while keyboard/pointer-selected IDs survive reordering. I also traced disappearing selections, retry/error recovery, query invalidation, editor focus and rejected acceptance; the existing ownership and no-fallthrough-to-send protections remain intact.
Required review-evidence follow-up (not a production-code blocker)
Please complete the browser-test evidence in the PR description as required by AGENTS.md:105–123 and docs/contributing.md:431–448. It currently reports only “focused Chromium/WebKit regressions” passing, without the required case inventory, browser-only rationale or fail-then-pass evidence. Record:
- One new browser case, one existing case extended, zero removed; no replacement coverage was removed.
- The real popup scrolling/keyboard insertion and emoji-provider/composer wiring contract that justifies the browser case; the controlled publication test covers implicit versus explicit selection.
- The command, snapshots, engines and observed failure with the new regression assertions against the old selection behavior, followed by the passing fixed result. If the pre-fix run has not been performed, explicitly leave it deferred rather than treating green CI as fail-then-pass evidence.
No extra production abstraction or broad test rewrite is requested.
Evidence and limitations
- Inspected all three changed files and their relevant callers/contracts. Public-surface inspection covered the PR description (no attached images), changed source/fixture/test material and the single commit’s metadata; no disclosure finding in those surfaces. Also visually inspected both hosted
emoji-first-result.pngcaptures::joy:is highlighted at the top of the synthetic popup. - One hosted CI snapshot: run 36608200113 succeeded, including all 12 journey shards, JavaScript, Rust/tool integration, browser measurements and required checks. Windows native validation was skipped.
- Downloaded reports independently confirm all 22 cases in
typeahead.spec.mjspassed in each of Chromium and WebKit, with no retries, including both changed scenarios and retry/focus recovery. These ran on CI mergea01379437dd4e8fff93714104e054e8cb76e5527; its tree includes 56 incoming-base file changes and is not identical to the feature head. The completion host, emoji provider/search,typeahead.spec.mjsand emoji fixture are unchanged between that merge and the reviewed head. The full-file passes therefore establish hosted merged-state coverage, not a standalone feature-head run. This is hosted evidence, not a local test run or pre-fix failure demonstration. - Source-only review: no PR code, tests or application executed locally. Native-app, assistive-technology and human acceptance remain unverified. This COMMENT is not approval, merge authorization or a completed readiness checklist.
* origin/main: feat(channels): archive and delete channels from settings (#385) feat(updates): add in-app auto-updates with restart toast (#312) fix(ui): keep background loading from shifting populated views (#418) Improve member and agent identity previews (#412) Fix initial emoji autocomplete selection (#419) Add community membership settings (#348) Keep nested replies compact and place actions above message text (#367) Import an exact inventory identity from its selected source with retry (#288) ci: add gated macOS preview updater feed promotion (#414) Set up incomplete inventory identities through a working Use here dialog (#287) Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz> # Conflicts: # src/app/App.tsx
* origin/main: (58 commits) flake fix: keep restored reading anchor out of bottom follow (WebKit scroll measurement) (#407) Replace fixed browser-test waits with conditions, gates and the clock (#373) feat(updates): show installed version in Software Updates settings (#430) fix(desktop): allow deep-link delivery to the main webview (#432) feat(shell): open your profile from the account menu avatar (#390) Polish top bar and animate contextual sidebar toggle (#360) fix(profiles): preserve nonlocal agent identity in profile fallback (#327) test(agents): pause the status poll around the failed-Stop checks (#431) fix(sidebar): paint channel rows with the scroller contents (#428) feat(channels): archive and delete channels from settings (#385) feat(updates): add in-app auto-updates with restart toast (#312) fix(ui): keep background loading from shifting populated views (#418) Improve member and agent identity previews (#412) Fix initial emoji autocomplete selection (#419) Add community membership settings (#348) Keep nested replies compact and place actions above message text (#367) Import an exact inventory identity from its selected source with retry (#288) ci: add gated macOS preview updater feed promotion (#414) Set up incomplete inventory identities through a working Use here dialog (#287) Show saved local and relay inventory while retaining existing import controls (#286) ...
* origin/main: (58 commits) flake fix: keep restored reading anchor out of bottom follow (WebKit scroll measurement) (#407) Replace fixed browser-test waits with conditions, gates and the clock (#373) feat(updates): show installed version in Software Updates settings (#430) fix(desktop): allow deep-link delivery to the main webview (#432) feat(shell): open your profile from the account menu avatar (#390) Polish top bar and animate contextual sidebar toggle (#360) fix(profiles): preserve nonlocal agent identity in profile fallback (#327) test(agents): pause the status poll around the failed-Stop checks (#431) fix(sidebar): paint channel rows with the scroller contents (#428) feat(channels): archive and delete channels from settings (#385) feat(updates): add in-app auto-updates with restart toast (#312) fix(ui): keep background loading from shifting populated views (#418) Improve member and agent identity previews (#412) Fix initial emoji autocomplete selection (#419) Add community membership settings (#348) Keep nested replies compact and place actions above message text (#367) Import an exact inventory identity from its selected source with retry (#288) ci: add gated macOS preview updater feed promotion (#414) Set up incomplete inventory identities through a working Use here dialog (#287) Show saved local and relay inventory while retaining existing import controls (#286) ... Signed-off-by: Elrond <28d6302a099e5225b02c4155ac4236e4912603df2ab08dbfc2f4fef08ce598c8@buzz.block.builderlab.xyz>
Typing
:joycould retain an early community-emoji match and scroll past the best result when Unicode results arrived. Keep automatic selection on the first ranked result while preserving explicit keyboard and pointer choices.Validation: focused Chromium/WebKit regressions, typechecking, and formatting passed. Full
just scanis running; native-app verification remains deferred.