Discord: search only reads local scrollback #108

Closed
opened 2026-09-02 23:25:44 -04:00 by Salastil · 2 comments
Owner

Same shape as the Matrix issue: searchMessages reads this window's copy of one channel. Discord's own search covers a whole guild with filters (from, has, before/after) and is how anybody finds anything in a busy server.

Done looks like: guild-wide server-side search with the common filters.

Same shape as the Matrix issue: `searchMessages` reads this window's copy of one channel. Discord's own search covers a whole guild with filters (from, has, before/after) and is how anybody finds anything in a busy server. **Done looks like:** guild-wide server-side search with the common filters.
Salastil added the feature label 2026-09-03 13:11:35 -04:00
Author
Owner

Related work landed: the reachability half of this is now solved for both Discord and Matrix — https://git.salastil.com/Salastil/nobilis/commit/b5cc7fd and https://git.salastil.com/Salastil/moho/commit/e16fb7a

A new loadMessageContext asks the service for the part of a conversation any named message sits in (Discord ?around=, Matrix /context), stores that window, and the client pages into it. So a result — or a pin — older than anything in local scrollback can now be jumped to, where before the click did nothing.

What this issue still asks for is untouched: Discord search itself is still this window's copy of one channel, with no guild-wide server-side query and no from: / has: / before: filters. Those results, once they exist, will already be reachable.

Related work landed: the *reachability* half of this is now solved for both Discord and Matrix — https://git.salastil.com/Salastil/nobilis/commit/b5cc7fd and https://git.salastil.com/Salastil/moho/commit/e16fb7a A new `loadMessageContext` asks the service for the part of a conversation any named message sits in (Discord `?around=`, Matrix `/context`), stores that window, and the client pages into it. So a result — or a pin — older than anything in local scrollback can now be jumped to, where before the click did nothing. What this issue still asks for is untouched: Discord search itself is still this window's copy of one channel, with no guild-wide server-side query and no `from:` / `has:` / `before:` filters. Those results, once they exist, will already be reachable.
Author
Owner

Finished — https://git.salastil.com/Salastil/nobilis/commit/c6c6a07 and https://git.salastil.com/Salastil/moho/commit/70ee40a

Guild-wide server-side search with from:, in:, has:, mentions:, before: and after:, typed into the box the way Discord's own search takes them, with a filter menu under it that writes the token for you. Names are resolved to ids in the daemon from the last thing anybody said under that name; a name nothing has been said under is reported rather than silently ignored.

Verified live against a real guild: 7,941 hits for a word across the whole server, 2,193 for has:link, 1,598 for one author, 1,968 narrowed to one channel, 118 after a date, 557 mentions — and both unresolvable-filter refusals naming what was wrong.

Not included: paging past the first 25 results. The daemon takes an offset and Discord returns the true total (shown as "25 of 7,941"), but the UI has no next-page control yet.

Finished — https://git.salastil.com/Salastil/nobilis/commit/c6c6a07 and https://git.salastil.com/Salastil/moho/commit/70ee40a Guild-wide server-side search with `from:`, `in:`, `has:`, `mentions:`, `before:` and `after:`, typed into the box the way Discord's own search takes them, with a filter menu under it that writes the token for you. Names are resolved to ids in the daemon from the last thing anybody said under that name; a name nothing has been said under is reported rather than silently ignored. Verified live against a real guild: 7,941 hits for a word across the whole server, 2,193 for `has:link`, 1,598 for one author, 1,968 narrowed to one channel, 118 after a date, 557 mentions — and both unresolvable-filter refusals naming what was wrong. Not included: paging past the first 25 results. The daemon takes an offset and Discord returns the true total (shown as "25 of 7,941"), but the UI has no next-page control yet.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Salastil/moho#108