@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.
- package/dist/cli.mjs +47 -15
- package/guides/tier-5-add-a-screen.md +29 -0
- package/package.json +2 -2
|
@@ -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.
|
|
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": "
|
|
66
|
+
"falconPackageHash": "ec18219dffbe81ace2bcd7eee3d3b546638087f0b2ea05f6e5b55258"
|
|
67
67
|
}
|