@wirecat/cli-base 0.47.0 → 0.47.2

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
@@ -8,6 +8,31 @@ Versions before 0.8.0 are in the [git tags](https://github.com/WireCatLabs/cli-b
8
8
  Every entry says what changed as a caller sees it, why, and what to watch for — the rules are
9
9
  [`docs/dev/CONVENTIONS.md`](docs/dev/CONVENTIONS.md#the-changelog).
10
10
 
11
+ ## 0.47.2 — 19.10.2026
12
+
13
+ ### Added
14
+
15
+ - **WC-REL-9 counts a shared-library change toward its once-a-week limit only when a CLI must change its code to take
16
+ it.** cli-core's parity jobs build tg-cli, max-cli and whatsapp-cli from their `main` against every pull request.
17
+ A change all three pass with, unchanged, may ship in any release. A change that fails a job, passes only against a
18
+ CLI branch made for it, or changes behaviour a CLI must adapt to still counts; when in doubt, it counts. The limit
19
+ exists so the CLIs do not chase versions, and a change they need not follow gives them nothing to chase. Its
20
+ changelog still marks it "may break callers" for outside users.
21
+
22
+ ### Removed
23
+
24
+ - **`--qr-file` is no longer a vocabulary flag.** tg, max and cli-core dropped the option that wrote the login QR
25
+ code to a PNG; a CLI now prints the QR code as text for the user or agent to paste. A CLI that still declares
26
+ `--qr-file` fails `option-role` in `cli-dev lint`; none does today.
27
+
28
+ ## 0.47.1 — 19.10.2026
29
+
30
+ ### Added
31
+
32
+ - **`--alias <name>` is a vocabulary flag** (role `query`): another name of the thing, searched as its own
33
+ alternative beside its name, repeatable. memo's `projects evidence` takes extra project names with it; before,
34
+ a CLI that wanted the option failed `option-role`.
35
+
11
36
  ## 0.47.0 — 18.10.2026
12
37
 
13
38
  ### Added
@@ -175,13 +175,6 @@ export const HOW_FLAGS = [
175
175
  type: "switch",
176
176
  meaning: "also print edits, deletions and other changes; every line names its event",
177
177
  },
178
- {
179
- name: "--qr-file",
180
- value: "<png>",
181
- role: "output",
182
- type: "path",
183
- meaning: "write the login QR code to this PNG instead of drawing it",
184
- },
185
178
  { name: "--all-versions", role: "output", type: "switch", meaning: "also the earlier versions a newer one replaced" },
186
179
  { name: "--measure", value: "<name>", role: "sort", type: "choice", meaning: "the metric a ranking is ordered by" },
187
180
  { name: "--newest", role: "sort", type: "switch", meaning: "newest first instead of best first" },
@@ -13,6 +13,13 @@ export const WHAT_FLAGS = [
13
13
  type: "string",
14
14
  meaning: "literal words to find within the communications selected for preparation",
15
15
  },
16
+ {
17
+ name: "--alias",
18
+ value: "<name>",
19
+ role: "query",
20
+ type: "string",
21
+ meaning: "another name of the thing, searched as its own alternative beside its name; repeat for more",
22
+ },
16
23
  {
17
24
  name: "--context-since-time",
18
25
  value: "<time>",
@@ -98,14 +98,19 @@ on the [CI](ci.md) page.
98
98
  - **Exceptions:** memo, drive and zoom have no gap in their `bin/release` today.
99
99
  - **Applies to:** messenger CLIs (gap); shared libraries (no gap). **Since:** cli-base 0.41.0. **Rulings:** NEED-854.
100
100
 
101
- ### WC-REL-9 · A breaking change to a stable shared-library export ships at most once a week
102
-
103
- - **Why:** each such change makes every CLI change too; batching them keeps the CLIs on one version.
104
- - **Enforced by:** review only.
105
- - **Example:** gather breaking export changes into one release a week. Bump the library in every CLI that uses it on
106
- the same day.
101
+ ### WC-REL-9 · A change to a stable shared-library export that makes a CLI change its code ships at most once a week
102
+
103
+ - **Why:** the limit keeps the CLIs from chasing versions; a change that no CLI has to follow gives them nothing to
104
+ chase.
105
+ - **Enforced by:** `cli-core: parity.yml` (it decides which changes count; review keeps the week).
106
+ - **Example:** cli-core's parity jobs build tg-cli, max-cli and whatsapp-cli from their `main` against every pull
107
+ request. A change to a stable export counts unless all three jobs pass with each CLI's `main` unchanged; its
108
+ changelog still lists it under "Changed — may break callers" for outside users. It counts when a job fails, when it
109
+ passes only against a CLI branch made for the change, and when it compiles but changes behaviour that any CLI must
110
+ adapt to. Parity cannot see that last case, so when in doubt the change counts. Gather the changes that count into
111
+ one release a week, and bump the library in every CLI that uses it on the same day.
107
112
  - **Exceptions:** none.
108
- - **Applies to:** shared libraries. **Since:** cli-base 0.41.0. **Rulings:** NEED-473.
113
+ - **Applies to:** shared libraries. **Since:** cli-base 0.41.0. **Rulings:** NEED-473, NEED-1552.
109
114
 
110
115
  ### WC-REL-10 · A messenger CLI is released only with a release report the owner signed for that commit
111
116
 
@@ -124,8 +124,8 @@ the message store. The owner adds `--allow-any-file` to send one anyway.
124
124
  ### WC-SECR-10 · Private files are written atomically with private modes
125
125
 
126
126
  A file that holds a secret or private state is written with `writeSecurely`: atomically, mode `0600`, in a directory
127
- created with mode `0700`. `writeSecurely` takes text or bytes, so a login QR image is written the same way. A
128
- temporary credential file, such as that image, is `0600` and removed in `finally`.
127
+ created with mode `0700`. `writeSecurely` takes text or bytes. A
128
+ temporary credential file is `0600` and removed in `finally`.
129
129
  tg's `doctor` reports a wrong mode and prints the `chmod` fix without applying it.
130
130
 
131
131
  - **Why:** another user on the same computer must not read the session.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wirecat/cli-base",
3
- "version": "0.47.0",
3
+ "version": "0.47.2",
4
4
  "description": "The parts every command line tool needs: output modes, terminal rendering, error model, exit codes, credentials, clocks",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Viacheslav Ptsarev",