@bobfrankston/rmfmail 1.1.250 → 1.1.251

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/app.ts CHANGED
@@ -2341,18 +2341,16 @@ function doSearch(immediate = false): void {
2341
2341
  if (serverSearchTimer) { clearTimeout(serverSearchTimer); serverSearchTimer = null; }
2342
2342
  cancelServerSearch();
2343
2343
 
2344
- // "This folder" scope: instant client-side filter of the visible rows.
2345
- // Only when the server checkbox is OFF with it on we want the real
2346
- // local+server search, not a row filter.
2347
- if (localScope === "current" && !serverOn && !immediate) {
2348
- // Register as a live list filter (not a raw DOM toggle) so it survives
2349
- // background sync reloads and blocks reloadCurrentFolder otherwise a
2350
- // sync mid-read wipes the filter, deselects the open message, and pops
2351
- // back to the full list while the search box still shows the query
2352
- // (Bob 2026-05-31). setLiveFilter applies the hide to current rows.
2353
- setLiveFilter(query);
2354
- return;
2355
- }
2344
+ // "This folder" scope used to be an instant client-side filter of the
2345
+ // VISIBLE rows. That was doubly wrong (Bob 2026-06-12): it only saw the
2346
+ // loaded page (so a match deeper in a big folder like Trash never showed),
2347
+ // and it did a dumb substring match that didn't understand qualifiers
2348
+ // (`from:amazon` matched the literal text and so found nothing). "This
2349
+ // folder" now runs the REAL DB search below (scope="current"), which the
2350
+ // service scopes to the current folder AND forces includeTrashSpam=true
2351
+ // so searching inside Trash finds Trash messages, and `from:`/`subject:`
2352
+ // qualifiers work. The DB FTS pass is sub-second, so we don't lose the
2353
+ // instant feel. (Server checkbox still adds the cross-folder IMAP sweep.)
2356
2354
 
2357
2355
  // ── Phase 1: LOCAL search — always, immediately ──
2358
2356
  // The local SQLite store is fast; results paint as the user types.
@@ -4,11 +4,20 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __esm = (fn, res) => function __init() {
8
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
7
+ var __esm = (fn, res, err) => function __init() {
8
+ if (err) throw err[0];
9
+ try {
10
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
11
+ } catch (e) {
12
+ throw err = [e], e;
13
+ }
9
14
  };
10
15
  var __commonJS = (cb, mod) => function __require() {
11
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
16
+ try {
17
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
18
+ } catch (e) {
19
+ throw mod = 0, e;
20
+ }
12
21
  };
13
22
  var __export = (target, all) => {
14
23
  for (var name in all)