@bobfrankston/rmfmail 1.2.292 → 1.2.293
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/.commitmsg +24 -25
- package/client/android-bootstrap.bundle.js +3 -1
- package/client/android-bootstrap.bundle.js.map +2 -2
- package/client/app.bundle.js +3 -1
- package/client/app.bundle.js.map +2 -2
- package/client/components/message-viewer.js +9 -1
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +8 -1
- package/npmchanges.md +32 -0
- package/package.json +6 -6
- package/packages/mailx-imap/package-lock.json +2 -2
- package/packages/mailx-imap/package.json +1 -1
- package/packages/mailx-service/package.json +1 -1
- package/packages/mailx-settings/index.d.ts +19 -0
- package/packages/mailx-settings/index.d.ts.map +1 -1
- package/packages/mailx-settings/index.js +33 -10
- package/packages/mailx-settings/index.js.map +1 -1
- package/packages/mailx-settings/index.ts +33 -11
- package/packages/mailx-settings/package.json +1 -1
- package/packages/mailx-store/package.json +1 -1
- package/packages/mailx-store-web/package.json +1 -1
- package/packages/mailx-store-web/web-settings.d.ts +2 -0
- package/packages/mailx-store-web/web-settings.d.ts.map +1 -1
- package/packages/mailx-store-web/web-settings.js +2 -0
- package/packages/mailx-store-web/web-settings.js.map +1 -1
- package/packages/mailx-store-web/web-settings.ts +2 -0
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-50524 → node_modules.npmglobalize-stash-29688}/.package-lock.json +0 -0
package/.commitmsg
CHANGED
|
@@ -1,29 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
The allowlist merge silently dropped any list it had not been taught
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
app that said "this correspondent is fine" was the remote-content banner's
|
|
8
|
-
"Always: …", which buys a tracking pixel with every vote of confidence.
|
|
3
|
+
Caught by driving the button from v1.2.292: pressing "Stop warning about
|
|
4
|
+
*@digital.conservativeintel.com" returned `{trusted: true}`, the banner
|
|
5
|
+
disappeared — and nothing was written. `trustedDomains` was empty on readback
|
|
6
|
+
and absent from allowlist.jsonc.
|
|
9
7
|
|
|
10
|
-
|
|
8
|
+
Cause: `saveAllowlist` merges the local copy with the cloud one so a second
|
|
9
|
+
machine's entries survive, and that merge rebuilt the result from a HARDCODED
|
|
10
|
+
list of the five fields it knew. The two lists added earlier the same day were
|
|
11
|
+
dropped on the way to disk, with a success return the whole way up. A merge
|
|
12
|
+
that must be taught each new field will keep losing the next one.
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
- `mergeAllowlists(local, cloud)` — extracted, exported, and tested — unions
|
|
15
|
+
every field present in either copy, discovering names at runtime. Arrays
|
|
16
|
+
union; anything else prefers the local side, since the caller is the one
|
|
17
|
+
making a change; no key either side has is ever dropped. That last property
|
|
18
|
+
is what keeps a second machine's entries alive and what saved this file in
|
|
19
|
+
the 2026-07-23 wipe.
|
|
20
|
+
- `DEFAULT_ALLOWLIST` names trustedSenders/trustedDomains on both the desktop
|
|
21
|
+
and Android sides, so a fresh file has them.
|
|
22
|
+
- The banner button no longer trusts a bare resolve: it only ever ADDS, so
|
|
23
|
+
anything but `trusted: true` is a failed write, and it says so on the button
|
|
24
|
+
instead of removing a banner that will come back. That check is what would
|
|
25
|
+
have caught this bug at the UI instead of at a grep of the JSON.
|
|
14
26
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
The trust note gains the action it was missing: **"Stop warning about
|
|
19
|
-
‹address›"** and **"Stop warning about *@‹domain›"**, naming the sender rather
|
|
20
|
-
than saying "this one" so the choice is checkable afterwards. New IPC
|
|
21
|
-
`trustSenderOrDomain` (toggle, like flagSenderOrDomain) wired through all six
|
|
22
|
-
places — service, jsonrpc, web-service, web-jsonrpc, android-bootstrap,
|
|
23
|
-
api-client + mailxapi.js; the bridge-contract guard passes at 110 client calls.
|
|
24
|
-
|
|
25
|
-
The buttons appear only where the server's own verdict is the WHOLE finding and
|
|
26
|
-
the sender is proved. A forgery banner gets no such button: no list should be
|
|
27
|
-
able to silence "this message is not what it says it is", and there is nothing
|
|
28
|
-
to trust when identity is the thing in doubt. A failed write reports itself on
|
|
29
|
-
the button rather than looking like it worked.
|
|
27
|
+
tests/allowlist-merge.test.ts covers the shape that loses data, including a
|
|
28
|
+
field named nowhere in the code.
|
|
@@ -4122,7 +4122,9 @@ var init_web_settings = __esm({
|
|
|
4122
4122
|
domains: [],
|
|
4123
4123
|
recipients: [],
|
|
4124
4124
|
flaggedSenders: [],
|
|
4125
|
-
flaggedDomains: []
|
|
4125
|
+
flaggedDomains: [],
|
|
4126
|
+
trustedSenders: [],
|
|
4127
|
+
trustedDomains: []
|
|
4126
4128
|
};
|
|
4127
4129
|
PREV_KEEP = 5;
|
|
4128
4130
|
SHARED_REFRESH_MS = 5 * 6e4;
|