mobile: thread scroll-to-bottom and desktop-parity mention autocomplete#1499
Merged
Conversation
The thread detail page used a plain ListView, so tapping into a thread always opened at the top (the thread head) instead of the latest reply. Mirror the channel message list: reverse the ListView so offset 0 is the newest reply, with the thread head rendered at the last index. Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co> Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Port desktop's mention ranking to the mobile compose bar so both clients filter and order @mention suggestions identically: - mention_ranking.dart mirrors mentionRanking.ts: group order (channel members > people > non-member agents), match quality (exact > prefix > word-exact > word-prefix > pubkey), stable original-order tiebreak. - Candidates now include eligible non-member relay agents from kind:10100 profiles, using desktop's eligibility rule (respond_to anyone + shared channel, or allowlisted), and no longer exclude the current user. - Suggestion rows gain desktop's info subtitle: bot icon + "agent", admin badge, "owned by <name>", and "not in channel". - Owner attribution verifies NIP-OA auth tags (BIP-340 Schnorr) on kind:0 profiles, matching profile_valid_oa_owner_pubkey; the user cache now records the verified ownerPubkey. Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co> Signed-off-by: Wes <wesbillman@users.noreply.github.com>
c0b1f6d to
b3e6c70
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two mobile fixes, verified on the iOS simulator (iPhone 17 Pro).
1. Threads open scrolled to the newest reply
Tapping into a thread previously showed the oldest messages; you had to scroll manually to reach the latest reply. The thread detail list now uses the same reversed-
ListViewpattern as the channel timeline, so threads open at the bottom (newest reply visible), matching channel behavior.2. Desktop-parity
@mentionautocompleteThe mention sheet now matches desktop's filtering, ordering, and per-entry info:
mentionRanking.ts: channel members → people → non-member agents, with match quality exact > prefix > word-exact > word-prefix > pubkey and stable-order tiebreak. Limit 50, self included, same as desktop.respond_to/shared-channel eligibility rule) now appear alongside channel members.authtag, mirroringprofile_valid_oa_owner_pubkey), "not in channel", and an admin badge for human admins.Deliberately out of scope (possible follow-up): desktop's global NIP-50 people search for stream/forum channels.
Screenshots
@— ranked membersTesting
flutter analyzeclean; all 416 tests pass (21 new: ranking-port tests mirroring desktop's, candidate assembly/eligibility, NIP-OA verifier incl. tamper/self-attestation rejection).@shows ranked members; agent rows show verified owners; tapping inserts the mention.