@bobfrankston/rmfmail 1.1.130 → 1.1.132

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/client/index.html CHANGED
@@ -768,6 +768,7 @@
768
768
  </div>
769
769
  <button class="tb-btn" id="btn-tb-delete" title="Delete selected message (Del)">🗑</button>
770
770
  <button class="tb-btn" id="btn-tb-spam" title="Mark as spam — move to the configured Junk folder">⚠</button>
771
+ <button class="tb-btn" id="btn-tb-flag" title="Flag / unflag selected message(s) — Ctrl+Z to undo">★</button>
771
772
  <span id="app-version" class="app-version"></span>
772
773
  <span class="app-version" title="Cycle pane focus: F6 = forward (folders → list → viewer), Shift+F6 = back. From the preview, ⇧F6 lands on the message-list row that drove it.">⇧F6 ← list</span>
773
774
  </div>
@@ -838,6 +839,7 @@
838
839
  <datalist id="search-history"></datalist>
839
840
  <label class="search-server-check" title="Also search the IMAP server (slower; spans all folders on all accounts)"><input type="checkbox" id="search-server-too"> Server</label>
840
841
  <label class="search-server-check" title="Include Trash + Spam in search results (off by default)"><input type="checkbox" id="search-include-trash"> Trash/Spam</label>
842
+ <button type="button" id="btn-filter-flagged" class="search-help-btn" title="Show only flagged (★) messages in the list (toggle)">★</button>
841
843
  <button type="button" id="search-help" class="search-help-btn" title="Search syntax help">?</button>
842
844
  </search>
843
845
  <div class="ml-folder-title" id="ml-folder-title"></div>
@@ -2304,10 +2304,14 @@ body.calendar-sidebar-on .calendar-sidebar { display: flex; }
2304
2304
  padding: 0;
2305
2305
  }
2306
2306
  .search-help-btn:hover { color: var(--color-text); border-color: var(--color-text); }
2307
- .search-help-btn[aria-expanded="true"] {
2307
+ .search-help-btn[aria-expanded="true"],
2308
+ .search-help-btn.active {
2308
2309
  color: var(--color-accent);
2309
2310
  border-color: var(--color-accent);
2310
2311
  }
2312
+ /* When the ★ filter is on, fill the glyph too so the pressed state reads at
2313
+ a glance — matches the flagged-row pip Bob already recognizes. */
2314
+ #btn-filter-flagged.active { background: oklch(0.97 0.05 80); }
2311
2315
 
2312
2316
  /* Non-modal help panel anchored below the search bar. No backdrop — the
2313
2317
  search input stays usable while it's open so the user can build a query
package/npmchanges.md CHANGED
@@ -347,3 +347,32 @@ viewer off the clicked row) ran its single-select sweep and wiped every
347
347
  row in the range except the clicked one — a regression from the v1.1.88
348
348
  highlight-desync fix.
349
349
 
350
+ ## v1.1.130 — 2026-05-23
351
+
352
+ feat: -send <file> CLI + general-outbox auto-routing; draft UI fixes
353
+
354
+ - rmfmail -send <file> [-account <id>]: enqueue a .ltr/.eml from disk for
355
+ sending. With -account, drops into outbox/<id>/; without, drops into the
356
+ general ~/.rmfmail/outbox/ and the daemon's outbox sweep auto-routes by
357
+ parsing the file's From: header (exact match → known-provider domain →
358
+ first non-known-provider "override" account). Bcc preserved as-is;
359
+ existing SMTP/IMAP-Outbox paths handle the strip.
360
+ - Draft UI: clicking a Drafts row no longer auto-pops compose — the
361
+ existing "Edit Draft" button (and double-click) are the only entry
362
+ points. On Send, the draft row drops from the list immediately (was a
363
+ 2 s debounce). New "Sent HH:MM" / "Send failed: …" status confirmation.
364
+ - CLI: -send / -account added to knownFlags. Top-of-file Usage comment and
365
+ unknown-flag error string rewritten to be complete and consistent —
366
+ single-dash is canonical, double-dash still accepted as a synonym.
367
+ README "Command Line" section refreshed in lockstep.
368
+
369
+ ## v1.1.131 — 2026-05-23
370
+
371
+ fix: -repair uses node:sqlite, not better-sqlite3
372
+
373
+ better-sqlite3 is not a project dependency — the daemon uses node:sqlite
374
+ (built-in) via mailx-store. -repair was crashing with ERR_MODULE_NOT_FOUND
375
+ on first run. Swap the dynamic import to node:sqlite's DatabaseSync, and
376
+ move the WAL setting from .pragma() (better-sqlite3-specific) to
377
+ .exec("PRAGMA …") (works on both).
378
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/rmfmail",
3
- "version": "1.1.130",
3
+ "version": "1.1.132",
4
4
  "description": "Local-first email client with IMAP sync and standalone native app",
5
5
  "type": "module",
6
6
  "main": "bin/mailx.js",
@@ -38,7 +38,7 @@
38
38
  "dependencies": {
39
39
  "@bobfrankston/iflow-direct": "^0.1.50",
40
40
  "@bobfrankston/mailx-host": "^0.1.13",
41
- "@bobfrankston/mailx-imap": "^0.1.57",
41
+ "@bobfrankston/mailx-imap": "^0.1.58",
42
42
  "@bobfrankston/mailx-store-web": "^0.1.22",
43
43
  "@bobfrankston/mailx-sync": "^0.1.19",
44
44
  "@bobfrankston/miscinfo": "^1.0.12",
@@ -118,7 +118,7 @@
118
118
  "dependencies": {
119
119
  "@bobfrankston/iflow-direct": "^0.1.50",
120
120
  "@bobfrankston/mailx-host": "^0.1.13",
121
- "@bobfrankston/mailx-imap": "^0.1.57",
121
+ "@bobfrankston/mailx-imap": "^0.1.58",
122
122
  "@bobfrankston/mailx-store-web": "^0.1.22",
123
123
  "@bobfrankston/mailx-sync": "^0.1.19",
124
124
  "@bobfrankston/miscinfo": "^1.0.12",