all repos — emessage @ 312f91c8b7e25ecd3446038beca95872642f3d45

The EMessage email client

fixed some bugs I think
Robert Ismo me@robertismo.com
Fri, 26 Jun 2026 14:40:19 -0500
commit

312f91c8b7e25ecd3446038beca95872642f3d45

parent

d9e959888aed862973f5df75ac7a3c7663467d90

4 files changed, 17 insertions(+), 0 deletions(-)

jump to
M README.mdREADME.md

@@ -8,3 +8,9 @@ - [ ] User Arrow keys, Enter, and Esc on the focused ContactSelector

- [ ] Handle a different client replying to an EMessage - [x] Add a Status line - [ ] Actually define proper subject for new messages + - [ ] No logging + - [ ] Cannot type a email in the contact selector to add it + + BUGS + - [ ] The App randomly closed + - [ ] The contact selector doesn't update on new contacts add
M frontend/src/lib/components/EnvelopeControl.sveltefrontend/src/lib/components/EnvelopeControl.svelte

@@ -21,6 +21,8 @@ global.conversation.Recipients[0] = conversation.ServerRecipient;

global.fromAddress = conversation.ServerRecipient; } recipientInfo = await GetRecipientDisplay(conversation.Recipients).then(list => { if (list) return list.slice(1) }); + const userContact = await GetUserContact(); + const activeEmails = await GetActiveMailEmails(); });
M mailaccount.gomailaccount.go

@@ -11,6 +11,7 @@ "github.com/emersion/go-imap/v2/imapclient"

"github.com/emersion/go-sasl" "github.com/emersion/go-smtp" "github.com/zalando/go-keyring" + "github.com/wailsapp/wails/v2/pkg/runtime" "gorm.io/gorm" )

@@ -106,6 +107,7 @@ }

} func (app *App) FullRefresh() { + runtime.EventsEmit(app.ctx, "reload") app.EstablishMailConnections() app.Updater.Update() }

@@ -417,13 +419,19 @@ }

func (app *App) watchMailbox(email string, conn MailAccountConnection) { mailbox := SourceMailboxes[0] for { + if !ImapSyncMutex.TryLock() { + time.Sleep(10 * time.Second) + continue + } if _, err := conn.ImapClient.Select(mailbox, nil).Wait(); err != nil { app.Log("Select failed: %v", err).Stdout() + ImapSyncMutex.Unlock() return } idleCmd, err := conn.ImapClient.Idle() if err != nil { app.Log("IDLE start failed: %v", err).Stdout() + ImapSyncMutex.Unlock() return } waitChan := make(chan error, 1)
M releasesreleases

@@ -1,3 +1,4 @@

+prerelease.11 prerelease.10 prerelease.9 prerelease.8