diff options
author | Austin Clements <amdragon@MIT.EDU> | 2013-10-24 11:19:08 -0400 |
---|---|---|
committer | David Bremner <david@tethera.net> | 2013-11-08 20:43:29 -0400 |
commit | abeac48522ded66e2f0e9aae704482355cb46e6a (patch) | |
tree | 3f0df784ca77999c880b9000d6d4281b6b9a7143 /devel/schemata | |
parent | 730b8f61e0cf4b2e8c0f123c0914d472d6df38fc (diff) |
search: Add stable queries to thread search results
These queries will match exactly the set of messages currently in the
thread, even if more messages later arrive. Two queries are provided:
one for matched messages and one for unmatched messages.
This can be used to fix race conditions with tagging threads from
search results. While tagging based on a thread: query can affect
messages that arrived after the search, tagging based on stable
queries affects only the messages the user was shown in the search UI.
Since we want clients to be able to depend on the presence of these
queries, this ushers in schema version 2.
Diffstat (limited to 'devel/schemata')
-rw-r--r-- | devel/schemata | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/devel/schemata b/devel/schemata index cdd0e433..41dc4a60 100644 --- a/devel/schemata +++ b/devel/schemata @@ -14,7 +14,17 @@ are interleaved. Keys are printed as keywords (symbols preceded by a colon), e.g. (:id "123" :time 54321 :from "foobar"). Null is printed as nil, true as t and false as nil. -This is version 1 of the structured output format. +This is version 2 of the structured output format. + +Version history +--------------- + +v1 +- First versioned schema release. +- Added part.content-length and part.content-transfer-encoding fields. + +v2 +- Added the thread_summary.query field. Common non-terminals -------------------- @@ -145,7 +155,15 @@ thread_summary = { authors: string, # comma-separated names with | between # matched and unmatched subject: string, - tags: [string*] + tags: [string*], + + # Two stable query strings identifying exactly the matched and + # unmatched messages currently in this thread. The messages + # matched by these queries will not change even if more messages + # arrive in the thread. If there are no matched or unmatched + # messages, the corresponding query will be null (there is no + # query that matches nothing). (Added in schema version 2.) + query: [string|null, string|null], } notmuch reply schema |