@bobfrankston/rmfmail 1.1.93 → 1.1.95

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
- Search: index full message bodies, not just the preview snippet
1
+ Compose window opens centred near the top, not lower-right
2
2
 
3
- Body-text search only ever covered messages the user had opened. At sync
4
- time the FTS body_text was seeded with the short `preview` snippet; the
5
- full text was backfilled only when LocalStore.getMessage parsed a body
6
- on view — and even that backfill keyed on the legacy messages.folder_id
7
- column via a (account,folder,uid) lookup that could miss the row, so a
8
- word buried in an opened message's body still wasn't found (Bob:
9
- "mcdade" in a message body, search found nothing).
10
-
11
- Two fixes:
12
- - updateFtsBody(rowId, text) keys on the FTS rowid (= messages.id)
13
- directly — no fragile folder lookup. store.ts passes envelope.id.
14
- - The IMAP sync path now indexes the full body into FTS right after
15
- upsertMessage. extractPreview already parsed `source`, so the body
16
- text is free — every synced message is body-searchable without the
17
- user opening it first.
18
-
19
- Existing already-synced messages stay preview-only until re-synced
20
- (mailx -repair re-indexes them).
3
+ The floating compose/reply overlay was anchored to the bottom-right
4
+ corner. It now opens horizontally centred with a small top margin. The
5
+ title bar still drags it anywhere; this only changes initial placement.
@@ -5378,10 +5378,10 @@ function render() {
5378
5378
  const plus = document.createElement("button");
5379
5379
  plus.className = "view-tab-new";
5380
5380
  plus.textContent = "+";
5381
- plus.title = "New tab (All Inboxes)";
5381
+ plus.title = "New tab (Ctrl+T)";
5382
5382
  plus.addEventListener("click", () => openTab({ kind: "unified" }, "All Inboxes", true));
5383
5383
  stripEl.appendChild(plus);
5384
- stripEl.hidden = tabs.length < 2;
5384
+ stripEl.hidden = tabs.length < 1;
5385
5385
  }
5386
5386
  function initTabs(strip, apply) {
5387
5387
  stripEl = strip;
@@ -7166,7 +7166,7 @@ function showComposeOverlay(title = "Compose") {
7166
7166
  if (isSmall) {
7167
7167
  wrapper.style.cssText = "position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;background:#fff;";
7168
7168
  } else {
7169
- wrapper.style.cssText = "position:fixed;bottom:0;right:16px;width:min(900px,55vw);height:min(700px,70vh);z-index:1000;border-radius:8px 8px 0 0;box-shadow:0 -4px 24px rgba(0,0,0,0.3);display:flex;flex-direction:column;overflow:hidden;";
7169
+ wrapper.style.cssText = "position:fixed;top:48px;left:calc((100vw - min(900px,55vw)) / 2);width:min(900px,55vw);height:min(700px,70vh);z-index:1000;border-radius:8px;box-shadow:0 4px 24px rgba(0,0,0,0.3);display:flex;flex-direction:column;overflow:hidden;";
7170
7170
  }
7171
7171
  const titleBar = document.createElement("div");
7172
7172
  titleBar.style.cssText = "display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:#e8ecf0;border-radius:8px 8px 0 0;cursor:move;user-select:none;flex-shrink:0;";