@bobfrankston/mailx 1.0.126 → 1.0.128

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -282,6 +282,15 @@ function appendMessages(body, accountId, items) {
282
282
  else {
283
283
  from.textContent = msg.from.name || msg.from.address;
284
284
  }
285
+ // Account tag for unified inbox
286
+ if (!accountId && msgAccountId) {
287
+ const tag = document.createElement("span");
288
+ tag.className = "ml-account-tag";
289
+ const label = msgAccountId;
290
+ tag.textContent = label.charAt(0).toUpperCase();
291
+ tag.title = label;
292
+ from.prepend(tag);
293
+ }
285
294
  const subject = document.createElement("span");
286
295
  subject.className = "ml-subject";
287
296
  subject.innerHTML = escapeHtml(msg.subject);
@@ -370,6 +370,21 @@ button.tb-menu-item { background: none; border: none; color: inherit; width: 100
370
370
  .ml-row.flagged { background: color-mix(in oklch, oklch(0.75 0.15 60) 8%, transparent); }
371
371
 
372
372
  .ml-from { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
373
+ .ml-account-tag {
374
+ display: inline-block;
375
+ width: 1.1em; height: 1.1em;
376
+ line-height: 1.1em;
377
+ text-align: center;
378
+ font-size: 0.7rem;
379
+ font-weight: bold;
380
+ border-radius: 2px;
381
+ margin-right: 4px;
382
+ color: #fff;
383
+ background: var(--color-accent);
384
+ vertical-align: baseline;
385
+ }
386
+ .ml-account-tag[title="gmail"] { background: #d93025; }
387
+ .ml-account-tag[title="bobma"] { background: #1a73e8; }
373
388
  .ml-subject {
374
389
  overflow: hidden;
375
390
  text-overflow: ellipsis;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx",
3
- "version": "1.0.126",
3
+ "version": "1.0.128",
4
4
  "description": "Local-first email client with IMAP sync and standalone native app",
5
5
  "type": "module",
6
6
  "main": "bin/mailx.js",
@@ -20,7 +20,7 @@
20
20
  "postinstall": "node launcher/builder/postinstall.js"
21
21
  },
22
22
  "dependencies": {
23
- "@bobfrankston/iflow": "^1.0.49",
23
+ "@bobfrankston/iflow": "^1.0.50",
24
24
  "@bobfrankston/miscinfo": "^1.0.7",
25
25
  "@bobfrankston/oauthsupport": "^1.0.20",
26
26
  "@bobfrankston/rust-builder": "^0.1.3",
@@ -502,7 +502,13 @@ export class ImapManager extends EventEmitter {
502
502
  return; // Prevent concurrent syncs
503
503
  this.syncing = true;
504
504
  try {
505
- await this._syncAll();
505
+ await Promise.race([
506
+ this._syncAll(),
507
+ new Promise((_, reject) => setTimeout(() => reject(new Error("Global sync timeout (10min)")), 600000))
508
+ ]);
509
+ }
510
+ catch (e) {
511
+ console.error(` syncAll error: ${e.message}`);
506
512
  }
507
513
  finally {
508
514
  this.syncing = false;