@wix/himalaya-cli 0.873.0 → 0.875.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.
@@ -428,6 +428,35 @@ HTTPS endpoints; development may explicitly use a loopback HTTP fixture. See
428
428
  **`payload`**, pinned with `position:sticky` the same way ScreenHost / device hosts do.
429
429
  A sticky bar missing from `render` is a real bug in the descriptor or the renderer.
430
430
 
431
+ #### When that `load()` rejects: the runtime-owned `_error` slot
432
+
433
+ Module-eval `load()` is fire-and-forget, so **nobody awaits it** and a rejection has no
434
+ caller to observe it. Since #2288 the runtime does the observing, identically on every
435
+ surface (web, iOS, Android, and the local `himi test` / `himi render --live` loop):
436
+
437
+ 1. **It commits an error state**, so a descriptor's error branch can render instead of
438
+ the screen hanging on its declared `loading`. The rejection message lands in a
439
+ reserved `_error` key, and — *only when the service already declared them* — the
440
+ conventional discriminators are flipped to match: `status: "loading"` → `"error"`,
441
+ `loading: true` → `false`, and a `string` `error` slot receives the message. A
442
+ service that models failure some other way keeps its own shape and still gets
443
+ `_error`. Nothing is invented.
444
+ 2. **It emits `action_failed`** (`{ actionId: "tier5.<service>.<action>", source:
445
+ "worker", error }` — the same payload the dispatcher emits for a failed dispatch)
446
+ plus the `error_logged` central-log line, so the message reaches telemetry and
447
+ `himi logs` instead of vanishing.
448
+ 3. **It re-throws.** The failure is made *visible*, not caught and continued: an
449
+ awaiting bundle and the host's `unhandledrejection` net keep every signal they had.
450
+
451
+ `_error` is **runtime-owned and transient**, exactly like `_nav` / `_stream` / `_poll`:
452
+ your bundle never writes it, the next successful action's state spread clears it (so the
453
+ idiomatic `{ ...s, status: "loading" }` retry cannot pin a stale failure on), and it is
454
+ dropped when a persisted snapshot re-hydrates on a cold boot.
455
+
456
+ This is what makes the fail-closed capability gates readable. `local_database: entity
457
+ "X" is not declared in the app's dataSchema` is a message written to be read — before
458
+ #2288 an author only ever saw an eternal spinner.
459
+
431
460
  ### Refresh on a cadence with `_poll` (the worker has no clock)
432
461
 
433
462
  A worker is a pure reducer with **no `setTimeout` and no `setInterval`** — its sandbox
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/himalaya-cli",
3
- "version": "0.873.0",
3
+ "version": "0.875.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": [
@@ -63,5 +63,5 @@
63
63
  "artifactId": "himalaya-cli"
64
64
  }
65
65
  },
66
- "falconPackageHash": "e317363609876f9814b32d6a6ca7319bdd4527bfba2889d9027735e6"
66
+ "falconPackageHash": "ec18219dffbe81ace2bcd7eee3d3b546638087f0b2ea05f6e5b55258"
67
67
  }