fixed some bugs I think
Robert Ismo me@robertismo.com
Fri, 26 Jun 2026 14:40:19 -0500
4 files changed,
17 insertions(+),
0 deletions(-)
M
README.md
→
README.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.svelte
→
frontend/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.go
→
mailaccount.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)