On 4/11/2023 5:06 PM, Eric Wong wrote:
> Jacob Keller <[email protected]> wrote:
>> Hi,
>>
>> I'm wondering if there is a way to search a list by the entire thread?
>
> Not yet...
>
>> For example, I want to find all threads which have at least one message
>> with dfn:<some path> and which have no messages containing the text
>> "Reviewed-by".
>>
>> This would for example let me search an open source archive for threads
>> (patch series for example) which have not received any reviewed-by reply.
>
> Yes, that's something I've wanted, too...
>
>> The current search function available through the HTML website doesn't
>> seem to have a "by thread" function. I also haven't been able to find
>> any option similar to this in the email client I typically use for
>> interacting with the lists (Thunderbird).
>
> I think the reason it's rare in MUAs is that it's potentially
> very expensive. But I think the `thread:{subquery}' feature
> from notmuch I discussed with Konstantin the other week[1] can
> do what you want it to do.
>
> Keep in mind, notmuch-search-terms(7) states:
>
> The performance of such queries can vary wildly.
>
> And that's for a private client tool for a single user.
>
> For a public-facing web UI, we'll need proper timeouts (likely
> via RLIMIT_CPU + SIGXCPU) in an external process and a C++ build
> against libxapian. AFAIK, custom query parsers aren't possible
> in Xapian's high-level language bindings; fortunately I can
> legally reuse GPL-3+ C++ code from notmuch \o/
>
> The external process will probably be similar to
> `git cat-file --batch-command' though it can use SOCK_SEQPACKET
> for requests and pipes for large responses.
>
>> Perhaps this is something that I could implement locally from the clone
>> of the archive, but I am not quite sure how to go about it.. It seems
>> like something that should be reasonably straight forward given the way
>> that public inbox already tracks threads. Any suggestions on how to get
>> something like this would be appreciated.
>
> Are you able to confirm notmuch `thread:{subquery}' is what
> you're after?
Ah. I tried searching but didn't hit upon not much. To be honest, I bet
just directly using notmuch and having it subscribe to the messages from
the public inbox would be sufficient for my purposes :D
I'll explore this and see, but it does sound like the thread:{subquery}
is basically what I want.
>
> I plan on implementing it with proper timeouts for untrusted
> clients within the next few weeks/months; assuming some other
> stuff works out and I still have Internet + power.
>
>
> [1] https://public-inbox.org/meta/20230328194549.M808175@dcvr/