@wix/himalaya-cli 0.996.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
@@ -2465,7 +2465,7 @@ The verb decides what happens to the navigation stack. Where there is a target s
2465
2465
  | `presentation` | Effect |
2466
2466
  |---|---|
2467
2467
  | `push` | Open `screenId` on top of the current screen; Back returns to where you were. The default. |
2468
- | `replace` | Open `screenId` without keeping the current screen to go Back to. |
2468
+ | `replace` | Open `screenId` without keeping the current screen to go Back to. The hosts differ on what Back does next: on iOS and Android the ACTIVE stack is reset to its root before `screenId` is pushed (the open sheet's or cover's own stack when one is up, otherwise the current tab's or the app's single stack), so Back returns to that root and, inside a modal, a further Back closes the modal; on web only the top screen of the current tab is swapped, so Back returns to the screen that was beneath it. |
2469
2469
  | `back` | Pop the current screen (nothing happens at a stack root). On iOS and Android, inside a sheet or cover it pops the modal's own stack first and closes the modal at its root; on web it pops the tab's stack, so close a modal with `dismiss`. |
2470
2470
  | `dismiss` | Close the presented sheet or full-screen cover (on web, an open alert too). Nothing happens when no modal is up. |
2471
2471
  | `sheet` | Present `screenId` as a sheet over the current screen. One at a time: presenting another replaces it. |
@@ -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.
@@ -589,9 +589,13 @@ You get a **new** visitor, who cannot see the old one's records, when:
589
589
  - renewing the stored visitor fails, so the browser starts a fresh one;
590
590
  - the app's `clientId` changes.
591
591
 
592
- One path is **not** stable at all. When the browser cannot reach Wix itself — its visitor mint
593
- or a request fails, after which the rest of that page load stays on the fallback — or a call
594
- carries its own headers or an absolute URL, the call goes through the preview server instead.
592
+ One path is **not** stable at all: the call goes through the preview server instead. That
593
+ happens when the browser cannot reach Wix itself (its visitor mint or a request fails, after
594
+ which the rest of that page load stays on the fallback); when the preview's identity check
595
+ fails or takes longer than 4 seconds, which sends calls through the server until 5 seconds
596
+ after that check started; when the server has switched browser-direct calls off; and for a call that carries its
597
+ own headers or an absolute URL. A write made in one of those windows can be missing when you
598
+ read it back as the browser's own visitor.
595
599
  That server uses one anonymous visitor per server instance, **shared** by everyone it serves and
596
600
  replaced when its token expires. A signed-in member is a separate identity (the member session)
597
601
  and is not affected by any of this.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/himalaya-cli",
3
- "version": "0.996.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": "302697b73846010a0fe1e425721e1e74e406e07054033a4bcc1f89cf"
68
+ "falconPackageHash": "5ebc9c2a8de3fd169d9b17811f10f0d83ae07430d18ea0c242214539"
69
69
  }