@k-msg/cli 0.9.13 → 0.10.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
@@ -1,5 +1,15 @@
1
1
  # @k-msg/cli
2
2
 
3
+ ## 0.10.0 — 2026-09-26
4
+
5
+ ### Minor changes
6
+
7
+ - [b4d1b9b6](https://github.com/k-otp/k-msg/commit/b4d1b9b6ec18bc652c052e4f6ab95fb51e8e9cbd) Encrypt the field-crypto migration backfill instead of copying plaintext: `applyFieldCryptoMigration` and `retryFieldCryptoMigration` now require the tracking store's `fieldCrypto` options and encrypt rows whose `crypto_state` is empty, `plain`, or `degraded` through the same write path as the store. The backfill can run alongside live writes: it updates a row only while the row's state, recipient, sender, provider, and metadata still match what it read, re-encrypts the row's current values otherwise, and confirms each write by re-reading the row when the driver reports no affected-row count. Chunks after the first no longer fail on SQLite, D1, and MySQL, a failed row read or state write marks the run failed instead of leaving it running, and a row with no plain recipient fails its chunk instead of being skipped. `retryFieldCryptoMigration` only changes a run that has failed chunks to reprocess, so it no longer flips completed or read-failed runs back to running. The CLI `db tracking migrate apply/retry` commands read the keys from `KMSG_FIELD_CRYPTO_KEYS` and `KMSG_ACTIVE_KID`, accepting base64url or standard base64 keys and rejecting truncated ones before the backfill starts, and `KMSG_FIELD_CRYPTO_AAD_FIELDS` mirrors a store's `aadFields`. Both commands exit with code 3 when the run fails. — Thanks @imjlk!
8
+
9
+ ### Patch changes
10
+
11
+ - Updated dependencies: channel@0.31.0, core@0.31.0, messaging@0.31.0, provider@0.31.0, template@0.31.0, k-msg@0.31.0
12
+
3
13
  ## 0.9.13 — 2026-07-21
4
14
 
5
15
  ### Patch changes
package/README.md CHANGED
@@ -252,7 +252,8 @@ k-msg db tracking migrate retry --sqlite-file ./local.db
252
252
  Operational notes:
253
253
 
254
254
  - state is persisted in DB meta tables plus local snapshots under `.kmsg/migrations`
255
- - `retry` only replays failed chunks
255
+ - `retry` only replays failed chunks; resume a run that stopped on a read error with `apply`
256
+ - `apply` and `retry` encrypt with the tracking store's keys from `KMSG_FIELD_CRYPTO_KEYS` and `KMSG_ACTIVE_KID` (see `docs/security/migration-cli-runbook.md`)
256
257
  - use `status` before changing rollout flags (`compatPlainColumns`)
257
258
 
258
259
  ## Recommended AlimTalk flow
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k-msg/cli",
3
- "version": "0.9.13",
3
+ "version": "0.10.0",
4
4
  "private": false,
5
5
  "description": "k-msg CLI (prebuilt binaries via GitHub Releases)",
6
6
  "type": "module",
@@ -35,17 +35,17 @@
35
35
  },
36
36
  "devDependencies": {
37
37
  "@gunshi/plugin-completion": "0.35.1",
38
- "@k-msg/channel": "0.29.8",
39
- "@k-msg/core": "0.29.8",
40
- "@k-msg/messaging": "0.29.8",
41
- "@k-msg/provider": "0.29.8",
42
- "@k-msg/template": "0.29.8",
38
+ "@k-msg/channel": "0.31.0",
39
+ "@k-msg/core": "0.31.0",
40
+ "@k-msg/messaging": "0.31.0",
41
+ "@k-msg/provider": "0.31.0",
42
+ "@k-msg/template": "0.31.0",
43
43
  "@types/bun": "^1.3.14",
44
44
  "@types/node": "^26.0.1",
45
45
  "gunshi": "0.35.1",
46
- "k-msg": "0.29.8",
46
+ "k-msg": "0.31.0",
47
47
  "solapi": "^6.0.1",
48
- "ttsc": "^0.18.4",
48
+ "ttsc": "^0.30.4",
49
49
  "typescript": "^7.0.2",
50
50
  "zod": "^4.4.3"
51
51
  },