From Julio B to ~rjarry/aerc-devel
On Tue Jan 14, 2025 at 11:30 PM EET, Robin Jarry wrote: > Some last minute fixes before tagging should be OK. Right? > > Signed-off-by: Robin Jarry <robin@jarry.cc> > --- > go.mod | 2 +- > go.sum | 4 ++-- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/go.mod b/go.mod > index ddb3e64c47a7..762bb48c7774 100644 > --- a/go.mod > +++ b/go.mod > @@ -5,7 +5,7 @@ go 1.21
From Julio B to ~rjarry/aerc-devel
On Mon Jan 13, 2025 at 3:08 PM EET, Robin Jarry wrote: > When exiting vim with :cq, it exits with an error status which is caught > in the termClosed() callback. This causes the composer tab to be closed > and it is a known and expected behaviour. > > A recent fix of the tab strip removal revealed that the composer lock is > still held when calling RemoveTab(). Internally, RemoveTab() hides and > unfocuses the removed tab both operations require the composer lock as > well, causing a complete deadlock of the application. > > Unfortunately, we cannot rely on the go defer statement to have > RemoveTab(), called *AFTER* c.Unlock(). Deferred statements are called > in the reverse order they were evaluated. >
From Julio B to ~rjarry/aerc-devel
Hi, I'm reporting a regression which was introduced by this patch 6b97085a (tab: fix broken history on removal, 2025-01-07). Steps to reproduce: 1. Compose a new message with 'C' 2. Hit <Tab> several times to focus vim 3. Exit vim with :cq<CR> Now aerc is frozen and doesn't respond to any keyboard input. This bug is also reproducible when replying to a message with 'rq' instead of composing a new one.
From Julio B to ~rjarry/aerc-devel
Works as expected for all of :{query,cf,filter,search} commands. The 'tag:' completion is really useful! The only thing i found interesting is this: If you type for example folder:Inbox/<TAB> then aerc completes folder:Inbox/{cur,tmp,new} but the notmuch command in bash shell completes just folder:Inbox/ so cur,tmp and new are not expanded. But i don't think that this is an issue at all. Tested-by: Julio B <julio.bacel@gmail.com>
From Julio B to ~rjarry/aerc-devel
The current implementation assumes that 'root[0].FirstChild' is nil, but this is not always the case. Instead of overwriting the FirstChild, detect and link the messages to the LastChild of root[0]. Fixes: 672b4edca7af2303cfcb1d69a676556d12476b5f Fixes: https://lists.sr.ht/~rjarry/aerc-devel/%3C20240305231305.44287-4-julio.bacel%40gmail.com%3E Signed-off-by: Julio B <julio.bacel@gmail.com> --- worker/notmuch/lib/database.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/worker/notmuch/lib/database.go b/worker/notmuch/lib/database.go index 7216274a..9a8a9a60 100644 --- a/worker/notmuch/lib/database.go [message trimmed]
From Julio B to ~rjarry/aerc-devel
On Mon Mar 25, 2024 at 7:38 PM EET, inwit wrote: > It works fine for level-1 siblings, but if you mix them with level-2, > you get disappearing messages (which is way worse than unthreaded > messages). As discussed over on irc, fixing the root to the first > message doesn't seem like the best solution. Probably, creating a fake > ancestor would be better. > > Tested-By: inwit <inwit@sindominio.net> Thank you inwit for testing this out! That's correct, some edge cases are not handled properly with this patch. The solution seems to be much more complex and requires changes deep down in the threading logic of aerc. Unfortunately, I haven't achieved much with this yet. I'm not familiar with the whole codebase and i couldn't fix this without
From Julio B to ~rjarry/aerc-devel
These messages are not really the root of the thread, and should not be
displayed as such. Add a new special prefix to make them appear like
the first child of a rootless thread.
Signed-off-by: Julio B <julio.bacel@gmail.com>
---
Notes:
Before: After:
-------------------------------
Re: subject ┬─>Re: subject
├─> ├─>
└─> └─>
[message trimmed]
From Julio B to ~rjarry/aerc-devel
Create a "pseudo thread" with the first message as root. This is a temporary solution, until we have a more generic implementation of dummy messages that works for all backends. Signed-off-by: Julio B <julio.bacel@gmail.com> --- worker/notmuch/lib/database.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/worker/notmuch/lib/database.go b/worker/notmuch/lib/database.go index 4d853642..beddb38d 100644 --- a/worker/notmuch/lib/database.go +++ b/worker/notmuch/lib/database.go @@ -137,11 +137,17 @@ func (db *DB) ThreadsFromQuery(ctx context.Context, q string, entireThread bool) [message trimmed]
From Julio B to ~rjarry/aerc-devel
Currently, threads that are incomplete are not drawn properly by aerc. For example: Sender A Re: test msg 01 Jan 01 Sender B Re: test msg 02 Jan 01 Sender C Re: test msg 03 Jan 01 Use the first message as a "dummy" root, and link the rest of the messages to it. The above example becomes: Sender A ┬─>Re: test msg 01 Jan 01 Sender B ├─> 02 Jan 01 Sender C └─> 03 Jan 01
From Julio B to ~rjarry/aerc-devel
Tested-by: Julio B <julio.bacel@gmail.com>