From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id sDEVDo9kr2HZWgEAgWs5BA (envelope-from ) for ; Tue, 07 Dec 2021 14:41:35 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id SAzACY9kr2HtewAA1q6Kng (envelope-from ) for ; Tue, 07 Dec 2021 13:41:35 +0000 Received: from mail.notmuchmail.org (nmbug.tethera.net [IPv6:2607:5300:201:3100::1657]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 96B9424EF0 for ; Tue, 7 Dec 2021 14:41:34 +0100 (CET) Received: from nmbug.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id F117929247; Tue, 7 Dec 2021 08:41:27 -0500 (EST) Received: from fethera.tethera.net (fethera.tethera.net [IPv6:2607:5300:60:c5::1]) by mail.notmuchmail.org (Postfix) with ESMTP id 0720329238 for ; Tue, 7 Dec 2021 08:41:25 -0500 (EST) Received: by fethera.tethera.net (Postfix, from userid 1001) id 798C05FC42; Tue, 7 Dec 2021 08:41:24 -0500 (EST) Received: (nullmailer pid 401765 invoked by uid 1000); Tue, 07 Dec 2021 13:41:23 -0000 From: David Bremner To: Thomas Schwinge , notmuch@notmuchmail.org Subject: Re: Provide an option to make thread summaries keep initial subject In-Reply-To: <87y24wg1cq.fsf@euler.schwinge.homeip.net> References: <87zk4eqech.fsf@inf-8657.int-evry.fr> <20120925193137.GM26662@mit.edu> <87y24wg1cq.fsf@euler.schwinge.homeip.net> Date: Tue, 07 Dec 2021 09:41:23 -0400 Message-ID: <87lf0wwn0c.fsf@tethera.net> MIME-Version: 1.0 Message-ID-Hash: OEXE3WNHX6QQYMCHVWQL7LRAVDXRTZZR X-Message-ID-Hash: OEXE3WNHX6QQYMCHVWQL7LRAVDXRTZZR X-MailFrom: david@tethera.net X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-notmuch.notmuchmail.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.3 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Migadu-Flow: FLOW_IN X-Migadu-Country: FR ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1638884494; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-owner:list-unsubscribe:list-subscribe:list-post; bh=7QhiJNnPjNxD8Z8+z0dNU25RWYyw0d412nqToifQ+8A=; b=HsIxJsXyrB5M5MeDOxIUFca5T124RHfNM5x28J1zW+QBSwGqAaLSajefTbA45kMBMe17Cr /5p8YBLttJw+B+7orestlu7a3grCKcjUSzBkZhCtlpXHhRTWXtA6n1rzwXbBTapLAaAhSz Udgr2vlLo2fHycPxpj7/1iYQ++bgKE83cZY4N7L4Bfm+04p6onl7onJKGQc11AmvTrtHIh 3RfJfGCPGqWHdQixfQ3zvIYTG6AoBPrrTa1aqH8xhauLwUfFhG1VYrEThuH12cI54gdiJ5 oU09xJAdjAygOz2Fa5bgXFp3GaF8PIrTI8Z16+aKIrlmKup3V37mZvz76t2S2Q== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1638884494; a=rsa-sha256; cv=none; b=cs1WhaiBMz8K+WtaNoZETPfWUPk+vA8p3T85ADMdjEJ3nShecShB6o+zCAh6YrwWxVnTBY 7K0mIN7uIOsH4H0pff1UtYMYLAm0iL5safmzP7ETJ60U9HPa53bTbSpZrMIcRXZA+WUXZP TMOofM+0Pb/j+E+1umVbcFdy69ZjNtf7pQ2f4+T/hL7qTwa3Nd30ZQb8ZJU7EGM/6D7BVq EWuboNRRdWSuGDBFP408CIUg3BtpX92xfesohr0gm+Ct9N8RiUKPvHgyjkwK6US0csS0ii h8D/tCqO3S/L/oS3R+7LhzidPNs3mXeGU1D6c+fcUX4CPOxdpjep3aqg5/MU3Q== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2607:5300:201:3100::1657 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Spam-Score: 0.98 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2607:5300:201:3100::1657 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Queue-Id: 96B9424EF0 X-Spam-Score: 0.98 X-Migadu-Scanner: scn0.migadu.com X-TUID: gESBWuewhOjK Thomas Schwinge writes: > Hi! > > Regarding the following ideas -- from almost a decade ago ;-) -- is > anyone aware of any work in that area? [snip] > Austin wrote: >> I think this would be fantastic. I've proposed unconditionally >> showing the earliest subject before and it seems that people who >> correspond mostly with those who have good threading etiquette would >> prefer this change, but those who correspond with more people who use >> 'reply' like an address book prefer the current behavior. So just to be clear, when viewing threads with sort-order=oldest-first, the initial subject is in fact show. So if I understand the request correctly, the request is to decouple which subject is shown from the sort-order? > And then, especially, the following one would be very useful for me: > >> Another option, which I'd like to experiment with but haven't found >> the time, is to show *all* distinct subjects for matched messages in a >> thread (modulo "Re:", etc) in the summary buffer, probably on multiple >> lines. Since most threads only have a single unique subject, they >> would appear just as they do now, but it would be clear when someone >> (or something, like git) changed the subject mid-thread. This >> approach would be far more robust while retaining good usability, but >> it would require more code than just changing our subject-picking >> heuristic. > > I'm aware of notmuch Emacs UI 'notmuch-tree' and 'notmuch-unthreaded', > but these are not quite what is desired here: too verbose, compared to > the concise display variant of 'notmuch-search'. I don't think anyone picked up on this. It would probably require augmenting the json / sexpr to list all the subjects. I guess the existing machinery to collect authors (lib/thread.cc) could be copied / generalized to collect subjects. There is also some question of what constitutes a change in subject, but there are already some (probably inadequate) heuristics in the library for that. Another issue is how to return the subjects from the library. Currently the authors are returned as a comma separated list, but I doubt that's what you want for subjects. C being C, we'd probably have to settle for some char ** null terminated array of pointers.