@bobfrankston/mailx 1.0.239 → 1.0.241

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.
@@ -1 +1 @@
1
- {"height":1344,"width":2151,"x":656,"y":239}
1
+ {"height":1344,"width":2151,"x":524,"y":191}
package/client/app.js CHANGED
@@ -867,9 +867,17 @@ onWsEvent((event) => {
867
867
  location.reload();
868
868
  break;
869
869
  case "configChanged":
870
- // A watched config file (accounts.jsonc etc.) was modified externally.
871
- // Show a banner telling the user to restart for changes to take effect.
872
- showAlert(`${event.filename} was updated restart mailx to apply changes`, `config-${event.filename}`);
870
+ // A watched config file was modified — could be user edit via the
871
+ // JSONC editor, a GDrive sync, or mailx itself saving (e.g.
872
+ // allowlist update on "allow sender"). Show in the status bar
873
+ // briefly, NOT as an error banner — it's informational.
874
+ if (statusSync) {
875
+ statusSync.textContent = `${event.filename} updated`;
876
+ setTimeout(() => {
877
+ if (statusSync.textContent === `${event.filename} updated`)
878
+ statusSync.textContent = "";
879
+ }, 8000);
880
+ }
873
881
  break;
874
882
  case "error":
875
883
  if (statusSync)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx",
3
- "version": "1.0.239",
3
+ "version": "1.0.241",
4
4
  "description": "Local-first email client with IMAP sync and standalone native app",
5
5
  "type": "module",
6
6
  "main": "bin/mailx.js",
@@ -24,7 +24,7 @@
24
24
  "@bobfrankston/iflow-node": "^0.1.2",
25
25
  "@bobfrankston/miscinfo": "^1.0.8",
26
26
  "@bobfrankston/oauthsupport": "^1.0.22",
27
- "@bobfrankston/msger": "^0.1.301",
27
+ "@bobfrankston/msger": "^0.1.303",
28
28
  "@capacitor/android": "^8.3.0",
29
29
  "@capacitor/cli": "^8.3.0",
30
30
  "@capacitor/core": "^8.3.0",
@@ -78,7 +78,7 @@
78
78
  "@bobfrankston/iflow-node": "^0.1.2",
79
79
  "@bobfrankston/miscinfo": "^1.0.8",
80
80
  "@bobfrankston/oauthsupport": "^1.0.22",
81
- "@bobfrankston/msger": "^0.1.301",
81
+ "@bobfrankston/msger": "^0.1.303",
82
82
  "@capacitor/android": "^8.3.0",
83
83
  "@capacitor/cli": "^8.3.0",
84
84
  "@capacitor/core": "^8.3.0",
@@ -1236,7 +1236,11 @@ export class ImapManager extends EventEmitter {
1236
1236
  // which gives instant push — the STATUS poll is just a fallback
1237
1237
  // in case IDLE silently dropped.
1238
1238
  const isGmail = this.isGmailAccount(accountId);
1239
- const interval = isGmail ? 15000 : 300000; // Gmail API: 15s; IMAP with IDLE: 5min
1239
+ // Both Gmail API and IMAP accounts have IDLE running for instant
1240
+ // push. The STATUS poll is just a safety net for silent IDLE drops.
1241
+ // Keep it infrequent to avoid hammering — Gmail 429 rate limits
1242
+ // and Dovecot connection limits are both real constraints.
1243
+ const interval = isGmail ? 120000 : 300000; // Gmail: 2min; IMAP: 5min
1240
1244
  const timer = setInterval(() => {
1241
1245
  this.quickInboxCheckAccount(accountId).catch(() => { });
1242
1246
  }, interval);