@wix/himalaya-cli 0.1441.0 → 0.1442.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/guides/hhp.md CHANGED
@@ -15,6 +15,10 @@ himi hhp init home --content .
15
15
  himi run --watch --content .
16
16
  ```
17
17
 
18
+ To see the compiled screens on an iOS Simulator or Android emulator, build Himi Player
19
+ against your machine and open the package with `himi run --content . --port <port>`; the
20
+ four-step recipe is in [View your package on a device](himi-player-implementation.md#view-your-package-on-a-device).
21
+
18
22
  Choose a new screen id if `home` is already registered. Repo targets accept
19
23
  `--app <name>` instead. The scaffold contains `screens/home.html`, `home.css`, and
20
24
  `home.controller.ts`. `hhp.json` declares sources:
@@ -72,7 +72,7 @@ keeps its existing fields and adds the code:
72
72
  | `invalid_patch` | The selection cannot produce a valid patch. The existing `error` and plan details are preserved. |
73
73
  | `would_regress` | A partial push would revert unselected live changes. |
74
74
  | `not_carried_by_patch` | The package changed dependencies that a partial push cannot carry. |
75
- | `authoring_unavailable` | The bundled authoring runtime failed to load. |
75
+ | `authoring_unavailable` | The bundled authoring runtime failed to load. Carries `cause` (the underlying error's message) and `module` (the import specifier that failed) when known, and `sourceCheckout`: when run from a source checkout the advice is `fix: "yarn install"` (stale dependencies), off-repo it is `upgrade` (an out-of-date CLI). |
76
76
  | `push_failed` | An otherwise unclassified exception stopped push (for example unreadable content). The original error is preserved. |
77
77
 
78
78
  The `ux_evidence_*` codes map to the existing typed `uxEvidence.state`; a successful
@@ -124,7 +124,8 @@ Only **unambiguous** defects, so a green run stays worth trusting:
124
124
  | `nav-target-missing` | **warning** | A `himi.open` whose target is neither a baked screen, nor one of the app's declared `linkableScreens`, nor an instance of one (`course_detail_c1` under the base `course_detail`) — the tap opens nothing. Only judged when the caller supplies the app's exact linkable set; an absent set means no opinion, never a guess. A target still carrying an **unresolved** `$` token is dropped before it becomes an edge and is never judged — but one that RESOLVED to a concrete id is judged, which is the point: `$item.detailScreenId` resolving to `course_detail_c1` against the first row is exactly the case the instance rule exists for. |
125
125
  | `poll-action-missing` | error | A `_poll` directive every host will silently ignore — an action the bundle never declares, a malformed `action`, a missing `id`, or a non-positive `intervalMs`. Each ends the same way: a screen that never refreshes, with nothing saying why. Nothing in the descriptor names the polled action, so no static check can see it. (A merely too-small interval is legal — the host clamps it.) |
126
126
  | `no-request-issued` | **warning** | A worker that uses the Wix transport but never fetches — "the screen loaded with sample data." A warning: a conditional or tap-triggered fetch is legitimate. |
127
- | `native-decode-failed` | error | Under `--native`, the real Swift/Kotlin decoder rejected the baked descriptor bytes (one bad enum blanks the whole screen on device). |
127
+ | `native-decode-failed` | error | Under `--native`, the real Swift/Kotlin decoder rejected the baked descriptor bytes (one bad enum blanks the whole screen on device) — or the release's `tokens.json`, reported with `screen: "tokens.json"`: both natives decode it in one strict pass, so a single fractional `typography.*.size` or a `motions.*.duration` written in seconds drops the whole theme. A token finding fails the run but never counts as a failed screen. |
128
+ | `token-type-invalid` | error | The package's tokens file holds a value a native `Int` field rejects — `typography.<k>.size` or `.weight`, `motions.<k>.duration` (milliseconds: `0.3` → `300`), or a `spacing` / `radius` entry — in the base document or any `idiom.<overlay>`. Both natives decode tokens.json in one strict pass, so one such value drops the WHOLE theme (iOS "Theme unavailable"; Android default palette and fonts) while the web preview looks right. Reported with `screen: "tokens.json"`, never counted as a failed screen; `himi validate` reports the same finding. |
128
129
  | `capability-undeclared` | error | A `capability.<id>.<verb>` call the screen's gate denied — reported from the gate itself, so it is raised **even when the worker catches the rejection** (which on device leaves a control that silently does nothing). Fix: declare the id on that screen's `logicBundle.declaredCapabilities` and in `config.ts` `capabilities`. One per capability per screen. See [Capabilities](#capabilities). |
129
130
  | `journey-failed` | error | A `himi-test.json` journey named an action the screen lacks, threw, or never rendered its `expectText`. |
130
131
  | `inverse-pair-diverges` | **warning** | An action and the action that undoes it do not return to the state the boot settled on — `add` then `remove` leaving a different list, or a counter it forgot to put back. |
@@ -396,7 +397,7 @@ browser.
396
397
  | `--no-shots` | Skip the per-screen PNGs written to `.himi/shots/`. |
397
398
  | `--net <file>` | Use an explicit net-mocks file instead of the app's own. |
398
399
  | `--budget <ms>` | Per-action settle budget (default 2000). |
399
- | `--native` | Also decode every baked descriptor with the real native decoders; bare `--native` runs whichever toolchains are present, and `--native ios` or `--native android` selects one. **Source-checkout only** — the decoder oracles are that tree's own HimalayaCore Swift package and Gradle harness, which a published install does not ship, so it cannot run this at all (and its coverage ledger stays silent about native decoding rather than suggesting it). |
400
+ | `--native` | Also decode every baked descriptor, and the release's `tokens.json`, with the real native decoders; bare `--native` runs whichever toolchains are present and names each one it could NOT check in a top-level `skippedPlatforms: [{ platform, reason }]` (never a pass), while `--native ios` or `--native android` selects one and exits 2 when it is unavailable. The Android SDK is found from `ANDROID_HOME`, then `ANDROID_SDK_ROOT`, then `sdk.dir` in the source checkout's Android test harness `local.properties`, then the default install path (`~/Library/Android/sdk` on macOS, `~/Android/Sdk` on Linux). **Source-checkout only** — the decoder oracles are that tree's own HimalayaCore Swift package and Gradle harness, which a published install does not ship, so it cannot run this at all (and its coverage ledger stays silent about native decoding rather than suggesting it). |
400
401
  | `--all-screens` | Crawl every templated instance instead of one representative per structure. |
401
402
  | `--browser` / `--no-open` / `--timeout <ms>` | Run the loop in your own browser tab (one screen per run; refuses record/net/offline/hostile/deep/budget/shots/native). |
402
403
  | `himi test <screenId>…` | Focus one or more screens — the record and shots passes scope with them. |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/himalaya-cli",
3
- "version": "0.1441.0",
3
+ "version": "0.1442.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": [
@@ -71,5 +71,5 @@
71
71
  "artifactId": "himalaya-cli"
72
72
  }
73
73
  },
74
- "falconPackageHash": "a3e589b65f6239351e6445160aa5b26a14cc4056007292e973e036ab"
74
+ "falconPackageHash": "a9410b54858e369de3dc999ca67e799366424e27e7a49022ff34cdbf"
75
75
  }