@bobfrankston/rmfmail 1.1.81 → 1.1.83
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
CHANGED
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
Viewer flag button: use a star glyph, matching the list star
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
1. The openAttachment IPC call used the default 30s ceiling. A cold
|
|
7
|
-
parse worker (14-25s) plus a 1.7 MB PDF blew past it, so the client
|
|
8
|
-
rejected even though the service succeeded. getAttachment/
|
|
9
|
-
openAttachment now get a 120s ceiling in mailxapi.js.
|
|
10
|
-
|
|
11
|
-
2. On that spurious rejection the viewer ran the browser-only blob
|
|
12
|
-
fallback, whose atob() threw "string not correctly encoded". The
|
|
13
|
-
fallback now runs ONLY when openAttachment returns undefined (real
|
|
14
|
-
browser / --server mode); a genuine IPC failure is reported, not
|
|
15
|
-
retried via blob.
|
|
16
|
-
|
|
17
|
-
3. The failure was shown with window.alert() — a modal that freezes the
|
|
18
|
-
WebView event loop, stalling IPC event delivery so sync looked
|
|
19
|
-
stopped. Replaced with a non-blocking banner via a mailx-alert
|
|
20
|
-
CustomEvent handled by app.ts showAlert().
|
|
3
|
+
The toolbar Flag button showed a ⚑ while the message-list row uses
|
|
4
|
+
★/☆ for the same flag state. Changed the toolbar glyph to ★ so the
|
|
5
|
+
two are visibly the same action.
|
package/client/index.html
CHANGED
|
@@ -864,7 +864,7 @@
|
|
|
864
864
|
<button class="tb-btn" id="btn-delete" title="Delete (Del)">🗑</button>
|
|
865
865
|
<button class="tb-btn" id="btn-spam" title="Mark as spam — move to configured spam folder" hidden>⚠</button>
|
|
866
866
|
<button class="tb-btn" id="btn-spam-report" title="Report as spam (append to ~/.rmfmail/spam.csv for later analysis)">🚫</button>
|
|
867
|
-
<button class="tb-btn" id="btn-flag" title="Flag"
|
|
867
|
+
<button class="tb-btn" id="btn-flag" title="Flag">★</button>
|
|
868
868
|
<button class="tb-btn" id="btn-mark-unread" title="Mark unread (R)">◉</button>
|
|
869
869
|
<button class="tb-btn" id="mv-view-thread" title="View thread (conversation)" hidden>💬</button>
|
|
870
870
|
<span style="flex:1"></span>
|
|
@@ -468,7 +468,7 @@ button.tb-menu-item { background: none; border: none; color: inherit; width: 100
|
|
|
468
468
|
.message-list {
|
|
469
469
|
display: grid;
|
|
470
470
|
/* avatar | flag | from | date | subject */
|
|
471
|
-
grid-template-columns: 28px 1.
|
|
471
|
+
grid-template-columns: 28px 1.7em minmax(120px, 200px) auto 1fr;
|
|
472
472
|
grid-template-rows: auto auto 1fr;
|
|
473
473
|
column-gap: var(--gap-sm);
|
|
474
474
|
overflow: hidden;
|
|
@@ -477,7 +477,7 @@ button.tb-menu-item { background: none; border: none; color: inherit; width: 100
|
|
|
477
477
|
|
|
478
478
|
/* Two-line view */
|
|
479
479
|
.message-list.two-line {
|
|
480
|
-
grid-template-columns: 28px 1.
|
|
480
|
+
grid-template-columns: 28px 1.7em 1fr auto;
|
|
481
481
|
}
|
|
482
482
|
|
|
483
483
|
.message-list.two-line .ml-row {
|
|
@@ -609,9 +609,20 @@ button.tb-menu-item { background: none; border: none; color: inherit; width: 100
|
|
|
609
609
|
}
|
|
610
610
|
}
|
|
611
611
|
|
|
612
|
-
|
|
612
|
+
/* Flag star — deliberately large so it's an easy target and an obvious
|
|
613
|
+
marker. align-self:center because the row is baseline-aligned and the
|
|
614
|
+
bigger glyph would otherwise hang below the text. */
|
|
615
|
+
.ml-flag {
|
|
616
|
+
text-align: center;
|
|
617
|
+
color: var(--color-text-muted);
|
|
618
|
+
font-size: 1.45em;
|
|
619
|
+
line-height: 1;
|
|
620
|
+
align-self: center;
|
|
621
|
+
cursor: pointer;
|
|
622
|
+
}
|
|
623
|
+
.ml-flag:hover { color: oklch(0.72 0.16 60); }
|
|
613
624
|
.flagged-only .ml-row:not(.flagged) { display: none; }
|
|
614
|
-
.ml-row.flagged .ml-flag { color: oklch(0.
|
|
625
|
+
.ml-row.flagged .ml-flag { color: oklch(0.70 0.18 60); } /* solid gold star */
|
|
615
626
|
.ml-row.flagged { background: color-mix(in oklch, oklch(0.75 0.15 60) 8%, transparent); }
|
|
616
627
|
|
|
617
628
|
/* Priority sender — strongest signal while unread; fades after read so
|
|
@@ -1747,6 +1758,16 @@ body.calendar-sidebar-on .calendar-sidebar { display: flex; }
|
|
|
1747
1758
|
padding-bottom: var(--gap-xs);
|
|
1748
1759
|
border-bottom: 1px solid var(--color-border);
|
|
1749
1760
|
margin-bottom: var(--gap-xs);
|
|
1761
|
+
|
|
1762
|
+
/* Larger, easier-to-hit action glyphs — reply / reply-all /
|
|
1763
|
+
* forward / delete / flag / mark-unread are single-glyph buttons. */
|
|
1764
|
+
.tb-btn {
|
|
1765
|
+
font-size: 1.4rem;
|
|
1766
|
+
line-height: 1;
|
|
1767
|
+
padding: 4px 8px;
|
|
1768
|
+
}
|
|
1769
|
+
/* "← Inbox" is a text label, not a glyph — keep it normal-sized. */
|
|
1770
|
+
.btn-back-list { font-size: var(--font-size-sm); }
|
|
1750
1771
|
}
|
|
1751
1772
|
.mv-header-info { }
|
|
1752
1773
|
.mv-header-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; flex-shrink: 0; }
|
package/npmchanges.md
CHANGED
|
@@ -73,3 +73,38 @@ now calls it on desktop, keeps the native-bridge path for Android, and
|
|
|
73
73
|
falls back to the blob download only for a real browser / --server
|
|
74
74
|
mode. Failures now surface via an alert instead of vanishing.
|
|
75
75
|
|
|
76
|
+
## v1.1.81 — 2026-05-18
|
|
77
|
+
|
|
78
|
+
Fix spurious attachment-open error + blocking alert that stalled sync
|
|
79
|
+
|
|
80
|
+
Three faults behind "failed to open" appearing after the file had
|
|
81
|
+
actually opened in Acrobat:
|
|
82
|
+
|
|
83
|
+
1. The openAttachment IPC call used the default 30s ceiling. A cold
|
|
84
|
+
parse worker (14-25s) plus a 1.7 MB PDF blew past it, so the client
|
|
85
|
+
rejected even though the service succeeded. getAttachment/
|
|
86
|
+
openAttachment now get a 120s ceiling in mailxapi.js.
|
|
87
|
+
|
|
88
|
+
2. On that spurious rejection the viewer ran the browser-only blob
|
|
89
|
+
fallback, whose atob() threw "string not correctly encoded". The
|
|
90
|
+
fallback now runs ONLY when openAttachment returns undefined (real
|
|
91
|
+
browser / --server mode); a genuine IPC failure is reported, not
|
|
92
|
+
retried via blob.
|
|
93
|
+
|
|
94
|
+
3. The failure was shown with window.alert() — a modal that freezes the
|
|
95
|
+
WebView event loop, stalling IPC event delivery so sync looked
|
|
96
|
+
stopped. Replaced with a non-blocking banner via a mailx-alert
|
|
97
|
+
CustomEvent handled by app.ts showAlert().
|
|
98
|
+
|
|
99
|
+
## v1.1.82 — 2026-05-18
|
|
100
|
+
|
|
101
|
+
UX: larger viewer action icons + bigger, bolder flag star
|
|
102
|
+
|
|
103
|
+
Message-viewer toolbar glyphs (reply / reply-all / forward / delete /
|
|
104
|
+
flag / mark-unread) bumped to 1.4rem with more padding for an easier
|
|
105
|
+
target; the "← Inbox" text label stays normal-sized.
|
|
106
|
+
|
|
107
|
+
Message-list flag star enlarged from 0.9em to 1.45em, vertically
|
|
108
|
+
centered, with a gold hover preview and a stronger solid-gold colour
|
|
109
|
+
when flagged. Flag grid column widened 1.2em -> 1.7em to fit it.
|
|
110
|
+
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bobfrankston/rmfmail",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.83",
|
|
4
4
|
"description": "Local-first email client with IMAP sync and standalone native app",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "bin/mailx.js",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"@bobfrankston/miscinfo": "^1.0.12",
|
|
46
46
|
"@bobfrankston/msger": "^0.1.381",
|
|
47
47
|
"@bobfrankston/node-tcp-transport": "^0.1.8",
|
|
48
|
-
"@bobfrankston/oauthsupport": "^1.0.
|
|
48
|
+
"@bobfrankston/oauthsupport": "^1.0.27",
|
|
49
49
|
"@bobfrankston/rmf-tiny": "^0.1.11",
|
|
50
50
|
"@bobfrankston/smtp-direct": "^0.1.8",
|
|
51
51
|
"@bobfrankston/tcp-transport": "^0.1.6",
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
"@bobfrankston/miscinfo": "^1.0.12",
|
|
126
126
|
"@bobfrankston/msger": "^0.1.381",
|
|
127
127
|
"@bobfrankston/node-tcp-transport": "^0.1.8",
|
|
128
|
-
"@bobfrankston/oauthsupport": "^1.0.
|
|
128
|
+
"@bobfrankston/oauthsupport": "^1.0.27",
|
|
129
129
|
"@bobfrankston/rmf-tiny": "^0.1.11",
|
|
130
130
|
"@bobfrankston/smtp-direct": "^0.1.8",
|
|
131
131
|
"@bobfrankston/tcp-transport": "^0.1.6",
|