@wix/himalaya-cli 0.997.0 → 0.998.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.
Binary file
@@ -198,6 +198,16 @@ with `himi ux record --content . --platform ios|android --status passed|failed|u
198
198
  actually drove; an unavailable platform drove nothing, so it takes no checks and needs its reason
199
199
  recorded, not guessed.
200
200
 
201
+ **Record last, right before you push.** A UX record is bound to the exact release content it was
202
+ taken against, and `himi push` refuses a draft whose record describes different content — so
203
+ any edit after recording (a screen, a token, a worker) means recording again. And that only works
204
+ if the build is reproducible: **a worker's initial state must be deterministic.** The build boots
205
+ each worker and hashes its initial state into the release, so a `defineService` state computed
206
+ from `Date.now()`, `new Date()` or `Math.random()` makes every build of unchanged source a
207
+ different release, and no record can ever match the push. `himi validate` warns about it
208
+ (`initial-state`, naming the worker and service); fix it by computing those values in an action
209
+ — for example one the screen's `onAppear` dispatches — instead of in the initial state.
210
+
201
211
  Report v2 sharpens all of it: a worker throw carries `in tier5-src/<screen>/index.ts:<line>`
202
212
  (mapped through the bundle's sourcemap — fix it without grepping), the ledger lists worker
203
213
  functions **no axis ever executed** with their source lines (usually the error branch you
@@ -137,6 +137,15 @@ driving a native shell, record the result—not an assumption—with `himi ux re
137
137
  is required for `passed`/`failed` and names what you actually drove; an unavailable platform drove
138
138
  nothing, so it takes no checks and needs a `--reason` instead.
139
139
 
140
+ Record last, immediately before `himi push`. The record is bound to the exact release content it
141
+ was taken against, and the push refuses a draft whose record describes different content, so any
142
+ edit after recording means recording again. That only works when the build is reproducible, so
143
+ **a worker's boot-time initial state must be deterministic**: the build hashes each worker's
144
+ initial state into the release, and a `defineService` state computed from `Date.now()`,
145
+ `new Date()` or `Math.random()` makes every build of unchanged source a different release that no
146
+ record can match. `himi validate` names such a worker as an `initial-state` warning. Compute those
147
+ values in an action (for example one the screen's `onAppear` dispatches) instead.
148
+
140
149
  `himi render --width`/`--device` writes into the same `.himi/ux-audit.json`, appending the width it
141
150
  rendered. That is what the width marker below reads first, so rendering the screen at two widths is
142
151
  itself the evidence — see the strict audit contract.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/himalaya-cli",
3
- "version": "0.997.0",
3
+ "version": "0.998.0",
4
4
  "type": "module",
5
5
  "description": "himi — the Himalaya authoring CLI. Build a Tier-5 content package on your own machine, push it to the production serve as a draft, preview it on web + Himi Player, and read worker logs back — the remote dev loop. Wraps @himalaya/serve-cli for transport.",
6
6
  "keywords": [
@@ -65,5 +65,5 @@
65
65
  "artifactId": "himalaya-cli"
66
66
  }
67
67
  },
68
- "falconPackageHash": "1da0e386b23642ce946cc95fbb56bb7988c6100b680fe7dbaf954a99"
68
+ "falconPackageHash": "5ebc9c2a8de3fd169d9b17811f10f0d83ae07430d18ea0c242214539"
69
69
  }