Subject: Re: bug#70928: 30.0.50; ERC 5.6: Reuse query buffers for round-trip nick changes in ERC

From: "J.P." <[email-masked]>
Date: Tue, 28 May 2024 06:37:37 -0700

"J.P." <[email-masked]> writes:

> Here's how I imagine things working in a saner ERC:
>
>   - A user's presence in a channel will dictate whether they exist in
>     the server buffer's `erc-server-users' table.
>
>   - Issuing a /query will create a user entry in the query buffer's
>     `erc-channel-members' table if they exist in the server-wide table
>     (meaning they're present in some channel).
>
>   - Users parting or being kicked from a channel will see their data
>     removed from all query tables (and the server table) if they're no
>     longer joined to any other channels.
>
>   - Insertion hooks running in query buffers can always expect to see a
>     speaker's user's in its `erc-channel-members' table. If they're
>     absent, a temporary user will be created for the duration of
>     response handling.
>
>   - A new, optional module will be added to mimic the effect of the
>     Monitor extension and to serve as a fallback after ERC adds support
>     (see bug#49860). When it's active, users in queries who aren't also
>     in a channel will be periodically polled for and kept up to date.
>
>   - A client's own user for its current nick will be absent in all query
>     tables but present, once discovered, in the server-wide table for
>     the remainder of the session.
>
> The attached patches attempt to implement the proposed changes. Comments
> welcome.

I've installed these changes as

  75aefe65148 * Reuse old query buffers for reassumed nicks in ERC
  04477cf97be * Tether query rolls to channel membership in ERC
  5f84213c980 * Retain client's own user in erc-server-users
  6888bbbe832 * Add ERC module querypoll as monitor placeholder

Thanks and closing (for now).