<feed xmlns='http://www.w3.org/2005/Atom'>
<title>aerc/worker/notmuch, branch shivesh</title>
<subtitle>A pretty good email client (shivesh branch)</subtitle>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/'/>
<entry>
<title>notmuch/maildir: remove double emit of the dirinfo</title>
<updated>2021-04-28T05:54:16+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2021-04-26T19:36:00+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=1687e558d3fae4d5622677c031bb9365a8c3e261'/>
<id>1687e558d3fae4d5622677c031bb9365a8c3e261</id>
<content type='text'>
There was some bug which could be worked around by double emitting an event.
However that proofed to be brittle:

We send the first message here from the worker goroutine:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/maildir/worker.g=
o#L306

Then Tick() is waked in the main goroutine and calls ProcessMessage:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/widgets/account.go#L100

ProcessMessage in the main goroutine reads types.Message state with
msg.getId() and msg.InResponseTo():
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/types/worker.go#=
L74-76

Meanwhile in the worker goroutine we call PostMessage for a second
time with a pointer that points to the *same* previous message that
ProcessMessage is reading:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/maildir/worker.g=
o#L306

The second PostMessage call makes writes to message while
ProcessMessage in the main goroutine is possibly reading:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/types/worker.go#=
L59

This led to a data race in the event loop

Reported-By: Wagner Riffel &lt;w@104d.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There was some bug which could be worked around by double emitting an event.
However that proofed to be brittle:

We send the first message here from the worker goroutine:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/maildir/worker.g=
o#L306

Then Tick() is waked in the main goroutine and calls ProcessMessage:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/widgets/account.go#L100

ProcessMessage in the main goroutine reads types.Message state with
msg.getId() and msg.InResponseTo():
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/types/worker.go#=
L74-76

Meanwhile in the worker goroutine we call PostMessage for a second
time with a pointer that points to the *same* previous message that
ProcessMessage is reading:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/maildir/worker.g=
o#L306

The second PostMessage call makes writes to message while
ProcessMessage in the main goroutine is possibly reading:
https://git.sr.ht/~sircmpwn/aerc/tree/a5553438/item/worker/types/worker.go#=
L59

This led to a data race in the event loop

Reported-By: Wagner Riffel &lt;w@104d.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>notmuch: don't read the full file into memory</title>
<updated>2021-02-08T07:40:07+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2021-02-08T07:40:07+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=db6848fe1b77bc7f2a657231307d2a4271d41482'/>
<id>db6848fe1b77bc7f2a657231307d2a4271d41482</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>notmuch: trim excluded tags</title>
<updated>2020-12-02T08:08:19+00:00</updated>
<author>
<name>Kalyan Sriram</name>
<email>kalyan@coderkalyan.com</email>
</author>
<published>2020-11-28T19:33:48+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=b56a688589c946ff8224f3d9e2e73de2edbc39b4'/>
<id>b56a688589c946ff8224f3d9e2e73de2edbc39b4</id>
<content type='text'>
Trims whitespace in list of excluded notmuch tags. This allows a comma
separated list with spaces to be correctly processed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Trims whitespace in list of excluded notmuch tags. This allows a comma
separated list with spaces to be correctly processed.
</pre>
</div>
</content>
</entry>
<entry>
<title>notmuch: remove gc close hooks</title>
<updated>2020-12-02T08:06:34+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2020-11-26T06:31:05+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=a9330f4c63816ed79f6d150e998f003bea9478dd'/>
<id>a9330f4c63816ed79f6d150e998f003bea9478dd</id>
<content type='text'>
We frequently had issues with notmuch segfaulting and my guess is that this
was due to the garbage collection magic used in the module.

This changes to a fork that ripped the functionality out.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We frequently had issues with notmuch segfaulting and my guess is that this
was due to the garbage collection magic used in the module.

This changes to a fork that ripped the functionality out.
</pre>
</div>
</content>
</entry>
<entry>
<title>notmuch: rename method to SetFlag</title>
<updated>2020-09-27T17:00:58+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2020-09-27T17:00:58+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=c48f228fa5ac57984af78e19713929224874aa8b'/>
<id>c48f228fa5ac57984af78e19713929224874aa8b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>notmuch: close tag object</title>
<updated>2020-09-24T19:24:44+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2020-09-24T19:24:44+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=6654c970e6400e3d97344a8c982770a36e6f78ba'/>
<id>6654c970e6400e3d97344a8c982770a36e6f78ba</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for :rmdir</title>
<updated>2020-08-19T09:38:57+00:00</updated>
<author>
<name>ARaspiK</name>
<email>araspik@protonmail.com</email>
</author>
<published>2020-08-18T20:27:23+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=fe1cabb077cf6c6cb3de122b3f5532acbeba8c85'/>
<id>fe1cabb077cf6c6cb3de122b3f5532acbeba8c85</id>
<content type='text'>
The `:rmdir` command removes the current directory (`-f` is required if
the directory is not empty).

This is not supported on the notmuch backend.

An issue with the maildir backend is that some sync programs (e.g.
offlineimap) may recover the directory after it is deleted.  They need
to specifically be configured to accept deletions, or special commands
need to be executed (e.g. `offlineimap --delete-folder`) to properly
delete folders.

A danger of using this on the IMAP backend is that it is possible for a
new message to be added to the directory and for aerc to not show it
immediately (due to a slow connection) - using `:rmdir` at this moment
(with `-f` if the directory already contains messages) would delete the
directory and the new message that just arrived (and all other
contents).  This is documented in aerc(1) so that users are aware of
possible risks.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The `:rmdir` command removes the current directory (`-f` is required if
the directory is not empty).

This is not supported on the notmuch backend.

An issue with the maildir backend is that some sync programs (e.g.
offlineimap) may recover the directory after it is deleted.  They need
to specifically be configured to accept deletions, or special commands
need to be executed (e.g. `offlineimap --delete-folder`) to properly
delete folders.

A danger of using this on the IMAP backend is that it is possible for a
new message to be added to the directory and for aerc to not show it
immediately (due to a slow connection) - using `:rmdir` at this moment
(with `-f` if the directory already contains messages) would delete the
directory and the new message that just arrived (and all other
contents).  This is documented in aerc(1) so that users are aware of
possible risks.
</pre>
</div>
</content>
</entry>
<entry>
<title>notmuch: manually close notmuch objects</title>
<updated>2020-08-07T07:49:57+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2020-08-07T07:49:47+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=7a9fe3824f49905f46700a4620cce97fdd32b3eb'/>
<id>7a9fe3824f49905f46700a4620cce97fdd32b3eb</id>
<content type='text'>
There seems to be some race with the automatic closing that should happen
in theory... close it manually where we can to avoid the issue
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There seems to be some race with the automatic closing that should happen
in theory... close it manually where we can to avoid the issue
</pre>
</div>
</content>
</entry>
<entry>
<title>Add additional flagging functionality</title>
<updated>2020-07-08T07:13:03+00:00</updated>
<author>
<name>ARaspiK</name>
<email>araspik@protonmail.com</email>
</author>
<published>2020-07-05T14:29:52+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=0535f6333f2f5d13469fc315a65c53ff8a5e83f3'/>
<id>0535f6333f2f5d13469fc315a65c53ff8a5e83f3</id>
<content type='text'>
More mail flags can now be set, unset, and toggled, not just the
read/seen flag.

This functionality is implemented with a new `:flag` and `:unflag`
command, which are extensions to the matching `:read` and `:unread`
commands, adding support for different flags.  In fact, the
`read`/`unread` commands are now recognized aliases to `flag`/`unflag`.
The new commands are also well documented in aerc(1).

The change mostly extends the previous read/unread setting functionality
by adding a selection for the flag to change.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
More mail flags can now be set, unset, and toggled, not just the
read/seen flag.

This functionality is implemented with a new `:flag` and `:unflag`
command, which are extensions to the matching `:read` and `:unread`
commands, adding support for different flags.  In fact, the
`read`/`unread` commands are now recognized aliases to `flag`/`unflag`.
The new commands are also well documented in aerc(1).

The change mostly extends the previous read/unread setting functionality
by adding a selection for the flag to change.
</pre>
</div>
</content>
</entry>
<entry>
<title>notmuch: fix docstring</title>
<updated>2020-07-07T23:02:46+00:00</updated>
<author>
<name>Reto Brunner</name>
<email>reto@labrat.space</email>
</author>
<published>2020-07-07T23:02:46+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.shivesh.org/aerc/commit/?id=3e6189f243c8d0717979da1a1a18e46996f6a2ef'/>
<id>3e6189f243c8d0717979da1a1a18e46996f6a2ef</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
