@wirecat/cli-core 0.534.0 → 0.535.0

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/CHANGELOG.md CHANGED
@@ -7,6 +7,13 @@ shape of this file.
7
7
 
8
8
  ## Unreleased
9
9
 
10
+ ## 0.535.0 — 01.11.2026
11
+
12
+ ### Added
13
+
14
+ - **`syncMail` takes `saveCoverage: false`** for a spot read, such as a CLI storing the copy of a message it just
15
+ sent: the mail is saved, and the coverage that memo reports for the archive stays what the last full run set.
16
+
10
17
  ## 0.534.0 — 01.11.2026
11
18
 
12
19
  ### Added
@@ -89,6 +89,8 @@ export interface MailSyncOptions {
89
89
  retryAttachments?: boolean;
90
90
  /** List every message in the window, not only those an earlier run left: proves deletions, refreshes labels. */
91
91
  rescan?: boolean;
92
+ /** `false` for a spot read, like the copy of a sent message: the run leaves the saved coverage as the last full run set it. */
93
+ saveCoverage?: boolean;
92
94
  /** A window smaller than this is listed whole every run: it costs seconds and keeps flags and deletions current. */
93
95
  resumeFrom?: number;
94
96
  /** Runs after the mail is saved, so chats and mail still waiting for vectors are indexed; its answer is `indexed`. */
package/dist/mail/sync.js CHANGED
@@ -141,7 +141,7 @@ export const syncMail = async (source, store, options) => {
141
141
  : {}),
142
142
  };
143
143
  };
144
- const syncRound = async (source, store, { account, since, max = 200, maxBodyChars = MAX_BODY_CHARS, maxAttachmentChars = MAX_ATTACHMENT_CHARS, now = Date.now, ages, loadEngine = importEngine, retryAttachments = false, rescan = false, resumeFrom = RESUME_FROM, index, signal, }, plan) => {
144
+ const syncRound = async (source, store, { account, since, max = 200, maxBodyChars = MAX_BODY_CHARS, maxAttachmentChars = MAX_ATTACHMENT_CHARS, now = Date.now, ages, loadEngine = importEngine, retryAttachments = false, rescan = false, saveCoverage = true, resumeFrom = RESUME_FROM, index, signal, }, plan) => {
145
145
  if (retryAttachments)
146
146
  return retryUnread({
147
147
  store,
@@ -777,7 +777,7 @@ const syncRound = async (source, store, { account, since, max = 200, maxBodyChar
777
777
  state: complete ? "window" : "partial",
778
778
  identity: account.mode === "imap" ? "message-id-or-uidvalidity-folder-uid" : "gmail-message-id",
779
779
  };
780
- if (!snapshot)
780
+ if (!snapshot && saveCoverage)
781
781
  await store.sync.setSyncState(key, "mail_coverage", JSON.stringify(coverage));
782
782
  const tagging = tagger.outcome();
783
783
  await settleRuleTags(store, accountId, rules, tagging);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wirecat/cli-core",
3
- "version": "0.534.0",
3
+ "version": "0.535.0",
4
4
  "description": "The messenger-neutral half of a messaging CLI: domain model, message locators, rendering, name resolution, the SQLite seam, the command skeleton and shared read commands, the send guard, run records and the message store",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Viacheslav Ptsarev",