proton-mail-bridge-client 2.0.0 → 2.0.2

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.
Files changed (42) hide show
  1. package/README.md +2 -2
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +6 -2
  4. package/dist/cli.js.map +1 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +83 -37
  7. package/dist/index.js.map +1 -1
  8. package/dist/services/delivery-queue-service.d.ts +5 -0
  9. package/dist/services/delivery-queue-service.d.ts.map +1 -1
  10. package/dist/services/delivery-queue-service.js +110 -15
  11. package/dist/services/delivery-queue-service.js.map +1 -1
  12. package/dist/services/draft-store-service.d.ts +3 -0
  13. package/dist/services/draft-store-service.d.ts.map +1 -1
  14. package/dist/services/draft-store-service.js +64 -1
  15. package/dist/services/draft-store-service.js.map +1 -1
  16. package/dist/services/local-index-service.d.ts +5 -0
  17. package/dist/services/local-index-service.d.ts.map +1 -1
  18. package/dist/services/local-index-service.js +191 -18
  19. package/dist/services/local-index-service.js.map +1 -1
  20. package/dist/services/simple-imap-service.d.ts +7 -1
  21. package/dist/services/simple-imap-service.d.ts.map +1 -1
  22. package/dist/services/simple-imap-service.js +163 -23
  23. package/dist/services/simple-imap-service.js.map +1 -1
  24. package/dist/services/snooze-service.d.ts +3 -0
  25. package/dist/services/snooze-service.d.ts.map +1 -1
  26. package/dist/services/snooze-service.js +103 -7
  27. package/dist/services/snooze-service.js.map +1 -1
  28. package/dist/services/template-service.d.ts +1 -0
  29. package/dist/services/template-service.d.ts.map +1 -1
  30. package/dist/services/template-service.js +8 -0
  31. package/dist/services/template-service.js.map +1 -1
  32. package/dist/types/index.d.ts +7 -1
  33. package/dist/types/index.d.ts.map +1 -1
  34. package/dist/utils/account-identity.d.ts +8 -0
  35. package/dist/utils/account-identity.d.ts.map +1 -0
  36. package/dist/utils/account-identity.js +78 -0
  37. package/dist/utils/account-identity.js.map +1 -0
  38. package/dist/utils/file-lock.d.ts +1 -0
  39. package/dist/utils/file-lock.d.ts.map +1 -1
  40. package/dist/utils/file-lock.js +24 -4
  41. package/dist/utils/file-lock.js.map +1 -1
  42. package/package.json +2 -2
@@ -1,6 +1,7 @@
1
1
  import type { DeliveryQueueKind, DeliveryQueueRecord, ProtonMailConfig, SendEmailInput } from "../types/index.js";
2
2
  import { type Logger } from "../utils/logger.js";
3
3
  import { SMTPService } from "./smtp-service.js";
4
+ import type { DraftStoreService } from "./draft-store-service.js";
4
5
  export declare class DeliveryQueueService {
5
6
  private readonly config;
6
7
  private readonly smtpService;
@@ -9,7 +10,10 @@ export declare class DeliveryQueueService {
9
10
  private _lock;
10
11
  private timer?;
11
12
  private started;
13
+ private identityChecked;
14
+ private draftStore?;
12
15
  constructor(config: ProtonMailConfig, smtpService: SMTPService, log?: Logger);
16
+ setDraftStore(draftStore: DraftStoreService): void;
13
17
  start(): Promise<void>;
14
18
  stop(): void;
15
19
  private scheduleNext;
@@ -27,6 +31,7 @@ export declare class DeliveryQueueService {
27
31
  }>;
28
32
  private pruneOldRecords;
29
33
  private recoverInterruptedSends;
34
+ private isAbandonedClaim;
30
35
  private withLock;
31
36
  private load;
32
37
  private loadUnlocked;
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-queue-service.d.ts","sourceRoot":"","sources":["../../src/services/delivery-queue-service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGlH,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAiChD,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG;IARtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,KAAK,CAAC,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAS;gBAGL,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,EACxB,GAAG,GAAE,MAAe;IAKjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,IAAI,IAAI,IAAI;IAQZ,OAAO,CAAC,YAAY;IAad,OAAO,CACX,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,EACvB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,mBAAmB,CAAC;IAkBzB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAgB9E,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAS7C,IAAI,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAatC,QAAQ,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA4F3D,OAAO,CAAC,eAAe;YAqBT,uBAAuB;YAkBvB,QAAQ;YAUR,IAAI;YASJ,YAAY;YAwBZ,sBAAsB;YA0BtB,IAAI;CAUnB"}
1
+ {"version":3,"file":"delivery-queue-service.d.ts","sourceRoot":"","sources":["../../src/services/delivery-queue-service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIlH,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAyClE,qBAAa,oBAAoB;IAc7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAftB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,KAAK,CAAC,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAS;IAMhC,OAAO,CAAC,UAAU,CAAC,CAAoB;gBAGpB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,EACxB,GAAG,GAAE,MAAe;IAKvC,aAAa,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAI5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,IAAI,IAAI,IAAI;IAQZ,OAAO,CAAC,YAAY;IAad,OAAO,CACX,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,EACvB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,mBAAmB,CAAC;IAkBzB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAgB9E,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAS7C,IAAI,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAatC,QAAQ,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAmI3D,OAAO,CAAC,eAAe;YA4BT,uBAAuB;IAkCrC,OAAO,CAAC,gBAAgB;YAeV,QAAQ;YAUR,IAAI;YASJ,YAAY;YAkCZ,sBAAsB;YAoBtB,IAAI;CAUnB"}
@@ -2,7 +2,8 @@ import { randomUUID } from "node:crypto";
2
2
  import { copyFileSync } from "node:fs";
3
3
  import { mkdir, readFile, readdir, rename, unlink, writeFile } from "node:fs/promises";
4
4
  import { dirname, join } from "node:path";
5
- import { withFileLock } from "../utils/file-lock.js";
5
+ import { ensureAccountIdentityMatches } from "../utils/account-identity.js";
6
+ import { isProcessAlive, withFileLock } from "../utils/file-lock.js";
6
7
  import { ensureOutboundRecipientsAllowed, ensureSendAllowed } from "../utils/runtime-policy.js";
7
8
  import { logger } from "../utils/logger.js";
8
9
  import { withTimeout } from "../utils/helpers.js";
@@ -11,6 +12,14 @@ const SEND_ITEM_TIMEOUT_MS = 30_000;
11
12
  // it — otherwise this JSON file grows without bound for the lifetime of the
12
13
  // account, since nothing else ever removes a record.
13
14
  const TERMINAL_RECORD_RETENTION_MS = 30 * 24 * 60 * 60 * 1000;
15
+ // How stale a "sending" record's claim must be before recoverInterruptedSends
16
+ // will reclaim it even though its owner PID looks alive (or can't be
17
+ // determined) — guards against PID reuse: the original owner exited and,
18
+ // after enough time, the OS handed that same PID to an unrelated process
19
+ // (see file-lock.ts's isStale for the identical reasoning). Generous relative
20
+ // to SEND_ITEM_TIMEOUT_MS, since a live owner should resolve "sending" within
21
+ // that bound.
22
+ const RECOVERY_STALE_MS = 5 * 60 * 1000;
14
23
  function createEmptyStore() {
15
24
  return { version: 1, items: {} };
16
25
  }
@@ -23,12 +32,22 @@ export class DeliveryQueueService {
23
32
  _lock = Promise.resolve();
24
33
  timer;
25
34
  started = false;
35
+ identityChecked = false;
36
+ // Optional — set via setDraftStore() right after construction in
37
+ // index.ts's wiring. Lets checkDue() close the loop back to the draft that
38
+ // originated a scheduled_send record when it fires, instead of leaving the
39
+ // draft's own status stuck at "draft" forever after real delivery (see
40
+ // checkDue()'s success path below).
41
+ draftStore;
26
42
  constructor(config, smtpService, log = logger) {
27
43
  this.config = config;
28
44
  this.smtpService = smtpService;
29
45
  this.log = log;
30
46
  this.queuePath = join(this.config.dataDir, "delivery-queue.json");
31
47
  }
48
+ setDraftStore(draftStore) {
49
+ this.draftStore = draftStore;
50
+ }
32
51
  async start() {
33
52
  if (this.started)
34
53
  return;
@@ -130,6 +149,12 @@ export class DeliveryQueueService {
130
149
  if (!record || record.status !== "pending")
131
150
  return undefined;
132
151
  record.status = "sending";
152
+ // Tag the claim with this process's identity — see the ownerPid
153
+ // comment on DeliveryQueueRecord and recoverInterruptedSends() below
154
+ // for why a second process's startup recovery needs this to avoid
155
+ // stomping on a still-live send.
156
+ record.ownerPid = process.pid;
157
+ record.claimedAt = new Date().toISOString();
133
158
  await this.save(store);
134
159
  return record;
135
160
  });
@@ -159,6 +184,35 @@ export class DeliveryQueueService {
159
184
  }
160
185
  });
161
186
  sent += 1;
187
+ // Found live: a scheduled send that fired here never told
188
+ // DraftStoreService about it — the queue record went "sent" but the
189
+ // source draft's own status stayed "draft" forever, so a later
190
+ // manual send_draft on the same draft delivered a genuine duplicate.
191
+ // Route this through the same claimForSending()/markSent() pair
192
+ // send_draft uses, so both paths share one source of truth for
193
+ // "has this draft already been sent".
194
+ if (claimed.sourceDraftId && this.draftStore) {
195
+ try {
196
+ const claimedDraft = await this.draftStore.claimForSending(claimed.sourceDraftId);
197
+ await this.draftStore.markSent(claimedDraft.id, {
198
+ messageId: result.messageId,
199
+ accepted: result.accepted,
200
+ rejected: result.rejected,
201
+ response: result.response,
202
+ });
203
+ }
204
+ catch (draftError) {
205
+ // The only expected failure here is the draft already being
206
+ // "sent" or "sending" — e.g. a manual send_draft raced this
207
+ // scheduled fire and won. That's a legitimate race the other
208
+ // direction (mail already went out through the manual path, or
209
+ // is about to), not this checkDue() pass's problem to fix —
210
+ // the delivery-queue record above is already correctly "sent"
211
+ // regardless. Log and move on rather than throwing, since the
212
+ // actual email send already succeeded.
213
+ this.log.warn("Scheduled send fired but its source draft could not be marked sent", "DeliveryQueueService", { draftId: claimed.sourceDraftId, error: draftError });
214
+ }
215
+ }
162
216
  }
163
217
  catch (error) {
164
218
  const rawMessage = error instanceof Error ? error.message : String(error);
@@ -214,18 +268,28 @@ export class DeliveryQueueService {
214
268
  }
215
269
  return changed;
216
270
  }
217
- // Runs once at start(), before the catch-up checkDue() pass. A record
218
- // stuck in "sending" means the previous process died between claiming the
219
- // item and recording the outcome — whether the SMTP call actually
220
- // completed is unknown, so it is never auto-resent. It is marked "failed"
221
- // with a reason that says so explicitly, for the caller to verify by hand.
271
+ // Runs once at start(), before the catch-up checkDue() pass. A "sending"
272
+ // record does NOT necessarily mean the previous process died mid-send —
273
+ // this dataDir can be, and regularly is, shared by more than one live
274
+ // server process (see withLock's comment), and that other process may
275
+ // still be in the middle of a perfectly healthy send right now. Blindly
276
+ // "recovering" every "sending" record found here would let a second
277
+ // instance's startup stomp on a first instance's live, in-flight send.
278
+ // Instead, only reclaim a record whose owning process is demonstrably gone
279
+ // — see isAbandonedClaim below — mirroring file-lock.ts's PID-liveness
280
+ // check for stale locks. Only then is the outcome truly unknown, so it is
281
+ // never auto-resent; it's marked "failed" with a reason that says so
282
+ // explicitly, for the caller to verify by hand.
222
283
  async recoverInterruptedSends() {
223
284
  await this.withLock(async () => {
224
285
  const store = await this.loadUnlocked();
286
+ const now = Date.now();
225
287
  let changed = false;
226
288
  for (const record of Object.values(store.items)) {
227
289
  if (record.status !== "sending")
228
290
  continue;
291
+ if (!this.isAbandonedClaim(record.ownerPid, record.claimedAt ?? record.createdAt, now))
292
+ continue;
229
293
  record.status = "failed";
230
294
  record.failureReason = "Interrupted by a server restart while sending — delivery outcome is unknown. Not auto-resent; check the mailbox's Sent folder to confirm whether it actually went out before resending manually.";
231
295
  changed = true;
@@ -234,6 +298,34 @@ export class DeliveryQueueService {
234
298
  await this.save(store);
235
299
  });
236
300
  }
301
+ // Decides whether a "sending" claim belongs to a process that's actually
302
+ // gone, rather than just "in a transient status" — the two used to be
303
+ // treated as the same thing, which is the bug this exists to fix. Reuses
304
+ // file-lock.ts's exact PID-liveness mechanism (process.kill(pid, 0)) rather
305
+ // than reimplementing it.
306
+ //
307
+ // - ownerPid missing entirely (a record written before this field
308
+ // existed): there's no PID to check, so fall back to this module's
309
+ // original unconditional-recovery behavior rather than leave a genuinely
310
+ // crashed pre-fix record stuck in "sending" forever.
311
+ // - ownerPid confirmed dead (ESRCH): abandoned, reclaim now regardless of
312
+ // age.
313
+ // - ownerPid alive, or the liveness probe was inconclusive: a live owner
314
+ // is actively working this record, so leave it alone — UNLESS the claim
315
+ // is older than RECOVERY_STALE_MS, which is treated as abandoned anyway
316
+ // to guard against PID reuse (the original owner exited and the OS later
317
+ // handed that same PID to an unrelated process). A live owner's send
318
+ // should resolve well within that window.
319
+ isAbandonedClaim(ownerPid, referenceTimestamp, now) {
320
+ if (ownerPid === undefined) {
321
+ return true;
322
+ }
323
+ if (isProcessAlive(ownerPid) === false) {
324
+ return true;
325
+ }
326
+ const ageMs = now - new Date(referenceTimestamp).getTime();
327
+ return ageMs > RECOVERY_STALE_MS;
328
+ }
237
329
  // In-process chain (cheap, no I/O) still serializes calls within this
238
330
  // process; withFileLock additionally serializes against every OTHER
239
331
  // process sharing this dataDir — see file-lock.ts for why that's a real,
@@ -253,6 +345,15 @@ export class DeliveryQueueService {
253
345
  // to this instance and never gets its write silently clobbered by a stale
254
346
  // in-memory copy on the next save().
255
347
  async loadUnlocked() {
348
+ // Refuse to read/write this dataDir's queue if it belongs to a different
349
+ // account than the one currently configured (see account-identity.ts) —
350
+ // every read-modify-write path in this service goes through loadUnlocked,
351
+ // so this is the single choke point that covers all of them. Checked once
352
+ // per process lifetime; a mismatch throws and is never cached as "ok".
353
+ if (!this.identityChecked) {
354
+ await ensureAccountIdentityMatches(this.config.dataDir, this.config.smtp.username);
355
+ this.identityChecked = true;
356
+ }
256
357
  await this.cleanOrphanedTempFiles();
257
358
  try {
258
359
  const raw = await readFile(this.queuePath, "utf8");
@@ -287,15 +388,9 @@ export class DeliveryQueueService {
287
388
  // Directory may not exist yet — ignore.
288
389
  }
289
390
  }
290
- // ponytail: withLock only serializes calls within this process — two
291
- // separate processes sharing this dataDir (e.g. a CLI `cancel-send` racing
292
- // this server's own checkDue()) can still interleave load-modify-save and
293
- // lose one side's update. No OS-level lock (flock/lockfile) is taken. A
294
- // bespoke cross-process lockfile trades a rare millisecond-window lost
295
- // update for a worse failure mode (a crash mid-lock leaves a stale lockfile
296
- // that blocks every future send). Real upgrade path if this ever matters:
297
- // move this JSON store into the SQLite index already used elsewhere
298
- // (better-sqlite3), which has real cross-process locking for free.
391
+ // Cross-process serialization for this read-modify-write is handled by
392
+ // withLock() above (via withFileLock) — see its comment for why that
393
+ // matters here (a CLI `cancel-send` racing this server's own checkDue()).
299
394
  async save(store) {
300
395
  await mkdir(dirname(this.queuePath), { recursive: true, mode: 0o700 });
301
396
  const tempPath = `${this.queuePath}.tmp`;
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-queue-service.js","sourceRoot":"","sources":["../../src/services/delivery-queue-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delivery-queue-service.js","sourceRoot":"","sources":["../../src/services/delivery-queue-service.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare class DraftStoreService {
5
5
  private readonly log;
6
6
  private readonly draftPath;
7
7
  private _lock;
8
+ private identityChecked;
8
9
  constructor(config: ProtonMailConfig, log?: Logger);
9
10
  listDrafts(includeSent?: boolean): Promise<DraftRecord[]>;
10
11
  getDraft(id: string): Promise<DraftRecord>;
@@ -40,6 +41,8 @@ export declare class DraftStoreService {
40
41
  notes?: string;
41
42
  }): Promise<DraftRecord>;
42
43
  markSent(id: string, result: DraftSendResult): Promise<DraftRecord>;
44
+ claimForSending(id: string): Promise<DraftRecord>;
45
+ revertSending(id: string): Promise<void>;
43
46
  markRemoteSynced(id: string, remoteDraft: RemoteDraftRef): Promise<DraftRecord>;
44
47
  markRemoteSyncError(id: string, message: string): Promise<DraftRecord>;
45
48
  clearRemoteSync(id: string): Promise<DraftRecord>;
@@ -1 +1 @@
1
- {"version":3,"file":"draft-store-service.d.ts","sourceRoot":"","sources":["../../src/services/draft-store-service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,eAAe,EACf,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAyBzD,qBAAa,iBAAiB;IAK1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IALtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,KAAK,CAAoC;gBAG9B,MAAM,EAAE,gBAAgB,EACxB,GAAG,GAAE,MAAe;IAKjC,UAAU,CAAC,WAAW,UAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAOvD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAS1C,WAAW,CAAC,KAAK,EAAE;QACvB,IAAI,CAAC,EAAE,SAAS,CAAC;QACjB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACrC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACzC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,WAAW,CAAC;IAmClB,WAAW,CACf,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;QACL,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACrC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACzC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,WAAW,CAAC;IAiCjB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAwBnE,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAwB/E,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAuBtE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAwBjD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAclE,KAAK,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;YA0B5C,QAAQ;YAUR,IAAI;YAQJ,YAAY;YA+CZ,sBAAsB;YAyBtB,IAAI;IAYlB,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,oBAAoB;CAI7B"}
1
+ {"version":3,"file":"draft-store-service.d.ts","sourceRoot":"","sources":["../../src/services/draft-store-service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,eAAe,EACf,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAyBzD,qBAAa,iBAAiB;IAM1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IANtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,eAAe,CAAS;gBAGb,MAAM,EAAE,gBAAgB,EACxB,GAAG,GAAE,MAAe;IAKjC,UAAU,CAAC,WAAW,UAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAYvD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAS1C,WAAW,CAAC,KAAK,EAAE;QACvB,IAAI,CAAC,EAAE,SAAS,CAAC;QACjB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACrC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACzC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,WAAW,CAAC;IAmClB,WAAW,CACf,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;QACL,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACrC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACzC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,WAAW,CAAC;IAiCjB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAkCnE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA8BjD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAexC,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAwB/E,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAuBtE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAwBjD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAclE,KAAK,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;YA0B5C,QAAQ;YAUR,IAAI;YAQJ,YAAY;YAsDZ,sBAAsB;YAyBtB,IAAI;IAYlB,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,oBAAoB;CAI7B"}
@@ -2,6 +2,7 @@ import { randomUUID } from "node:crypto";
2
2
  import { copyFileSync } from "node:fs";
3
3
  import { mkdir, readFile, rename, rm, writeFile, readdir, unlink } from "node:fs/promises";
4
4
  import { dirname, join } from "node:path";
5
+ import { ensureAccountIdentityMatches } from "../utils/account-identity.js";
5
6
  import { withFileLock } from "../utils/file-lock.js";
6
7
  import { extractDomain } from "../utils/helpers.js";
7
8
  import { logger } from "../utils/logger.js";
@@ -25,6 +26,7 @@ export class DraftStoreService {
25
26
  log;
26
27
  draftPath;
27
28
  _lock = Promise.resolve();
29
+ identityChecked = false;
28
30
  constructor(config, log = logger) {
29
31
  this.config = config;
30
32
  this.log = log;
@@ -33,7 +35,12 @@ export class DraftStoreService {
33
35
  async listDrafts(includeSent = false) {
34
36
  const store = await this.load();
35
37
  return Object.values(store.drafts)
36
- .filter((draft) => includeSent || draft.status === "draft")
38
+ // A draft stuck in "sending" (e.g. the process crashed between
39
+ // claimForSending() and markSent()) is not a completed record like
40
+ // "sent" — it still needs a human to notice and resolve it, so it's
41
+ // treated as active here rather than being hidden from the default
42
+ // (non-includeSent) listing.
43
+ .filter((draft) => includeSent || draft.status !== "sent")
37
44
  .sort((left, right) => right.updatedAt.localeCompare(left.updatedAt));
38
45
  }
39
46
  async getDraft(id) {
@@ -128,6 +135,56 @@ export class DraftStoreService {
128
135
  return nextDraft;
129
136
  });
130
137
  }
138
+ // Atomically claims a draft for sending: only succeeds when the draft is
139
+ // still "draft", flipping it to "sending" under the same lock that reads
140
+ // it. Found live: two concurrent send_draft calls for the same draft id
141
+ // both read status "draft", both passed the old plain-getDraft check, and
142
+ // both called SMTP — a genuine duplicate send. Routing the read+write
143
+ // through withLock closes that window: whichever call wins the claim sees
144
+ // "draft" and flips it, and every other caller — a second concurrent
145
+ // send_draft, an already-completed send, or a scheduled send that already
146
+ // fired via DeliveryQueueService.checkDue() — sees a non-"draft" status
147
+ // and is rejected before ever reaching SMTP.
148
+ async claimForSending(id) {
149
+ return this.withLock(async () => {
150
+ const store = await this.loadUnlocked();
151
+ const existing = store.drafts[id];
152
+ if (!existing) {
153
+ throw new Error(`Draft not found for id ${id}`);
154
+ }
155
+ if (existing.status !== "draft") {
156
+ throw new Error(`Draft ${id} is not sendable (status: ${existing.status})`);
157
+ }
158
+ const updatedAt = new Date().toISOString();
159
+ const nextDraft = {
160
+ ...existing,
161
+ status: "sending",
162
+ updatedAt,
163
+ };
164
+ store.updatedAt = updatedAt;
165
+ store.drafts[id] = nextDraft;
166
+ await this.save(store);
167
+ return nextDraft;
168
+ });
169
+ }
170
+ // Reverts a failed send's claim back to "draft" so the draft can be
171
+ // retried, mirroring SnoozeService.wake()'s catch handler reverting
172
+ // "waking" back to "pending" on a failed moveEmail. Only writes if the
173
+ // record is still "sending" — if something else already moved it on
174
+ // (e.g. a concurrent finalize), this must not clobber that outcome.
175
+ async revertSending(id) {
176
+ await this.withLock(async () => {
177
+ const store = await this.loadUnlocked();
178
+ const existing = store.drafts[id];
179
+ if (!existing || existing.status !== "sending") {
180
+ return;
181
+ }
182
+ const updatedAt = new Date().toISOString();
183
+ store.drafts[id] = { ...existing, status: "draft", updatedAt };
184
+ store.updatedAt = updatedAt;
185
+ await this.save(store);
186
+ });
187
+ }
131
188
  async markRemoteSynced(id, remoteDraft) {
132
189
  return this.withLock(async () => {
133
190
  const store = await this.loadUnlocked();
@@ -240,6 +297,12 @@ export class DraftStoreService {
240
297
  // dataDir must never be invisible to this instance, and its write must
241
298
  // never be silently clobbered by a stale in-memory copy on the next save().
242
299
  async loadUnlocked() {
300
+ // See DeliveryQueueService.loadUnlocked's identical guard: refuse to
301
+ // read/write this dataDir's store if it belongs to a different account.
302
+ if (!this.identityChecked) {
303
+ await ensureAccountIdentityMatches(this.config.dataDir, this.config.smtp.username);
304
+ this.identityChecked = true;
305
+ }
243
306
  // GAP-09: Clean up orphaned .tmp files left by a previous crashed write.
244
307
  await this.cleanOrphanedTempFiles();
245
308
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"draft-store-service.js","sourceRoot":"","sources":["../../src/services/draft-store-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"draft-store-service.js","sourceRoot":"","sources":["../../src/services/draft-store-service.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,7 @@ export declare class LocalIndexService {
41
41
  threads: ThreadSummary[];
42
42
  lastSyncAt?: string;
43
43
  indexFreshnessMinutes?: number;
44
+ messagesCapped?: boolean;
44
45
  }>;
45
46
  getThreadById(threadId: string): Promise<ThreadDetail>;
46
47
  getActionableThreads(input?: {
@@ -89,6 +90,10 @@ export declare class LocalIndexService {
89
90
  private maybeImportLegacyIndex;
90
91
  private loadCandidateEmails;
91
92
  private searchFtsIds;
93
+ private loadFoldersAndMetadata;
94
+ private loadCheckpointsSync;
95
+ private loadMessages;
96
+ private loadThreadCandidateMessages;
92
97
  private loadSnapshot;
93
98
  private rowToFolderInfo;
94
99
  private rowToEmailSummary;
@@ -1 +1 @@
1
- {"version":3,"file":"local-index-service.d.ts","sourceRoot":"","sources":["../../src/services/local-index-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-index-service.d.ts","sourceRoot":"","sources":["../../src/services/local-index-service.ts"],"names":[],"mappings":"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"}