@bobfrankston/rmfmail 1.0.597 → 1.0.599
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.
- package/TODO.md +3 -0
- package/client/components/message-list.js +69 -3
- package/client/components/message-list.js.map +1 -1
- package/client/components/message-list.ts +71 -3
- package/client/compose/compose.js +75 -31
- package/client/compose/compose.js.map +1 -1
- package/client/compose/compose.ts +72 -28
- package/package.json +5 -3
- package/packages/mailx-store/db.d.ts.map +1 -1
- package/packages/mailx-store/db.js +62 -19
- package/packages/mailx-store/db.js.map +1 -1
- package/packages/mailx-store/db.ts +62 -19
package/TODO.md
CHANGED
|
@@ -793,6 +793,9 @@ Was part of S1 "local-first reconciliation refactor" until 2026-04-23 when S1's
|
|
|
793
793
|
| **Prefetch data-loss fix — guard against "0 of N returned"** — `mailx-imap.prefetchBodies` was pruning the entire requested batch when `fetchBodiesBatch` returned successfully but with no bodies (FETCH parser miss, wrong-folder, transient that didn't throw). User-reported on 2026-05-08: `[prefetch] bobma: 0 bodies cached, 66 stale rows pruned (done)` — 66 messages silently deleted from local DB. Earlier fix only covered "thrown batch ⇒ don't prune" (the 296-message loss); this one closes the parallel "successful but empty batch" hole on both IMAP and Gmail-API paths. Now: prune only when at least one body returned. Zero-return logs `batch returned 0/N bodies — NOT pruning (set-diff reconcile owns deletion)` and defers to syncFolder's grace-window reconcile. Per Bob's 2026-05-07 set-diff insight: deletion is exclusively the set-diff path's responsibility. | v1.0.585 |
|
|
794
794
|
| **mailx → rmfmail (CLI strings + log filename + post-register hint)** — daily log file is now `rmfmail-YYYY-MM-DD.log`; the 30-day retention scanner also matches the legacy `mailx-` prefix so old files age out cleanly. `mailx-store/db.ts` schema-mismatch error: "Run 'rmfmail -rebuild'". `mailx-server/index.ts` startup banner: "rmfmail server starting…" / "rmfmail server running on …". `--register-mailto` post-output rewritten to point at the right Win11 Settings path, name the Store-app warning, and explain the hash-protected `UrlAssociations\mailto\UserChoice` so the user understands why a registry write alone can't flip the active default. `openLocalPath("log")` opens `rmfmail-…` first, falls back to legacy filename if the daemon hasn't restarted since the upgrade. | v1.0.584 |
|
|
795
795
|
| **Trailing-comma email validation** — `mailx-service.send()` `validateAndPrune` (was `validateList`) silently drops empty / whitespace-only address fragments instead of throwing "empty address". Pruned list replaces `msg.to/cc/bcc` so the artifact also doesn't reach SMTP envelope assembly. Bare-name fragments (no `@`) still throw — that's a different bug. | v1.0.584 |
|
|
796
|
+
| **Send-hang root cause: synchronous group expansion (compose.ts)** — Send appeared to hang for 61 s on Bob 2026-05-09 00:16:57 because `await expandGroups(...)` inside the click handler awaited `loadGroupsMap()` which awaited `readJsoncFile("contacts.jsonc")` which fired a GDrive HTTP read. Slow network → 61 s hang → user clicked Send again at 00:23 → two real outgoing messages with different Message-IDs. expandGroups is now SYNCHRONOUS from in-memory cache + localStorage; cloud refresh runs in background at module load. Send NEVER awaits cloud I/O for group expansion. | v1.0.597 |
|
|
797
|
+
| **Message-ID dedup in INBOX views (db.ts)** — Thunderbird/Outlook collapse same-Message-ID rows in the inbox view; mailx was showing every copy. When a sender includes multiple of the user's own addresses on the recipient line, the local mail server delivers ONE message as N rows in the local DB — same Message-ID, different UIDs. SQL ROW_NUMBER OVER PARTITION BY message_id keeps the newest per Message-ID. Applied to both `getUnifiedInbox` and `getMessages`. Empty Message-IDs (rare; non-RFC senders) get unique buckets so each is its own row. | v1.0.597 |
|
|
798
|
+
| **Instant folder-switch via in-memory list cache (message-list.ts)** — clicking "All Inboxes" or any folder paints from the JS Map cache (~1 ms) BEFORE the IPC round-trip even fires; the IPC runs in background and only re-renders if the new data diverges from the cached snapshot. Listed-equality check (UIDs + flags) avoids DOM churn / scroll-jump on the common no-change refresh. The user-visible "click → empty pane → 50-200 ms wait → list paints" pattern collapses to "click → list visible immediately". First visit to a folder still needs the IPC round-trip; second-and-later are instant. | v1.0.597 |
|
|
796
799
|
| **Stale-response guard in message-list** — `loadMessages`, `loadUnifiedInbox`, `loadSearchResults` each capture a generation counter at the top and check before rendering. Rapid folder switches no longer let the previous folder's response clobber the new folder's render after the user has moved on. Dead `abortMessageListRequests` was incomplete cancellation; gen-counter is the working pattern. | v1.0.596 |
|
|
797
800
|
| **Send is atomic / fire-and-forget close** — `compose.ts` Send button used to await the IPC round-trip before closing. With a server-side stall the user could keep typing for several hundred ms, then their last edits vanished mid-keystroke when IPC eventually returned and triggered close. Snapshot body, validate locally (regex + non-empty To), close compose IMMEDIATELY, fire-and-forget the IPC. Failures bubble to the parent as `mailx-send-error` postMessage; the local outbox write inside `service.send` is synchronous-on-disk so the message is durable before the IPC even resolves. | v1.0.595 |
|
|
798
801
|
| **Outbox Cancel always available + claim age** — `outbox-view.ts` "Cancel" button was disabled whenever `claimed: true`, so a stuck `.sending-host-pid` claim left the message uncancelable. Now Cancel is always enabled; claim age is shown in the badge ("sending… (5s)" → "stuck (3m)" after 60 s). Confirm prompt warns that an in-flight cancel may cross the SMTP-send window — Message-ID dedup catches the duplicate, so it's still safe. Stale-claim recovery threshold cut from 1 h → 5 min so abandoned `.sending-` files reclaim themselves automatically before the user sees them as "stuck forever". Render-back failure now logs loudly instead of swallowing. | v1.0.595 |
|
|
@@ -43,6 +43,30 @@ let currentSortDir = "desc";
|
|
|
43
43
|
* preview shows folder Y" because folder X's getMessages eventually
|
|
44
44
|
* resolved AFTER folder Y's render and clobbered it. */
|
|
45
45
|
let loadGen = 0;
|
|
46
|
+
const listCache = new Map();
|
|
47
|
+
const CACHE_KEY_UNIFIED = "unified";
|
|
48
|
+
function cacheKey(mode, a, f, flagged, q) {
|
|
49
|
+
if (mode === "folder")
|
|
50
|
+
return `folder:${a}:${f}:${flagged ? "flag" : ""}`;
|
|
51
|
+
return `search:${q}`;
|
|
52
|
+
}
|
|
53
|
+
/** Quick equality check — same UID set, same flag pattern, same total.
|
|
54
|
+
* Skip re-render when this returns true to avoid DOM churn / scroll-
|
|
55
|
+
* jump on a refresh that didn't change anything. */
|
|
56
|
+
function listResultsEqual(a, b) {
|
|
57
|
+
if (!a || a.length !== b.length)
|
|
58
|
+
return false;
|
|
59
|
+
for (let i = 0; i < a.length; i++) {
|
|
60
|
+
if (a[i].uid !== b[i].uid)
|
|
61
|
+
return false;
|
|
62
|
+
if (a[i].accountId !== b[i].accountId)
|
|
63
|
+
return false;
|
|
64
|
+
// Flags-changed → must re-render (read/unread, flagged).
|
|
65
|
+
if ((a[i].flags || []).join(",") !== (b[i].flags || []).join(","))
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
46
70
|
/** Single source of truth for "which row is focused" in the list.
|
|
47
71
|
*
|
|
48
72
|
* Each rendered row is a `MessageRow` instance owning its DOM element,
|
|
@@ -502,7 +526,24 @@ export async function loadUnifiedInbox(autoSelect = true) {
|
|
|
502
526
|
fromHeader.textContent = "From";
|
|
503
527
|
const savedScroll = !autoSelect ? body.scrollTop : 0;
|
|
504
528
|
const savedUid = !autoSelect ? body.querySelector(".ml-row.selected")?.getAttribute("data-uid") : null;
|
|
505
|
-
|
|
529
|
+
// Instant first paint from cache. The IPC fires in background below
|
|
530
|
+
// and only triggers a re-render if the result diverges from the
|
|
531
|
+
// cached snapshot. The cache lives for the session; no TTL — the
|
|
532
|
+
// re-render covers staleness. C126 part 1 (the part that doesn't
|
|
533
|
+
// need cross-restart persistence; cold-start pre-render is part 2).
|
|
534
|
+
const cached = listCache.get(CACHE_KEY_UNIFIED);
|
|
535
|
+
if (cached) {
|
|
536
|
+
totalMessages = cached.total;
|
|
537
|
+
state.setMessages(cached.items);
|
|
538
|
+
renderMessages(body, "", cached.items);
|
|
539
|
+
if (autoSelect)
|
|
540
|
+
selectFirst(body);
|
|
541
|
+
else {
|
|
542
|
+
body.scrollTop = savedScroll;
|
|
543
|
+
restoreSelection(body, savedUid);
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
else if (autoSelect) {
|
|
506
547
|
body.innerHTML = `<div class="ml-empty">Loading...</div>`;
|
|
507
548
|
}
|
|
508
549
|
try {
|
|
@@ -510,6 +551,12 @@ export async function loadUnifiedInbox(autoSelect = true) {
|
|
|
510
551
|
if (myGen !== loadGen)
|
|
511
552
|
return; // user moved on; drop stale response
|
|
512
553
|
totalMessages = result.total;
|
|
554
|
+
listCache.set(CACHE_KEY_UNIFIED, { items: result.items, total: result.total, timestamp: Date.now() });
|
|
555
|
+
// Skip the re-render entirely if the IPC result matches what
|
|
556
|
+
// the cache already painted. Avoids DOM churn / scroll-jump
|
|
557
|
+
// on the common no-change refresh.
|
|
558
|
+
if (cached && listResultsEqual(cached.items, result.items))
|
|
559
|
+
return;
|
|
513
560
|
if (result.items.length === 0) {
|
|
514
561
|
state.setMessages([]);
|
|
515
562
|
body.innerHTML = `<div class="ml-empty">${result.total > 0 ? `${result.total} messages syncing...` : "Syncing — messages will appear shortly"}</div>`;
|
|
@@ -640,11 +687,26 @@ export async function loadMessages(accountId, folderId, page = 1, specialUse = "
|
|
|
640
687
|
fromHeader.textContent = showToInsteadOfFrom ? "To" : "From";
|
|
641
688
|
const savedScroll = !autoSelect ? body.scrollTop : 0;
|
|
642
689
|
const savedUid = !autoSelect ? body.querySelector(".ml-row.selected")?.getAttribute("data-uid") : null;
|
|
643
|
-
|
|
690
|
+
const flaggedOnly = document.getElementById("ml-body")?.classList.contains("flagged-only") || false;
|
|
691
|
+
const cKey = cacheKey("folder", accountId, folderId, flaggedOnly);
|
|
692
|
+
const cached = listCache.get(cKey);
|
|
693
|
+
if (cached) {
|
|
694
|
+
totalMessages = cached.total;
|
|
695
|
+
state.setMessages(cached.items);
|
|
696
|
+
renderMessages(body, accountId, cached.items);
|
|
697
|
+
if (autoSelect)
|
|
698
|
+
selectFirst(body);
|
|
699
|
+
else {
|
|
700
|
+
requestAnimationFrame(() => {
|
|
701
|
+
body.scrollTop = savedScroll;
|
|
702
|
+
restoreSelection(body, savedUid);
|
|
703
|
+
});
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
else if (autoSelect) {
|
|
644
707
|
body.innerHTML = `<div class="ml-empty">Loading...</div>`;
|
|
645
708
|
}
|
|
646
709
|
try {
|
|
647
|
-
const flaggedOnly = document.getElementById("ml-body")?.classList.contains("flagged-only") || false;
|
|
648
710
|
const result = await apiGetMessages(accountId, folderId, 1, 50, flaggedOnly, currentSort, currentSortDir);
|
|
649
711
|
// Stale-response guard: a newer load* fired while we were
|
|
650
712
|
// awaiting; the new view already painted. Drop this result
|
|
@@ -652,7 +714,11 @@ export async function loadMessages(accountId, folderId, page = 1, specialUse = "
|
|
|
652
714
|
if (myGen !== loadGen)
|
|
653
715
|
return;
|
|
654
716
|
totalMessages = result.total;
|
|
717
|
+
listCache.set(cKey, { items: result.items, total: result.total, timestamp: Date.now() });
|
|
655
718
|
updateSortIndicators();
|
|
719
|
+
// Skip re-render if data unchanged from the painted cache.
|
|
720
|
+
if (cached && listResultsEqual(cached.items, result.items))
|
|
721
|
+
return;
|
|
656
722
|
if (result.items.length === 0) {
|
|
657
723
|
state.setMessages([]);
|
|
658
724
|
body.innerHTML = `<div class="ml-empty">${flaggedOnly ? "No flagged messages" : "No messages"}</div>`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-list.js","sourceRoot":"","sources":["message-list.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"message-list.js","sourceRoot":"","sources":["message-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,40 @@ let currentSortDir: "asc" | "desc" = "desc";
|
|
|
50
50
|
* resolved AFTER folder Y's render and clobbered it. */
|
|
51
51
|
let loadGen = 0;
|
|
52
52
|
|
|
53
|
+
/** In-memory message cache for instant folder switches. Keyed by view —
|
|
54
|
+
* `unified`, `account:folder:flagged?`, `search:query`. The first click
|
|
55
|
+
* on a folder paints from this cache (~1 ms) BEFORE the IPC round-trip
|
|
56
|
+
* even fires; the IPC runs in background and only re-renders if the
|
|
57
|
+
* result diverges from the cached version. Bob 2026-05-09: clicking
|
|
58
|
+
* "All Inboxes" felt slow even though IPC returned in 18 ms because
|
|
59
|
+
* the round-trip + DOM build was the user-visible pause. With the
|
|
60
|
+
* cache, second-and-later clicks are instant. */
|
|
61
|
+
interface CachedListResult {
|
|
62
|
+
items: any[];
|
|
63
|
+
total: number;
|
|
64
|
+
timestamp: number;
|
|
65
|
+
}
|
|
66
|
+
const listCache = new Map<string, CachedListResult>();
|
|
67
|
+
const CACHE_KEY_UNIFIED = "unified";
|
|
68
|
+
function cacheKey(mode: "folder" | "search", a?: string, f?: number, flagged?: boolean, q?: string): string {
|
|
69
|
+
if (mode === "folder") return `folder:${a}:${f}:${flagged ? "flag" : ""}`;
|
|
70
|
+
return `search:${q}`;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** Quick equality check — same UID set, same flag pattern, same total.
|
|
74
|
+
* Skip re-render when this returns true to avoid DOM churn / scroll-
|
|
75
|
+
* jump on a refresh that didn't change anything. */
|
|
76
|
+
function listResultsEqual(a: any[] | undefined, b: any[]): boolean {
|
|
77
|
+
if (!a || a.length !== b.length) return false;
|
|
78
|
+
for (let i = 0; i < a.length; i++) {
|
|
79
|
+
if (a[i].uid !== b[i].uid) return false;
|
|
80
|
+
if (a[i].accountId !== b[i].accountId) return false;
|
|
81
|
+
// Flags-changed → must re-render (read/unread, flagged).
|
|
82
|
+
if ((a[i].flags || []).join(",") !== (b[i].flags || []).join(",")) return false;
|
|
83
|
+
}
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
|
|
53
87
|
/** Single source of truth for "which row is focused" in the list.
|
|
54
88
|
*
|
|
55
89
|
* Each rendered row is a `MessageRow` instance owning its DOM element,
|
|
@@ -509,7 +543,19 @@ export async function loadUnifiedInbox(autoSelect = true): Promise<void> {
|
|
|
509
543
|
const savedScroll = !autoSelect ? body.scrollTop : 0;
|
|
510
544
|
const savedUid = !autoSelect ? body.querySelector(".ml-row.selected")?.getAttribute("data-uid") : null;
|
|
511
545
|
|
|
512
|
-
|
|
546
|
+
// Instant first paint from cache. The IPC fires in background below
|
|
547
|
+
// and only triggers a re-render if the result diverges from the
|
|
548
|
+
// cached snapshot. The cache lives for the session; no TTL — the
|
|
549
|
+
// re-render covers staleness. C126 part 1 (the part that doesn't
|
|
550
|
+
// need cross-restart persistence; cold-start pre-render is part 2).
|
|
551
|
+
const cached = listCache.get(CACHE_KEY_UNIFIED);
|
|
552
|
+
if (cached) {
|
|
553
|
+
totalMessages = cached.total;
|
|
554
|
+
state.setMessages(cached.items);
|
|
555
|
+
renderMessages(body, "", cached.items);
|
|
556
|
+
if (autoSelect) selectFirst(body);
|
|
557
|
+
else { body.scrollTop = savedScroll; restoreSelection(body, savedUid); }
|
|
558
|
+
} else if (autoSelect) {
|
|
513
559
|
body.innerHTML = `<div class="ml-empty">Loading...</div>`;
|
|
514
560
|
}
|
|
515
561
|
|
|
@@ -517,6 +563,12 @@ export async function loadUnifiedInbox(autoSelect = true): Promise<void> {
|
|
|
517
563
|
const result = await apiGetUnifiedInbox(1);
|
|
518
564
|
if (myGen !== loadGen) return; // user moved on; drop stale response
|
|
519
565
|
totalMessages = result.total;
|
|
566
|
+
listCache.set(CACHE_KEY_UNIFIED, { items: result.items, total: result.total, timestamp: Date.now() });
|
|
567
|
+
|
|
568
|
+
// Skip the re-render entirely if the IPC result matches what
|
|
569
|
+
// the cache already painted. Avoids DOM churn / scroll-jump
|
|
570
|
+
// on the common no-change refresh.
|
|
571
|
+
if (cached && listResultsEqual(cached.items, result.items)) return;
|
|
520
572
|
|
|
521
573
|
if (result.items.length === 0) {
|
|
522
574
|
state.setMessages([]);
|
|
@@ -645,19 +697,35 @@ export async function loadMessages(accountId: string, folderId: number, page = 1
|
|
|
645
697
|
const savedScroll = !autoSelect ? body.scrollTop : 0;
|
|
646
698
|
const savedUid = !autoSelect ? body.querySelector(".ml-row.selected")?.getAttribute("data-uid") : null;
|
|
647
699
|
|
|
648
|
-
|
|
700
|
+
const flaggedOnly = document.getElementById("ml-body")?.classList.contains("flagged-only") || false;
|
|
701
|
+
const cKey = cacheKey("folder", accountId, folderId, flaggedOnly);
|
|
702
|
+
const cached = listCache.get(cKey);
|
|
703
|
+
if (cached) {
|
|
704
|
+
totalMessages = cached.total;
|
|
705
|
+
state.setMessages(cached.items);
|
|
706
|
+
renderMessages(body, accountId, cached.items);
|
|
707
|
+
if (autoSelect) selectFirst(body);
|
|
708
|
+
else {
|
|
709
|
+
requestAnimationFrame(() => {
|
|
710
|
+
body.scrollTop = savedScroll;
|
|
711
|
+
restoreSelection(body, savedUid);
|
|
712
|
+
});
|
|
713
|
+
}
|
|
714
|
+
} else if (autoSelect) {
|
|
649
715
|
body.innerHTML = `<div class="ml-empty">Loading...</div>`;
|
|
650
716
|
}
|
|
651
717
|
|
|
652
718
|
try {
|
|
653
|
-
const flaggedOnly = document.getElementById("ml-body")?.classList.contains("flagged-only") || false;
|
|
654
719
|
const result = await apiGetMessages(accountId, folderId, 1, 50, flaggedOnly, currentSort, currentSortDir);
|
|
655
720
|
// Stale-response guard: a newer load* fired while we were
|
|
656
721
|
// awaiting; the new view already painted. Drop this result
|
|
657
722
|
// silently rather than overwriting.
|
|
658
723
|
if (myGen !== loadGen) return;
|
|
659
724
|
totalMessages = result.total;
|
|
725
|
+
listCache.set(cKey, { items: result.items, total: result.total, timestamp: Date.now() });
|
|
660
726
|
updateSortIndicators();
|
|
727
|
+
// Skip re-render if data unchanged from the painted cache.
|
|
728
|
+
if (cached && listResultsEqual(cached.items, result.items)) return;
|
|
661
729
|
|
|
662
730
|
if (result.items.length === 0) {
|
|
663
731
|
state.setMessages([]);
|
|
@@ -605,42 +605,81 @@ function parseAddrs(s) {
|
|
|
605
605
|
* contacts.jsonc → groups map. Recipients that match a group name (case
|
|
606
606
|
* insensitive) get replaced by their member list, recursively. Unresolved
|
|
607
607
|
* tokens are left in place so the user sees them and can fix the typo.
|
|
608
|
-
* Loaded
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
608
|
+
* Loaded ASYNCHRONOUSLY at compose-init time — Send must NEVER await
|
|
609
|
+
* this. Earlier `await loadGroupsMap()` inside the click handler hung
|
|
610
|
+
* Send for 61 seconds (Bob 2026-05-09 00:16:57): the GDrive read of
|
|
611
|
+
* contacts.jsonc was on a slow connection. Bob then clicked Send a
|
|
612
|
+
* second time at 00:23, producing two real outgoing messages with
|
|
613
|
+
* different Message-IDs because each Send call assigned its own. Send
|
|
614
|
+
* must be instantaneous; group expansion must not gate it.
|
|
615
|
+
*
|
|
616
|
+
* localStorage is the synchronous tier — populated by the background
|
|
617
|
+
* refresh, read instantly by `expandGroups`. If localStorage has
|
|
618
|
+
* nothing yet (first ever launch on this device), expandGroups is a
|
|
619
|
+
* no-op and the user's literal recipient string flows through. The
|
|
620
|
+
* background refresh seeds localStorage on first success. */
|
|
621
|
+
const GROUPS_LS_KEY = "mailx-groups-cache-v1";
|
|
622
|
+
let _groupsCache = readGroupsFromLocalStorage();
|
|
623
|
+
function readGroupsFromLocalStorage() {
|
|
613
624
|
try {
|
|
614
|
-
const
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
_groupsCache = {};
|
|
618
|
-
return _groupsCache;
|
|
619
|
-
}
|
|
620
|
-
// Use a loose JSONC parse: strip // comments + trailing commas.
|
|
621
|
-
const stripped = r.content.replace(/^\s*\/\/.*$/gm, "").replace(/,(\s*[}\]])/g, "$1");
|
|
622
|
-
const cfg = JSON.parse(stripped);
|
|
623
|
-
_groupsCache = (cfg && typeof cfg.groups === "object" && cfg.groups) ? cfg.groups : {};
|
|
624
|
-
return _groupsCache;
|
|
625
|
+
const raw = localStorage.getItem(GROUPS_LS_KEY);
|
|
626
|
+
if (raw)
|
|
627
|
+
return JSON.parse(raw) || {};
|
|
625
628
|
}
|
|
626
|
-
catch {
|
|
627
|
-
|
|
628
|
-
|
|
629
|
+
catch { /* */ }
|
|
630
|
+
return {};
|
|
631
|
+
}
|
|
632
|
+
function writeGroupsToLocalStorage(groups) {
|
|
633
|
+
try {
|
|
634
|
+
localStorage.setItem(GROUPS_LS_KEY, JSON.stringify(groups));
|
|
629
635
|
}
|
|
636
|
+
catch { /* localStorage full or private mode */ }
|
|
630
637
|
}
|
|
631
|
-
/**
|
|
632
|
-
|
|
638
|
+
/** Background refresh of the groups map. Fires once at compose init,
|
|
639
|
+
* results land in `_groupsCache` and localStorage for next time. */
|
|
640
|
+
function refreshGroupsMapInBackground() {
|
|
641
|
+
(async () => {
|
|
642
|
+
try {
|
|
643
|
+
const { readJsoncFile } = await import("../lib/api-client.js");
|
|
644
|
+
const r = await readJsoncFile("contacts.jsonc");
|
|
645
|
+
if (!r?.content)
|
|
646
|
+
return;
|
|
647
|
+
const stripped = r.content.replace(/^\s*\/\/.*$/gm, "").replace(/,(\s*[}\]])/g, "$1");
|
|
648
|
+
const cfg = JSON.parse(stripped);
|
|
649
|
+
const groups = (cfg && typeof cfg.groups === "object" && cfg.groups) ? cfg.groups : {};
|
|
650
|
+
_groupsCache = groups;
|
|
651
|
+
writeGroupsToLocalStorage(groups);
|
|
652
|
+
}
|
|
653
|
+
catch { /* leave existing cache in place */ }
|
|
654
|
+
})();
|
|
655
|
+
}
|
|
656
|
+
// Kick off the background refresh once when this module loads.
|
|
657
|
+
refreshGroupsMapInBackground();
|
|
658
|
+
/** Expand the raw recipient string against the cached groups map.
|
|
659
|
+
* SYNCHRONOUS by design — Send must not wait on cloud I/O for group
|
|
660
|
+
* expansion. If no groups are cached, the input passes through. */
|
|
661
|
+
function expandGroups(raw) {
|
|
633
662
|
if (!raw.trim())
|
|
634
663
|
return raw;
|
|
635
|
-
|
|
636
|
-
if (Object.keys(groups).length === 0)
|
|
664
|
+
if (Object.keys(_groupsCache).length === 0)
|
|
637
665
|
return raw;
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
666
|
+
// Lazy-load the expansion utility synchronously isn't possible
|
|
667
|
+
// since it's a separate package — fall back to inline expansion.
|
|
668
|
+
// Same algorithm as `expandRecipients`: split on comma, look up
|
|
669
|
+
// each token (case-insensitive), keep the original on miss.
|
|
670
|
+
const groupsLc = {};
|
|
671
|
+
for (const k of Object.keys(_groupsCache))
|
|
672
|
+
groupsLc[k.toLowerCase()] = _groupsCache[k];
|
|
673
|
+
const tokens = raw.split(",").map(s => s.trim()).filter(Boolean);
|
|
674
|
+
const out = [];
|
|
675
|
+
for (const tok of tokens) {
|
|
676
|
+
const members = groupsLc[tok.toLowerCase()];
|
|
677
|
+
if (members && Array.isArray(members))
|
|
678
|
+
out.push(...members);
|
|
679
|
+
else
|
|
680
|
+
out.push(tok);
|
|
642
681
|
}
|
|
643
|
-
return
|
|
682
|
+
return out.join(", ");
|
|
644
683
|
}
|
|
645
684
|
function applyInit(init) {
|
|
646
685
|
// Populate the From datalist with known accounts
|
|
@@ -960,9 +999,14 @@ document.getElementById("btn-send")?.addEventListener("click", async () => {
|
|
|
960
999
|
// Group expansion — replace any group names (family, neighbors, etc.)
|
|
961
1000
|
// with their address lists from contacts.jsonc → groups before parsing
|
|
962
1001
|
// into the validated {name, address}[] shape the service expects.
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
1002
|
+
// Synchronous group expansion — reads in-memory + localStorage cache
|
|
1003
|
+
// ONLY. NEVER awaits cloud I/O. This used to be `await expandGroups`
|
|
1004
|
+
// which fired a GDrive read of contacts.jsonc and hung Send for 61 s
|
|
1005
|
+
// on a slow network (Bob 2026-05-09 00:16:57); the user clicked
|
|
1006
|
+
// Send again, producing a real duplicate message.
|
|
1007
|
+
const toExpanded = expandGroups(toInput.value);
|
|
1008
|
+
const ccExpanded = expandGroups(ccInput.value);
|
|
1009
|
+
const bccExpanded = expandGroups(bccInput.value);
|
|
966
1010
|
const body = {
|
|
967
1011
|
from: getFromAccountId(),
|
|
968
1012
|
fromAddress: getFromAddress(),
|