@wirecat/cli-base 0.51.0 → 0.51.1

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,16 @@ 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.51.1 — 24.10.2026
12
+
13
+ ### Fixed
14
+
15
+ - The shared vocabulary recognizes `--draft` as a switch that saves text for review without sending. Enabling an adapter’s draft capability no longer creates an unknown-option-role lint failure.
16
+
17
+ ### Removed
18
+
19
+ - **No wait between releases and no weekly limit on breaking changes** (`WC-REL-8`, [Releases](docs/standards/releases.md)). A messenger CLI no longer waits two hours after its last version, and a shared library may ship a change that makes the CLIs change their code at any time. `WC-REL-9` is merged into `WC-REL-8`. The release lock stays. Nothing changes in code.
20
+
11
21
  ## 0.51.0 — 24.10.2026
12
22
 
13
23
  ### Added
@@ -291,6 +291,12 @@ export const HOW_FLAGS = [
291
291
  type: "duration",
292
292
  meaning: "how old a stored snapshot may be and still count as fresh",
293
293
  },
294
+ {
295
+ name: "--draft",
296
+ role: "mode",
297
+ type: "switch",
298
+ meaning: "save text for the owner to review and send, without sending a message",
299
+ },
294
300
  { name: "--md", role: "mode", type: "switch", meaning: "the text is the messenger's Markdown" },
295
301
  { name: "--no-backup", role: "mode", type: "switch", meaning: "do not back the file up before deleting it" },
296
302
  { name: "--no-input", role: "mode", type: "switch", meaning: "never prompt or open an interactive login" },
@@ -39,7 +39,7 @@ rules it keeps. A new CLI is ready for its first release when every check under
39
39
  | [Security](security.md) | `SECR` | 20 | Secrets, logs, keyring, argv, error text, untrusted text, scanners, workflow hardening, reporting |
40
40
  | [Documents](docs.md) | `DOC` | 20 | User pages and developer pages, generated pages, current facts, changelog |
41
41
  | [Comparisons](comparisons.md) | `CMP` | 11 | Which tools a comparison page lists, rows as user tasks, agents and safety, where others are better, proof of marks |
42
- | [Releases](releases.md) | `REL` | 16 | `bin/release`, the release lock, versions, release reports, trusted publishing |
42
+ | [Releases](releases.md) | `REL` | 15 | `bin/release`, the release lock, versions, release reports, trusted publishing |
43
43
  | [CI](ci.md) | `CI` | 12 | Hooks, the pull request budget, full validation, monthly runs |
44
44
  | [Time](time.md) | `TIME` | 6 | UTC in the store and in answers, the zone at input and display edges, date-only filters, tests in another zone |
45
45
  | [Style](style.md) | `STYLE` | 10 | Comments, TypeScript habits, commit messages |
@@ -92,8 +92,8 @@ whatsapp-cli is the worked example: it has every file below. Compare with it whe
92
92
  8. **`SECURITY.md`**: how to report a vulnerability, linking cli-testing's security method. See
93
93
  [Security](security.md).
94
94
  9. **`bin/release`**, **`release.yml`** and a release skill, copied from the nearest CLI. `bin/release` takes the
95
- release lock (WC-REL-3) and npm's trusted publisher settings name `release.yml`. A messenger CLI also waits two
96
- hours between releases and checks a signed release report (WC-REL-8, WC-REL-10). See [Releases](releases.md).
95
+ release lock (WC-REL-3) and npm's trusted publisher settings name `release.yml`. A messenger CLI also checks a signed
96
+ release report (WC-REL-10). See [Releases](releases.md).
97
97
  10. **`src/version.ts`** kept in step with `package.json`. Proved by: `pnpm version:check`.
98
98
 
99
99
  ## Done when
@@ -88,29 +88,17 @@ on the [CI](ci.md) page.
88
88
  - **Exceptions:** a pre-release version (`0.41.0-rc.1`) is chosen by hand.
89
89
  - **Applies to:** all CLIs and shared libraries. **Since:** cli-base 0.41.0. **Rulings:** none.
90
90
 
91
- ### WC-REL-8 · A messenger CLI waits two hours between releases; a shared library does not wait
91
+ ### WC-REL-8 · Any package may release at any time
92
92
 
93
- - **Why:** a broken CLI release must be noticed before the next one lands on top of it. Every CLI waits for a library
94
- release, so a gap there only delays them.
95
- - **Enforced by:** `<app>: bin/release`.
96
- - **Example:** tg-cli, max-cli and whatsapp-cli's `bin/release` refuse to start within two hours of the last version
97
- on npm. cli-base and cli-core release one after another with no gap.
98
- - **Exceptions:** memo, drive and zoom have no gap in their `bin/release` today.
99
- - **Applies to:** messenger CLIs (gap); shared libraries (no gap). **Since:** cli-base 0.41.0. **Rulings:** NEED-854.
100
-
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.
112
- - **Exceptions:** none.
113
- - **Applies to:** shared libraries. **Since:** cli-base 0.41.0. **Rulings:** NEED-473, NEED-1552.
93
+ - **Why:** a wait between releases or a weekly limit on breaking changes only delays a fix; the owner removed both
94
+ limits on 2026-10-24.
95
+ - **Enforced by:** review only.
96
+ - **Example:** tg-cli can release an hour after its last version, and cli-core can ship a breaking change on the same
97
+ day as the previous one. Bump the library in every CLI that uses it on the day it ships.
98
+ - **Exceptions:** none. The release lock (WC-REL-3) still keeps two releases on one machine from running at once.
99
+ - **Applies to:** all CLIs and shared libraries. **Since:** cli-base 0.52.0. **Rulings:** NEED-1741.
100
+
101
+ ### WC-REL-9 · Merged into [WC-REL-8](#wc-rel-8--any-package-may-release-at-any-time)
114
102
 
115
103
  ### WC-REL-10 · A messenger CLI is released only with a release report the owner signed for that commit
116
104
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wirecat/cli-base",
3
- "version": "0.51.0",
3
+ "version": "0.51.1",
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",