@bobfrankston/rmfmail 1.1.244 → 1.1.246

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.
@@ -2870,6 +2870,15 @@ export class ImapManager extends EventEmitter {
2870
2870
 
2871
2871
  if (!this.configs.has(accountId)) return null;
2872
2872
 
2873
+ // Back off a body that recently hung / failed. One un-fetchable message
2874
+ // (the server stalls on its BODY[] — Bob 2026-06-12, UID 4966060) was
2875
+ // being re-fetched on every view + prefetch tick, each attempt hanging
2876
+ // ~90s and tying up the ops queue, so user actions (delete, open) were
2877
+ // delayed until the client timed out. The 5min→12h backoff (shared with
2878
+ // prefetch via isPrefetchEmpty) stops the tight re-fetch loop; the body
2879
+ // simply shows as unavailable until the backoff lapses and one retry runs.
2880
+ if (this.isPrefetchEmpty(accountId, folderId, uid)) return null;
2881
+
2873
2882
  const folder = this.db.getFolders(accountId).find(f => f.id === folderId);
2874
2883
  if (!folder) return null;
2875
2884
 
@@ -2896,6 +2905,9 @@ export class ImapManager extends EventEmitter {
2896
2905
  } catch (e: any) {
2897
2906
  if (e?.isNotFound) throw e;
2898
2907
  console.error(` Body fetch error (${accountId}/${uid}): ${e?.message || e}`);
2908
+ // Record so the next view / prefetch backs off instead of
2909
+ // re-attempting a hanging fetch and re-congesting the queue.
2910
+ try { this.markPrefetchEmpty(accountId, folderId, uid); } catch { /* */ }
2899
2911
  return null;
2900
2912
  }
2901
2913
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-imap",
3
- "version": "0.1.89",
3
+ "version": "0.1.90",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bobfrankston/mailx-imap",
9
- "version": "0.1.89",
9
+ "version": "0.1.90",
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
12
  "@bobfrankston/iflow-direct": "^0.1.27",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/mailx-imap",
3
- "version": "0.1.89",
3
+ "version": "0.1.90",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",