@wirecat/cli-core 0.513.0 → 0.514.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,16 @@ shape of this file.
7
7
 
8
8
  ## Unreleased
9
9
 
10
+ ## 0.514.0 — 01.11.2026
11
+
12
+ ### Fixed
13
+
14
+ - **A failed run's record masks a WhatsApp id as `[id]`**: `<number>[:device]@s.whatsapp.net`, a
15
+ group's `<number>-<number>@g.us`, `@c.us`, `@broadcast`, `@newsletter` and an `@lid` of any length. Before, such an
16
+ id was masked only when it looked like an email, and a 16-digit `@lid` or a `@newsletter` id stayed in the record.
17
+ - **The parity check requires `projects` and `projects evidence` in max and tg**, which ship them in max-cli 0.94.0
18
+ and tg-cli 0.110.0 (tg-cli#798, max-cli#886); wa stays planned.
19
+
10
20
  ## 0.513.0 — 01.11.2026
11
21
 
12
22
  ### Added
@@ -117,6 +117,8 @@ export const endpointTemplate = (raw) => {
117
117
  /** A phone number as people type it with its country code, and one written as digits only without the "+". */
118
118
  export const INTERNATIONAL_PHONE = /\+\d[\d\s()-]{6,}\d/.source;
119
119
  export const BARE_PHONE = /(^|[^\w-])\d{11,15}\b/.source;
120
+ /** A WhatsApp jid: `<number>[:device]@s.whatsapp.net`, a group's `<number>-<time>@g.us`, an `@lid` of any length. */
121
+ const MESSENGER_ID = /\b\d+(?:-\d+)?(?::\d+)?@(?:s\.whatsapp\.net|g\.us|c\.us|lid|broadcast|newsletter)\b/g;
120
122
  /**
121
123
  * An error's sentence with what could be somebody's words or a secret taken out: anything in quotes, an email, a
122
124
  * phone number, a secret `withoutSecrets` finds, a bot token, a bearer or a long opaque string, a URL's query, the
@@ -128,6 +130,7 @@ export const redactText = (text) => {
128
130
  let out = home && home !== "/" ? text.split(home).join("~") : text;
129
131
  out = withoutSecrets(out.replace(/"[^"\n]*"|“[^”\n]*”|«[^»\n]*»/g, '"[redacted]"'))
130
132
  .replace(/\b(bearer|basic|token|key|password|secret)(\s*[:=]\s*|\s+)[^\s'"]+/gi, "$1$2[redacted]")
133
+ .replace(MESSENGER_ID, "[id]")
131
134
  .replace(/[\w.+-]+@[\w-]+\.[\w.-]+/g, "[email]")
132
135
  .replace(new RegExp(INTERNATIONAL_PHONE, "g"), "[number]")
133
136
  .replace(new RegExp(BARE_PHONE, "g"), "$1[number]")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wirecat/cli-core",
3
- "version": "0.513.0",
3
+ "version": "0.514.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",
package/parity.json CHANGED
@@ -3678,18 +3678,14 @@
3678
3678
  }
3679
3679
  },
3680
3680
  "projects": {
3681
- "in": [],
3681
+ "in": ["max", "tg"],
3682
3682
  "planned": {
3683
- "max": "max-cli#886, on the cli-core release with this row",
3684
- "tg": "tg-cli#798, on the cli-core release with this row",
3685
3683
  "wa": "wa backlog: mount projectsCommand once wa is on cli-core 0.504.0"
3686
3684
  }
3687
3685
  },
3688
3686
  "projects evidence": {
3689
- "in": [],
3687
+ "in": ["max", "tg"],
3690
3688
  "planned": {
3691
- "max": "max-cli#886, on the cli-core release with this row",
3692
- "tg": "tg-cli#798, on the cli-core release with this row",
3693
3689
  "wa": "wa backlog: mount projectsCommand once wa is on cli-core 0.504.0"
3694
3690
  },
3695
3691
  "options": {