@bobfrankston/rmfmail 1.2.323 → 1.2.325

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 (40) hide show
  1. package/.commitmsg +17 -15
  2. package/.llm/config-cache-crash.md +26 -0
  3. package/.llm/trusted-lists.md +1 -0
  4. package/bin/mailx.js +96 -25
  5. package/bin/mailx.js.map +1 -1
  6. package/bin/mailx.ts +105 -16
  7. package/client/android-bootstrap.bundle.js +5 -2
  8. package/client/android-bootstrap.bundle.js.map +2 -2
  9. package/client/app.bundle.js +11 -3
  10. package/client/app.bundle.js.map +2 -2
  11. package/client/app.js +15 -1
  12. package/client/app.js.map +1 -1
  13. package/client/app.ts +13 -1
  14. package/client/components/message-viewer.js +12 -2
  15. package/client/components/message-viewer.js.map +1 -1
  16. package/client/components/message-viewer.ts +13 -3
  17. package/docs/allowlist.md +1 -0
  18. package/npmchanges.md +47 -0
  19. package/package.json +5 -5
  20. package/packages/mailx-imap/index.d.ts.map +1 -1
  21. package/packages/mailx-imap/index.js +7 -2
  22. package/packages/mailx-imap/index.js.map +1 -1
  23. package/packages/mailx-imap/index.ts +7 -2
  24. package/packages/mailx-imap/package-lock.json +2 -2
  25. package/packages/mailx-imap/package.json +1 -1
  26. package/packages/mailx-settings/docs/allowlist.md +1 -0
  27. package/packages/mailx-settings/index.d.ts +15 -0
  28. package/packages/mailx-settings/index.d.ts.map +1 -1
  29. package/packages/mailx-settings/index.js +71 -14
  30. package/packages/mailx-settings/index.js.map +1 -1
  31. package/packages/mailx-settings/index.ts +65 -14
  32. package/packages/mailx-settings/package.json +1 -1
  33. package/packages/mailx-store/package.json +1 -1
  34. package/packages/mailx-store-web/package.json +1 -1
  35. package/packages/mailx-types/package.json +1 -1
  36. package/packages/mailx-types/trust.d.ts +4 -0
  37. package/packages/mailx-types/trust.d.ts.map +1 -1
  38. package/packages/mailx-types/trust.js +17 -1
  39. package/packages/mailx-types/trust.js.map +1 -1
  40. package/packages/mailx-types/trust.ts +20 -1
package/client/app.ts CHANGED
@@ -3532,8 +3532,20 @@ onWsEvent((event) => {
3532
3532
  if (statusSync.textContent === `${event.filename} updated`) statusSync.textContent = "";
3533
3533
  }, 8000);
3534
3534
  }
3535
+ // 2026-09-13 17:20 EDT — Claude Code (Fable 5.1), at Bob's direction.
3536
+ // The daemon now reconciles accounts.jsonc itself (new accounts are
3537
+ // added live) and says whether a restart is still needed. The
3538
+ // Restart banner was firing for the daemon's own repair of a
3539
+ // crash-zeroed cache from the cloud copy, seconds after launch.
3535
3540
  if (event.filename && /accounts\.jsonc/i.test(String(event.filename))) {
3536
- showRestartForConfigBanner();
3541
+ if (event.restartNeeded) {
3542
+ showRestartForConfigBanner();
3543
+ } else if (event.detail && statusSync) {
3544
+ statusSync.textContent = String(event.detail);
3545
+ setTimeout(() => {
3546
+ if (statusSync.textContent === String(event.detail)) statusSync.textContent = "";
3547
+ }, 8000);
3548
+ }
3537
3549
  }
3538
3550
  break;
3539
3551
  case "cloudError":
@@ -1991,10 +1991,20 @@ export async function showMessage(accountId, uid, folderId, specialUse, isRetry
1991
1991
  // list should be able to silence "this message is not what it says
1992
1992
  // it is", and there is nothing to trust when the identity is the
1993
1993
  // thing in doubt.
1994
- const spamOnly = trust.length === 1 && trust[0].id === "server-spam-verdict" && worst !== "danger";
1994
+ // Offered whenever trusting the sender would clear EVERYTHING on
1995
+ // the banner: the server's verdict, and since 2026-09-11 the
1996
+ // redirector warning too (a proved sender vouches for its own
1997
+ // links). Any other finding present, or a danger, and there is no
1998
+ // button — no list silences those. The Toast receipt carried
1999
+ // both a spam verdict and a redirector warning, so the old
2000
+ // "exactly one finding" rule hid the button on the one message
2001
+ // that needed it (Bob: "there should be a trust button").
2002
+ const trustClearable = worst !== "danger"
2003
+ && trust.every(f => f.id === "server-spam-verdict" || f.id === "redirector-link");
2004
+ const senderProved = !!spam?.proved || trust.some(f => !!f.sender);
1995
2005
  const fromAddr = (msg.from?.address || "").toLowerCase();
1996
2006
  const fromDomain = fromAddr.split("@")[1] || "";
1997
- if (spamOnly && spam?.proved && fromAddr) {
2007
+ if (trustClearable && senderProved && fromAddr) {
1998
2008
  const actions = document.createElement("div");
1999
2009
  actions.className = "mv-trust-actions";
2000
2010
  // Name the sender in the label — a button that says "trust" with