From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id gG1THhWpqV5ICgAA0tVLHw (envelope-from ) for ; Wed, 29 Apr 2020 16:19:33 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id uGBYKh2pqV6gDgAAB5/wlQ (envelope-from ) for ; Wed, 29 Apr 2020 16:19:41 +0000 Received: from arlo.cworth.org (arlo.cworth.org [50.126.95.6]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 253289408E6 for ; Wed, 29 Apr 2020 16:19:40 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id 2918F6DE104A; Wed, 29 Apr 2020 09:19:37 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at cworth.org Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SHzjA3KVExgk; Wed, 29 Apr 2020 09:19:36 -0700 (PDT) Received: from arlo.cworth.org (localhost [IPv6:::1]) by arlo.cworth.org (Postfix) with ESMTP id 81EC86DE10AD; Wed, 29 Apr 2020 09:19:35 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id DF9946DE10B2 for ; Wed, 29 Apr 2020 09:19:34 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at cworth.org Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jaW1KVfxWSL7 for ; Wed, 29 Apr 2020 09:19:34 -0700 (PDT) Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) by arlo.cworth.org (Postfix) with ESMTPS id 30AD76DE104A for ; Wed, 29 Apr 2020 09:19:34 -0700 (PDT) Received: by mail-qt1-f169.google.com with SMTP id z90so2305248qtd.10 for ; Wed, 29 Apr 2020 09:19:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=2tTTgp+nmeQGEFPw7/Q52IH61T4c553X+mLfKdJ7ETE=; b=o6PG6tWCKT7lyVkoCm4AZOmPfjTca4YWULV0cUL3KA7P4g68GXWKAkAZ+1uCGQy7qn jO6I/rXv34EfvA9jY8Oe1pPZ/7g/pEqnMaNjLTI+D7JHAAGNYllDVC+F5ycIDpLyAqw2 PRVoe5aWxOuzU+ARp5BWdd6TNeb4Ig4uQoNvLO0v1tVNh4x+xzFTmC2w879mUaRbignF h0p0DiP6xonhBfMKCs6IcJQLHbRsHqIEXujLIq75ml+gMRUia1tB/jA6s9WZPYJCVZJ+ yVTH1SFzz5bqGQEGXdQchnHOCLKVDvmKJ1Ys3OC9iG4Ert8yyRNMub8aP3dYhauZELJ9 krlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=2tTTgp+nmeQGEFPw7/Q52IH61T4c553X+mLfKdJ7ETE=; b=DLDKIPtqTzn1jxsnKpM5eSwJvVHOJ9K+V9FUfKQ8Ok9lPHv6w4U+XnJSoxP/z9szV6 gBxo//EFgQOeGzPdcGgrQE9qEFIsTiOzup4MAiln4BYjz6tPRAY3VKKPgCKsS+TgUoHz 7PiDPnKu8d+shITtf1c6nhC4wS0zpxepjqbBt2qvhfP2VIhHN3o/dfw0EoyRKNt+g0np qchWnVs3jyYa3cUhqabyoOCF0gClcxSgMl1vY+zSehraH8OhTIcD/wcf13V6jeoRo50n ef8+bJ8Cx7DPItEZvTPp4kTtVoUqUKYKBQPHH5eKL5zaHrIbyqoQztzl64rlFlBTtfkN TPJQ== X-Gm-Message-State: AGi0PuYxaU5gkSbgYfTxumHzg7b1Sh8q1Nf9XIt77cYJwj5YZ/0FXmJl zb52oXnXon8eJ7VH2CZjmYEccF1IAGEbZIapI2HTgA== X-Google-Smtp-Source: APiQypJiqcytQG3nAaZRPaglVm4/thmQqAoLWbbL6MrcVw/9/HiSnvKbbMJz2O9UbTs5+jTuK9NxtR/rHUTSKMheZIo= X-Received: by 2002:ac8:6741:: with SMTP id n1mr35013056qtp.344.1588177172841; Wed, 29 Apr 2020 09:19:32 -0700 (PDT) MIME-Version: 1.0 From: Ciprian Dorin Craciun Date: Wed, 29 Apr 2020 19:18:56 +0300 Message-ID: Subject: Add support for `thread` field in `notmuch show` To: notmuch@notmuchmail.org X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: notmuch-bounces@notmuchmail.org Sender: "notmuch" X-Scanner: scn0 X-Spam-Score: 0.09 Authentication-Results: aspmx1.migadu.com; dkim=fail (body hash did not verify) header.d=gmail.com header.s=20161025 header.b=o6PG6tWC; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 50.126.95.6 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Scan-Result: default: False [0.09 / 13.00]; GENERIC_REPUTATION(0.00)[-0.46232418202032]; DWL_DNSWL_FAIL(0.00)[50.126.95.6:server fail]; R_SPF_ALLOW(-0.20)[+a:c]; R_DKIM_REJECT(1.00)[gmail.com:s=20161025]; FREEMAIL_FROM(0.00)[gmail.com]; TO_DN_NONE(0.00)[]; IP_REPUTATION_HAM(0.00)[asn: 27017(-0.18), country: US(-0.00), ip: 50.126.95.6(-0.46)]; DKIM_TRACE(0.00)[gmail.com:-]; MX_GOOD(-0.50)[cached: notmuchmail.org]; MAILLIST(-0.20)[mailman]; RCVD_IN_DNSWL_FAIL(0.00)[50.126.95.6:server fail]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:27017, ipnet:50.126.64.0/18, country:US]; TAGGED_FROM(0.00)[]; FROM_NEQ_ENVFROM(0.00)[cipriancraciun@gmail.com,notmuch-bounces@notmuchmail.org]; ARC_NA(0.00)[]; URIBL_BLOCKED(0.00)[notmuchmail.org:email]; FROM_HAS_DN(0.00)[]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[notmuch@notmuchmail.org]; HAS_LIST_UNSUB(-0.01)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_COUNT_SEVEN(0.00)[8]; FORGED_SENDER_MAILLIST(0.00)[]; DMARC_POLICY_SOFTFAIL(0.10)[gmail.com : SPF not aligned (relaxed),none] X-TUID: 5DhVwpgkzU9i According to the `devel/schemata` the message object doesn't contain the thread identifier to which it was assigned in the database. Sometimes, for example in an UI that displays a search result at message level, it would be useful to know the thread each message belongs to, so the user can easily switch to the entire thread. I know that one can use `thread:{id:MESSAGE_ID}` to achieve the same result, however: * it is somewhat cumbersome for the integrator; * having the thread identifier explicitly, could be used as a key in a cache, or other internal lookups; In fact the only way one can extract the thread identifier via the `notmuch` CLI is to use `notmuch search --output=threads -- id:MESSAGE_ID` Ciprian.