@pulse-compute/cli 1.0.0-beta.1 → 1.0.0-beta.2

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.
Files changed (76) hide show
  1. package/API.md +37 -4
  2. package/CHANGELOG.md +24 -0
  3. package/README.md +4 -3
  4. package/cli-spec.json +1 -1
  5. package/docs/README.md +1 -1
  6. package/docs/architecture/current-contracts.md +96 -7
  7. package/docs/concepts/compilation-and-lowering.md +1 -1
  8. package/docs/concepts/contracts-and-providers.md +2 -2
  9. package/docs/concepts/effects-and-continuations.md +57 -0
  10. package/docs/concepts/package-owned-lowering.md +1 -1
  11. package/docs/concepts/targets-and-hosts.md +10 -2
  12. package/docs/contributing/adding-core-provider.md +1 -1
  13. package/docs/contributing/adding-first-party-lowerer.md +1 -1
  14. package/docs/contributing/package-lowerer-contract.md +2 -2
  15. package/docs/guides/migrating-from-express.md +3 -3
  16. package/docs/guides/routing.md +19 -1
  17. package/docs/maintainers/documentation-deployment.md +4 -4
  18. package/docs/maintainers/documentation-versioning.md +1 -1
  19. package/docs/maintainers/maintainer-charter.md +17 -1
  20. package/docs/maintainers/maintenance-policy.json +34 -3
  21. package/docs/maintainers/maintenance-policy.md +3 -3
  22. package/docs/maintainers/npm-publishing.md +2 -2
  23. package/docs/maintainers/plugin-readiness.json +1 -1
  24. package/docs/maintainers/plugin-readiness.md +1 -1
  25. package/docs/maintainers/release-acceptance.md +51 -8
  26. package/docs/maintainers/release-manifest.md +23 -22
  27. package/docs/maintainers/scope-policy.md +13 -1
  28. package/docs/maintainers/testing.md +47 -1
  29. package/docs/packages/README.md +25 -24
  30. package/docs/packages/assets.md +1 -1
  31. package/docs/packages/crypto.md +8 -1
  32. package/docs/packages/entities.md +1 -1
  33. package/docs/packages/grip.md +1 -1
  34. package/docs/packages/implementation-packages.md +10 -1
  35. package/docs/packages/jwt.md +1 -1
  36. package/docs/packages/provider-fastly.md +29 -3
  37. package/docs/packages/pulse.md +1 -1
  38. package/docs/packages/runtime.md +10 -1
  39. package/docs/packages/s3.md +101 -0
  40. package/docs/preview-scope.md +2 -2
  41. package/docs/reference/cli-spec.json +1 -1
  42. package/docs/reference/cli.md +1 -1
  43. package/docs/reference/compatibility-matrix.md +2 -2
  44. package/docs/reference/diagnostics.md +5 -5
  45. package/docs/reference/documentation-versions.json +11 -3
  46. package/docs/reference/handler-authoring.md +1 -1
  47. package/docs/reference/project-config.md +33 -5
  48. package/docs/reference/project-config.schema.json +70 -7
  49. package/docs/reference/release-manifest.json +36 -22
  50. package/documentation-site.json +8 -1
  51. package/documentation-versions.json +11 -3
  52. package/examples/01-hello-json/README.md +1 -1
  53. package/examples/01-hello-json/package.json +2 -2
  54. package/examples/02-request-schema/README.md +1 -1
  55. package/examples/02-request-schema/package.json +2 -2
  56. package/examples/03-fetch-composition/README.md +1 -1
  57. package/examples/03-fetch-composition/package.json +2 -2
  58. package/examples/05-fastly-capabilities/README.md +2 -2
  59. package/examples/05-fastly-capabilities/package.json +4 -4
  60. package/examples/07-opaque-proxy/README.md +2 -2
  61. package/examples/07-opaque-proxy/package.json +3 -3
  62. package/examples/09-router-lowering/README.md +1 -1
  63. package/examples/09-router-lowering/package.json +3 -3
  64. package/examples/10-entities-tools/package.json +3 -3
  65. package/examples/11-events/README.md +1 -1
  66. package/examples/11-events/package.json +2 -2
  67. package/examples/12-mcp-proxy/README.md +1 -1
  68. package/examples/12-mcp-proxy/package.json +2 -2
  69. package/examples/13-jwt-es256/README.md +1 -1
  70. package/examples/13-jwt-es256/package.json +3 -3
  71. package/package.json +7 -7
  72. package/project-config.schema.json +70 -7
  73. package/release-manifest.json +36 -22
  74. package/src/documentation.js +1 -1
  75. package/src/project-config-schema.js +3 -3
  76. package/src/project-execution.js +22 -6
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "pulse.maintenance-policy.v2",
3
- "policyVersion": 6,
4
- "releaseVersion": "1.0.0-beta.1",
5
- "reviewedAt": "2026-08-01",
3
+ "policyVersion": 7,
4
+ "releaseVersion": "1.0.0-beta.2",
5
+ "reviewedAt": "2026-09-13",
6
6
  "maintainerModel": {
7
7
  "residentMaintainer": "Codex",
8
8
  "architectureAuthority": "human",
@@ -435,6 +435,37 @@
435
435
  ],
436
436
  "risk": "critical"
437
437
  },
438
+ {
439
+ "id": "target-compilation",
440
+ "patterns": [
441
+ "wasm/packages/cli/src/project-execution.js",
442
+ "wasm/packages/compiler/src/canonical-api-compiler.js",
443
+ "wasm/packages/compiler/src/canonical-project-compiler.js",
444
+ "wasm/packages/compiler/src/canonical-native-plan.js",
445
+ "wasm/packages/compiler/src/javascript-application-plan.js",
446
+ "wasm/packages/compiler/src/project/router-module-linker.js",
447
+ "wasm/packages/compiler/src/spine/async-surface-normalizer.js",
448
+ "wasm/packages/compiler/src/spine/plain-handler-frontend.js",
449
+ "wasm/packages/compiler/src/spine/router-handler-frontend.js"
450
+ ],
451
+ "areas": [
452
+ "compiler",
453
+ "cli"
454
+ ],
455
+ "boundaries": [
456
+ "runtime-target-fluidity"
457
+ ],
458
+ "checks": [
459
+ "documentation",
460
+ "unit",
461
+ "native",
462
+ "javascript",
463
+ "conformance",
464
+ "cli",
465
+ "build"
466
+ ],
467
+ "risk": "high"
468
+ },
438
469
  {
439
470
  "id": "configuration",
440
471
  "patterns": [
@@ -5,9 +5,9 @@
5
5
  Pulse uses a machine-readable maintenance policy so repository automation and Codex receive the same scope boundaries. The policy is advisory about product direction and mandatory about process: Codex may analyze, review, and prepare bounded patches, while a human retains architecture, merge, repository-setting, and release authority.
6
6
 
7
7
  - **Policy schema:** `pulse.maintenance-policy.v2`
8
- - **Policy version:** `6`
9
- - **Release:** `1.0.0-beta.1`
10
- - **Reviewed:** `2026-08-01`
8
+ - **Policy version:** `7`
9
+ - **Release:** `1.0.0-beta.2`
10
+ - **Reviewed:** `2026-09-13`
11
11
  - **Resident maintainer:** Codex
12
12
  - **Merge authority:** human-only
13
13
  - **Release authority:** human-only
@@ -44,8 +44,8 @@ For example:
44
44
 
45
45
  ```bash
46
46
  gh workflow run npm-publish.yml \
47
- --ref v1.0.0-beta.1 \
48
- -f release_tag=v1.0.0-beta.1 \
47
+ --ref v1.0.0-beta.2 \
48
+ -f release_tag=v1.0.0-beta.2 \
49
49
  -f operation=audit
50
50
  ```
51
51
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": "pulse.plugin-readiness.v1",
3
- "releaseVersion": "1.0.0-beta.1",
3
+ "releaseVersion": "1.0.0-beta.2",
4
4
  "publicPluginApi": false,
5
5
  "decision": "deferred",
6
6
  "requirements": {
@@ -4,7 +4,7 @@
4
4
 
5
5
  > **Decision:** Deferred. No public third-party plugin API is available in this release.
6
6
 
7
- Pulse 1.0.0-beta.1 keeps general plugin discovery and package lowering inside the synchronized trusted release. Provider bootstrap is explicit and exact. The current boundaries are:
7
+ Pulse 1.0.0-beta.2 keeps general plugin discovery and package lowering inside the synchronized trusted release. Provider bootstrap is explicit and exact. The current boundaries are:
8
8
 
9
9
  - **Lowerers:** trusted first-party release packages only.
10
10
  - **Providers:** explicit package selection through pulse.provider-toolchain.v1; bare host IDs use the @pulse-compute/provider-<id> convention, scoped names are exact, and none is internal; no scanning or self-registration.
@@ -7,8 +7,8 @@ pulse-doc-meta:end -->
7
7
 
8
8
  # Release packages and clean-consumer acceptance
9
9
 
10
- The current Beta candidate contains eighteen publishable packages
11
- synchronized at version `1.0.0-beta.1`. The product-facing packages are:
10
+ The current Beta candidate contains nineteen publishable packages
11
+ synchronized at version `1.0.0-beta.2`. The product-facing packages are:
12
12
 
13
13
  ```text
14
14
  @pulse-compute/pulse
@@ -20,13 +20,56 @@ synchronized at version `1.0.0-beta.1`. The product-facing packages are:
20
20
  @pulse-compute/crypto
21
21
  @pulse-compute/jwt
22
22
  @pulse-compute/entities
23
+ @pulse-compute/s3
23
24
  ```
24
25
 
25
26
  The CLI and providers depend on additional `@pulse-compute/wasm-*`
26
27
  implementation packages. Those packages are installable transitive
27
28
  dependencies, not the handler authoring surface. The generated
28
29
  [package support policy](../packages/README.md) defines the tier, audience,
29
- direct-install guidance, and supported entry points for all 18 artifacts.
30
+ direct-install guidance, and supported entry points for all 19 artifacts.
31
+
32
+ ## S3 candidate acceptance
33
+
34
+ The S3 package root supports bounded `head`, `getText` and `putText` on Node
35
+ Native, Node JavaScript and Fastly Native. The clean-consumer gate repeats the
36
+ same read and write failure corpus using installed package exports, packaged
37
+ lowering and provider builds. It type-checks the public declarations and
38
+ compares every installed Pulse package file against its exact tarball both
39
+ before and after execution. No workspace links or installed dependency edits
40
+ are permitted. The report `s3-packed-acceptance.json` includes all tarball
41
+ SHA-256 identities and target execution counts in the acceptance task directory.
42
+
43
+ Fastly's host ABI fixture supplies the platform to compiled Wasm; no workspace
44
+ product implementation is loaded by the packed consumer. Fastly JavaScript S3
45
+ remains ineligible for its documented raw-header limitation. Local acceptance
46
+ does not claim live Object Storage behavior. That separate evidence follows
47
+ infrastructure setup (T2); package promotion does not publish npm artifacts or
48
+ change the existing registry bootstrap and release approval gates.
49
+
50
+ ## Conditional KV acceptance
51
+
52
+ Conditional KV has additional required acceptance beyond the aggregate release
53
+ profile and the generic Fastly Compute reality task:
54
+
55
+ - `node wasm/scripts/run-wasm-tests.cjs --task kv-conditional-acceptance --no-report`
56
+ installs exact candidate tarballs and executes the Native consumer through
57
+ Fastly CLI/Viceroy. An unavailable engine or semantic failure fails this gate.
58
+ - Full deployed Pulse cross-location acceptance uses the reviewed isolated
59
+ environment and probe driver described in the
60
+ [K4 acceptance record](https://github.com/pulse-compute/pulse/blob/latest/wasm/test/kv/K4.md).
61
+
62
+ The retained Viceroy 0.21.0 run fails missing-key CAS. The standalone deployed
63
+ Rust SDK probe confirms rejection for never-created and deleted keys in its
64
+ tested cases, but does not satisfy either required Pulse acceptance gate. Full
65
+ Pulse deployed cross-location evidence remains pending the isolated environment.
66
+
67
+ Report these gates separately even when `release:seal -- --require-fastly`
68
+ passes: that command does not include the dedicated K4 acceptance task or its
69
+ deployed runner. Preserve the local failure and pending deployed requirement as
70
+ release-readiness blockers. An explicit human-directed acceptance-policy change
71
+ must specify any replacement evidence and update the owning gates and current
72
+ contracts; a guidance update alone neither waives a gate nor changes CAS behavior.
30
73
 
31
74
  ## Event experimental candidate
32
75
 
@@ -79,7 +122,7 @@ From the source workspace:
79
122
  pnpm release:pack
80
123
  ```
81
124
 
82
- This builds the workspace and writes eighteen package tarballs plus `pulse-release-manifest.json` under `.pulse-release/`. It prepares release artifacts; it does not publish them to a registry.
125
+ This builds the workspace and writes nineteen package tarballs plus `pulse-release-manifest.json` under `.pulse-release/`. It prepares release artifacts; it does not publish them to a registry.
83
126
 
84
127
  Packing fails when:
85
128
 
@@ -143,7 +186,7 @@ as byte-reproducible. The candidate report distinguishes that toolchain-owned
143
186
  property from Pulse-owned deterministic input and metadata. It also records zero
144
187
  provider-reality runs, zero deployments, and zero publications.
145
188
 
146
- The task owns the eighteen publishable Pulse packages, not the packages in the
189
+ The task owns the nineteen publishable Pulse packages, not the packages in the
147
190
  development installation. It installs every exact Pulse tarball into clean
148
191
  consumer projects and verifies the installed name, version, and real path. An
149
192
  ephemeral server bound to `127.0.0.1` is the fail-closed registry for the
@@ -216,7 +259,7 @@ Before the first trusted publication, every package name must exist and authoriz
216
259
 
217
260
  ## Publication hold points
218
261
 
219
- Before publication, confirm the repository, final documentation host/base path, package policy, and issue-tracker values centralized in `release/pulse-release-manifest.json`. Pulse is licensed under Apache-2.0: the release gate requires the exact root `LICENSE`, SPDX metadata in the workspace and all eighteen publishable packages, and the same license text in every npm tarball. A dependency-license audit and its dispositions remain separate release evidence.
262
+ Before publication, confirm the repository, final documentation host/base path, package policy, and issue-tracker values centralized in `release/pulse-release-manifest.json`. Pulse is licensed under Apache-2.0: the release gate requires the exact root `LICENSE`, SPDX metadata in the workspace and all nineteen publishable packages, and the same license text in every npm tarball. A dependency-license audit and its dispositions remain separate release evidence.
220
263
 
221
264
  A human release authority must approve `npm-publish`. Codex may diagnose or prepare a patch but cannot publish, approve the environment, bootstrap package names, or mutate dist-tags.
222
265
 
@@ -228,7 +271,7 @@ The release owns a versioned hosted-documentation gate:
228
271
  pnpm docs:site:check
229
272
  ```
230
273
 
231
- The check builds the exact `v1.0.0-beta.1` site and `latest` tree in a temporary directory, creates one search entry per public page, validates local hosted links, verifies release/version manifests, and requires the search, version, owner, and review UI on every page.
274
+ The check builds the exact `v1.0.0-beta.2` site and `latest` tree in a temporary directory, creates one search entry per public page, validates local hosted links, verifies release/version manifests, and requires the search, version, owner, and review UI on every page.
232
275
 
233
276
  The **Documentation** workflow repeats those checks for pull requests and `main`, seals a preview deployment manifest, and uploads artifacts without production credentials. It does not deploy to GitHub Pages.
234
277
 
@@ -236,7 +279,7 @@ Production delivery uses the manually dispatched **Documentation deployment** wo
236
279
 
237
280
  ```text
238
281
  build and seal
239
- → upload/verify v1.0.0-beta.1 and its receipt immutably
282
+ → upload/verify v1.0.0-beta.2 and its receipt immutably
240
283
  → verify all matching npm packages and configured dist-tags
241
284
  → promote root and latest
242
285
  → verify representative URLs through Fastly
@@ -6,8 +6,8 @@
6
6
 
7
7
  ## Beta candidate
8
8
 
9
- - **Candidate:** Pulse 1.0.0-beta.1 — Beta
10
- - **Version:** `1.0.0-beta.1`
9
+ - **Candidate:** Pulse 1.0.0-beta.2 — Beta
10
+ - **Version:** `1.0.0-beta.2`
11
11
  - **Activation stage:** `documentation-release`
12
12
  - **License:** `Apache-2.0`
13
13
  - **Supported Node:** `^22.14.0 || ^24.0.0`
@@ -16,9 +16,9 @@
16
16
  - **Reproducible publication toolchain:** Node `24.18.0` with npm `11.15.0`
17
17
  - **Readiness register:** `release/release-preflight.json`
18
18
  - **Documentation inventory:** `release/documentation-inventory.json`
19
- - **Exact documentation:** `https://pulsecompute.io/v1.0.0-beta.1/`
19
+ - **Exact documentation:** `https://pulsecompute.io/v1.0.0-beta.2/`
20
20
  - **Runtime targets:** 3
21
- - **Packages:** 18
21
+ - **Packages:** 19
22
22
 
23
23
  The installed CLI ships the same machine-readable data as
24
24
  `release-manifest.json`. The atomic snapshot transaction aligns
@@ -66,23 +66,24 @@ scoped package name.
66
66
 
67
67
  | Package | Support tier | Canonical guide | Direct installation |
68
68
  |---|---|---|---|
69
- | `@pulse-compute/runtime` | Canonical application surface | [Guide](../packages/runtime.md) | Yes. Install it in every Pulse application. |
70
- | `@pulse-compute/pulse` | Canonical application surface | [Guide](../packages/pulse.md) | Yes. Install it in every conventional Pulse project. |
71
- | `@pulse-compute/cli` | Canonical application surface | [Guide](../packages/cli.md) | Yes. Install the package globally or as a project development dependency. |
72
- | `@pulse-compute/provider-fastly` | Supported provider/extension surface | [Guide](../packages/provider-fastly.md) | Yes, for Fastly projects. Node-only projects do not need to import it directly. |
73
- | `@pulse-compute/grip` | Supported provider/extension surface | [Guide](../packages/grip.md) | Yes, only when the application uses GRIP/Fanout behavior. |
74
- | `@pulse-compute/assets` | Supported provider/extension surface | [Guide](../packages/assets.md) | Yes, only when the application uses the assets capability. |
75
- | `@pulse-compute/crypto` | Supported provider/extension surface | [Guide](../packages/crypto.md) | Yes, when an application uses the crypto verification surface directly; JWT applications receive it transitively. |
76
- | `@pulse-compute/jwt` | Supported provider/extension surface | [Guide](../packages/jwt.md) | Yes, when an application verifies JWTs. |
77
- | `@pulse-compute/entities` | Supported provider/extension surface | [Guide](../packages/entities.md) | Yes, when an application declares entity operations. |
78
- | `@pulse-compute/wasm-build-support` | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; it is installed transitively where required. |
79
- | `@pulse-compute/wasm-compiler` | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; use the pulse CLI. |
80
- | `@pulse-compute/wasm-guest-link` | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; it is an internal synchronized compiler dependency. |
81
- | `@pulse-compute/wasm-contracts` | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | Provider toolchain authors may install it for the versioned bootstrap contract; application projects receive it transitively. |
82
- | `@pulse-compute/wasm-host-runtime` | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; it is installed transitively. |
83
- | `@pulse-compute/wasm-library-kit` | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; it is installed transitively. |
84
- | `@pulse-compute/provider-node` | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; select provider: node through the CLI. |
85
- | `@pulse-compute/wasm-runtime-core-as` | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; it is installed transitively. |
86
- | `@pulse-compute/wasm-schema-json` | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; declare schemas in the selected .pulse/config.ts profile. |
69
+ | [`@pulse-compute/runtime`](https://www.npmjs.com/package/@pulse-compute/runtime) | Canonical application surface | [Guide](../packages/runtime.md) | Yes. Install it in every Pulse application. |
70
+ | [`@pulse-compute/pulse`](https://www.npmjs.com/package/@pulse-compute/pulse) | Canonical application surface | [Guide](../packages/pulse.md) | Yes. Install it in every conventional Pulse project. |
71
+ | [`@pulse-compute/cli`](https://www.npmjs.com/package/@pulse-compute/cli) | Canonical application surface | [Guide](../packages/cli.md) | Yes. Install the package globally or as a project development dependency. |
72
+ | [`@pulse-compute/provider-fastly`](https://www.npmjs.com/package/@pulse-compute/provider-fastly) | Supported provider/extension surface | [Guide](../packages/provider-fastly.md) | Yes, for Fastly projects. Node-only projects do not need to import it directly. |
73
+ | [`@pulse-compute/grip`](https://www.npmjs.com/package/@pulse-compute/grip) | Supported provider/extension surface | [Guide](../packages/grip.md) | Yes, only when the application uses GRIP/Fanout behavior. |
74
+ | [`@pulse-compute/assets`](https://www.npmjs.com/package/@pulse-compute/assets) | Supported provider/extension surface | [Guide](../packages/assets.md) | Yes, only when the application uses the assets capability. |
75
+ | [`@pulse-compute/crypto`](https://www.npmjs.com/package/@pulse-compute/crypto) | Supported provider/extension surface | [Guide](../packages/crypto.md) | Yes, when an application uses the crypto verification surface directly; JWT applications receive it transitively. |
76
+ | [`@pulse-compute/jwt`](https://www.npmjs.com/package/@pulse-compute/jwt) | Supported provider/extension surface | [Guide](../packages/jwt.md) | Yes, when an application verifies JWTs. |
77
+ | [`@pulse-compute/entities`](https://www.npmjs.com/package/@pulse-compute/entities) | Supported provider/extension surface | [Guide](../packages/entities.md) | Yes, when an application declares entity operations. |
78
+ | [`@pulse-compute/s3`](https://www.npmjs.com/package/@pulse-compute/s3) | Supported provider/extension surface | [Guide](../packages/s3.md) | Yes, when an application uses S3 object operations. |
79
+ | [`@pulse-compute/wasm-build-support`](https://www.npmjs.com/package/@pulse-compute/wasm-build-support) | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; it is installed transitively where required. |
80
+ | [`@pulse-compute/wasm-compiler`](https://www.npmjs.com/package/@pulse-compute/wasm-compiler) | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; use the pulse CLI. |
81
+ | [`@pulse-compute/wasm-guest-link`](https://www.npmjs.com/package/@pulse-compute/wasm-guest-link) | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; it is an internal synchronized compiler dependency. |
82
+ | [`@pulse-compute/wasm-contracts`](https://www.npmjs.com/package/@pulse-compute/wasm-contracts) | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | Provider toolchain authors may install it for the versioned bootstrap contract; application projects receive it transitively. |
83
+ | [`@pulse-compute/wasm-host-runtime`](https://www.npmjs.com/package/@pulse-compute/wasm-host-runtime) | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; it is installed transitively. |
84
+ | [`@pulse-compute/wasm-library-kit`](https://www.npmjs.com/package/@pulse-compute/wasm-library-kit) | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; it is installed transitively. |
85
+ | [`@pulse-compute/provider-node`](https://www.npmjs.com/package/@pulse-compute/provider-node) | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; select provider: node through the CLI. |
86
+ | [`@pulse-compute/wasm-runtime-core-as`](https://www.npmjs.com/package/@pulse-compute/wasm-runtime-core-as) | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; it is installed transitively. |
87
+ | [`@pulse-compute/wasm-schema-json`](https://www.npmjs.com/package/@pulse-compute/wasm-schema-json) | Implementation/transitive surface | [Guide](../packages/implementation-packages.md) | No for application projects; declare schemas in the selected .pulse/config.ts profile. |
87
88
 
88
89
  A package export that is absent from its manifest entry is not promoted to a supported application-author API merely because Node or npm can resolve it.
@@ -23,6 +23,12 @@ Every issue and pull request begins with one change class:
23
23
 
24
24
  The first four classes can normally move to implementation and human review. The last three require a separate human decision before implementation is treated as approved direction.
25
25
 
26
+ A direct human task can supply that decision. Record its scope in the PR and
27
+ continue the necessary implementation, tests, canonical documentation,
28
+ regeneration and PR preparation. Do not ask again for the same direction.
29
+ New semantics or authority outside that scope still require a new decision;
30
+ implementation approval does not authorize merge, publication or deployment.
31
+
26
32
  ## Declare affected boundaries
27
33
 
28
34
  Path rules conservatively infer protected boundaries, including the public API, effects and capabilities, continuations, lowerer trust, provider registry, configuration contract, compatibility surface, package publication, maintenance control plane, and release authority.
@@ -44,6 +50,12 @@ Human decision: not-required
44
50
 
45
51
  Use comma-separated boundary IDs, or `none`. Use `required` when scope, architecture, or release authority needs an explicit decision.
46
52
 
53
+ `Human decision: required` identifies the decision authority even when the human
54
+ has already supplied direction. Keep the field accurate and describe the supplied
55
+ direction and any outstanding question in prose. The classifier does not verify
56
+ or grant approval. A protected-path match alone does not require this field to be
57
+ `required` for a defect that preserves the existing contract.
58
+
47
59
  The `Maintainer scope / scope` check compares the declaration with changed paths. It has three outcomes:
48
60
 
49
61
  - **pass** — the declaration is present and consistent with the conservative path inference;
@@ -72,7 +84,7 @@ Run the classifier locally with a pull-request body saved to a file:
72
84
 
73
85
  ```bash
74
86
  node scripts/maintainer-scope.cjs \
75
- --base origin/main \
87
+ --base <actual-pr-base-ref> \
76
88
  --head HEAD \
77
89
  --declaration-file /tmp/pulse-pr-body.md \
78
90
  --check
@@ -39,6 +39,11 @@ node wasm/scripts/run-wasm-tests.cjs --task schema-codecs
39
39
  node wasm/scripts/run-wasm-tests.cjs --list
40
40
  ```
41
41
 
42
+ `wasm/test/suite/registry.cjs` owns the exact task and profile IDs. Agent
43
+ instructions, this guide, release acceptance commands and maintenance-policy
44
+ commands are checked against it by `npm run maintainer:check`. Use explicit
45
+ runner commands for named selections so stale references are detectable.
46
+
42
47
  The event mechanism has focused provider-neutral tasks, plus one project-level
43
48
  workflow task included in the `cli` and `release` profiles:
44
49
 
@@ -232,7 +237,7 @@ node wasm/scripts/run-wasm-tests.cjs --task deployment-candidates --no-report
232
237
 
233
238
  ## JWT and crypto proof seals
234
239
 
235
- The `1.0.0-beta.1` JWT/crypto packages build on the focused crypto seal,
240
+ The `1.0.0-beta.2` JWT/crypto packages build on the focused crypto seal,
236
241
  which replays the
237
242
  configuration, JavaScript runtime, Native guest-source, shared cross-target
238
243
  corpus, and real Fastly Compute proofs. First record the one phase-boundary
@@ -279,6 +284,47 @@ anything.
279
284
 
280
285
  The runner writes `wasm/.test-results/last-run.json` atomically after every task and stores one log per task. When a task fails, task-owned `*.log` files such as npm debug logs are copied into that run's durable diagnostics directory before the temporary root is removed. On timeout it captures a Node diagnostic report, terminates the entire task process group, and reports any surviving descendants. The directory is ephemeral and should contain only evidence produced from the current tree.
281
286
 
287
+ Before reporting a run as passed, verify process exit, terminal report status,
288
+ the requested/selected task set, completed task count and each task result. A
289
+ zero exit with a missing or incomplete expected report is unresolved. When
290
+ `--no-report` is used, retain the terminal task results and aggregate summary;
291
+ exit status alone does not establish coverage.
292
+
293
+ Record the source revision and working-tree state alongside the toolchain,
294
+ command and artifact identities. The runner's Git commit identity alone does not
295
+ identify uncommitted changes. Label those runs as development evidence and retain
296
+ the tested diff or tree digest. Preserve failures when retrying, identify why the
297
+ rerun was bounded, and report the retry separately. Focused, split or resumed
298
+ development runs do not substitute for the complete clean-candidate release
299
+ replay or permit combining reports from different source trees.
300
+
301
+ On an interruption or handoff, record the branch, base/head, uncommitted work,
302
+ report/artifact paths, completed and running checks, blockers and the next action.
303
+ A task handoff must distinguish implemented, validated, pushed and merged work.
304
+
305
+ ## Provider evidence boundaries
306
+
307
+ | Evidence | Establishes | Does not establish |
308
+ | --- | --- | --- |
309
+ | Injected host or ABI fixture | Behavior under the modeled host outcomes | Real engine or deployed service behavior |
310
+ | Fastly CLI/Viceroy execution | The identified artifact ran on the identified local engine | Deployed Fastly behavior |
311
+ | Standalone live SDK probe | The tested service cases through that probe | Pulse package acceptance or untested concurrent/cross-location behavior |
312
+ | Deployed Pulse acceptance | The identified Pulse artifact passed the bounded deployed corpus | Exhaustive consistency or guarantees outside that corpus |
313
+
314
+ Report tool versions, artifact identity, execution/deployment identity where
315
+ applicable, corpus scope and pass/fail/inconclusive status separately. Executing
316
+ a real engine is not itself a passing semantic result. A caller-supplied Wasm
317
+ hash is not deployed binary attestation.
318
+
319
+ For conditional KV, the Fastly JavaScript SDK is incomplete capability mapping,
320
+ not semantic canon or an acceptance gate for other targets. Keep provider docs,
321
+ wire observations and executable behavior distinguishable when they disagree.
322
+ Retain the discrepancy and the unchanged Pulse assertion; do not compensate with
323
+ hidden retries, non-atomic prechecks or weaker expected results. Substituting one
324
+ kind of evidence for a required gate needs an explicit human-directed acceptance
325
+ policy change. See [conditional KV acceptance](./release-acceptance.md#conditional-kv-acceptance)
326
+ for the currently unresolved gates.
327
+
282
328
  ## Redundancy policy
283
329
 
284
330
  - Add a task once to `wasm/test/suite/registry.cjs`; do not add a package script per test.
@@ -2,28 +2,29 @@
2
2
 
3
3
  <!-- Generated by wasm/scripts/sync-reference-docs.cjs. Edit the source catalog, not this file. -->
4
4
 
5
- Pulse 1.0.0-beta.1 publishes one synchronized 18-package release set. Publication does not make every package an application-author SDK: the support tier and listed entry points define the release promise.
6
-
7
- | Package | Support tier | Install directly | Release promise |
8
- |---|---|---:|---|
9
- | [`@pulse-compute/runtime`](./runtime.md) | Canonical application surface | Yes | Supported application authoring and execution contract. |
10
- | [`@pulse-compute/pulse`](./pulse.md) | Canonical application surface | Yes | Supported conventional application, project-configuration, and schema-authoring contract. |
11
- | [`@pulse-compute/cli`](./cli.md) | Canonical application surface | Yes | Supported Beta workflow and project-configuration contract. |
12
- | [`@pulse-compute/provider-fastly`](./provider-fastly.md) | Supported provider/extension surface | Yes | The listed entry points are supported for the Beta; all other exported subpaths are implementation-only. |
13
- | [`@pulse-compute/grip`](./grip.md) | Supported provider/extension surface | Yes | The package root has bounded JavaScript and Native HTTP-framing realization plus configured Node/Fastly broadcast; /pulsewasm remains compatibility-only. |
14
- | [`@pulse-compute/assets`](./assets.md) | Supported provider/extension surface | Yes | The package root is the supported JavaScript API and canonical Native authoring surface; /pulsewasm remains a compatibility subpath, while manifest/compiler subpaths are toolchain integration. |
15
- | [`@pulse-compute/crypto`](./crypto.md) | Supported provider/extension surface | Yes | The package root is the supported bounded verification contract; realization and Native integration subpaths remain toolchain-only. |
16
- | [`@pulse-compute/jwt`](./jwt.md) | Supported provider/extension surface | Yes | The package root is the supported provider-neutral verification contract; provider and compiler integration subpaths are not application APIs. |
17
- | [`@pulse-compute/entities`](./entities.md) | Supported provider/extension surface | Yes | The package root and first-party JSON-RPC adapter are supported Beta contracts; compiler integration subpaths remain toolchain-only. |
18
- | [`@pulse-compute/wasm-build-support`](./implementation-packages.md) | Implementation/transitive surface | No | Internal release-set interface; exported modules may change with compiler implementation needs. |
19
- | [`@pulse-compute/wasm-compiler`](./implementation-packages.md) | Implementation/transitive surface | No | Internal compiler interface; no application-author compatibility guarantee. |
20
- | [`@pulse-compute/wasm-guest-link`](./implementation-packages.md) | Implementation/transitive surface | No | Internal first-party prebuilt guest-link interface synchronized with the compiler; no application-author or third-party guest compatibility guarantee. |
21
- | [`@pulse-compute/wasm-contracts`](./implementation-packages.md) | Implementation/transitive surface | No | The provider toolchain contract is versioned and supported for the Beta; other protocol and proof interfaces remain internal. |
22
- | [`@pulse-compute/wasm-host-runtime`](./implementation-packages.md) | Implementation/transitive surface | No | Internal compiler/runtime interface synchronized with this release set. |
23
- | [`@pulse-compute/wasm-library-kit`](./implementation-packages.md) | Implementation/transitive surface | No | Internal package-lowering interface synchronized with this release set. |
24
- | [`@pulse-compute/provider-node`](./implementation-packages.md) | Implementation/transitive surface | No | The listed built-in toolchain entry is synchronized with the Beta bootstrap contract; other canonical Node provider interfaces remain internal. |
25
- | [`@pulse-compute/wasm-runtime-core-as`](./implementation-packages.md) | Implementation/transitive surface | No | Internal code-generation interface synchronized with this release set. |
26
- | [`@pulse-compute/wasm-schema-json`](./implementation-packages.md) | Implementation/transitive surface | No | Internal schema compiler interface synchronized with this release set. |
5
+ Pulse 1.0.0-beta.2 publishes one synchronized 19-package release set. Publication does not make every package an application-author SDK: the support tier and listed entry points define the release promise.
6
+
7
+ | Package on npm | Guide | Support tier | Install directly | Release promise |
8
+ |---|---|---|---:|---|
9
+ | [`@pulse-compute/runtime`](https://www.npmjs.com/package/@pulse-compute/runtime) | [Guide](./runtime.md) | Canonical application surface | Yes | Supported application authoring and execution contract. |
10
+ | [`@pulse-compute/pulse`](https://www.npmjs.com/package/@pulse-compute/pulse) | [Guide](./pulse.md) | Canonical application surface | Yes | Supported conventional application, project-configuration, and schema-authoring contract. |
11
+ | [`@pulse-compute/cli`](https://www.npmjs.com/package/@pulse-compute/cli) | [Guide](./cli.md) | Canonical application surface | Yes | Supported Beta workflow and project-configuration contract. |
12
+ | [`@pulse-compute/provider-fastly`](https://www.npmjs.com/package/@pulse-compute/provider-fastly) | [Guide](./provider-fastly.md) | Supported provider/extension surface | Yes | The listed entry points are supported for the Beta; all other exported subpaths are implementation-only. |
13
+ | [`@pulse-compute/grip`](https://www.npmjs.com/package/@pulse-compute/grip) | [Guide](./grip.md) | Supported provider/extension surface | Yes | The package root has bounded JavaScript and Native HTTP-framing realization plus configured Node/Fastly broadcast; /pulsewasm remains compatibility-only. |
14
+ | [`@pulse-compute/assets`](https://www.npmjs.com/package/@pulse-compute/assets) | [Guide](./assets.md) | Supported provider/extension surface | Yes | The package root is the supported JavaScript API and canonical Native authoring surface; /pulsewasm remains a compatibility subpath, while manifest/compiler subpaths are toolchain integration. |
15
+ | [`@pulse-compute/crypto`](https://www.npmjs.com/package/@pulse-compute/crypto) | [Guide](./crypto.md) | Supported provider/extension surface | Yes | The package root is the supported bounded verification contract; realization and Native integration subpaths remain toolchain-only. |
16
+ | [`@pulse-compute/jwt`](https://www.npmjs.com/package/@pulse-compute/jwt) | [Guide](./jwt.md) | Supported provider/extension surface | Yes | The package root is the supported provider-neutral verification contract; provider and compiler integration subpaths are not application APIs. |
17
+ | [`@pulse-compute/entities`](https://www.npmjs.com/package/@pulse-compute/entities) | [Guide](./entities.md) | Supported provider/extension surface | Yes | The package root and first-party JSON-RPC adapter are supported Beta contracts; compiler integration subpaths remain toolchain-only. |
18
+ | [`@pulse-compute/s3`](https://www.npmjs.com/package/@pulse-compute/s3) | [Guide](./s3.md) | Supported provider/extension surface | Yes | The package root supports head, getText and putText on Node Native, Node JavaScript and Fastly Native. Fastly JavaScript is ineligible. Provider and lowering subpaths are toolchain-only; live origin acceptance is separate. |
19
+ | [`@pulse-compute/wasm-build-support`](https://www.npmjs.com/package/@pulse-compute/wasm-build-support) | [Guide](./implementation-packages.md) | Implementation/transitive surface | No | Internal release-set interface; exported modules may change with compiler implementation needs. |
20
+ | [`@pulse-compute/wasm-compiler`](https://www.npmjs.com/package/@pulse-compute/wasm-compiler) | [Guide](./implementation-packages.md) | Implementation/transitive surface | No | Internal compiler interface; no application-author compatibility guarantee. |
21
+ | [`@pulse-compute/wasm-guest-link`](https://www.npmjs.com/package/@pulse-compute/wasm-guest-link) | [Guide](./implementation-packages.md) | Implementation/transitive surface | No | Internal first-party prebuilt guest-link interface synchronized with the compiler; no application-author or third-party guest compatibility guarantee. |
22
+ | [`@pulse-compute/wasm-contracts`](https://www.npmjs.com/package/@pulse-compute/wasm-contracts) | [Guide](./implementation-packages.md) | Implementation/transitive surface | No | The provider toolchain contract is versioned and supported for the Beta; other protocol and proof interfaces remain internal. |
23
+ | [`@pulse-compute/wasm-host-runtime`](https://www.npmjs.com/package/@pulse-compute/wasm-host-runtime) | [Guide](./implementation-packages.md) | Implementation/transitive surface | No | Internal compiler/runtime interface synchronized with this release set. |
24
+ | [`@pulse-compute/wasm-library-kit`](https://www.npmjs.com/package/@pulse-compute/wasm-library-kit) | [Guide](./implementation-packages.md) | Implementation/transitive surface | No | Internal package-lowering interface synchronized with this release set. |
25
+ | [`@pulse-compute/provider-node`](https://www.npmjs.com/package/@pulse-compute/provider-node) | [Guide](./implementation-packages.md) | Implementation/transitive surface | No | The listed built-in toolchain entry is synchronized with the Beta bootstrap contract; other canonical Node provider interfaces remain internal. |
26
+ | [`@pulse-compute/wasm-runtime-core-as`](https://www.npmjs.com/package/@pulse-compute/wasm-runtime-core-as) | [Guide](./implementation-packages.md) | Implementation/transitive surface | No | Internal code-generation interface synchronized with this release set. |
27
+ | [`@pulse-compute/wasm-schema-json`](https://www.npmjs.com/package/@pulse-compute/wasm-schema-json) | [Guide](./implementation-packages.md) | Implementation/transitive surface | No | Internal schema compiler interface synchronized with this release set. |
27
28
 
28
29
  ## Tier definitions
29
30
 
@@ -43,9 +44,9 @@ Installable as part of the synchronized release set, without an application-auth
43
44
 
44
45
  Every packed README begins with a generated status block covering audience, direct-install guidance, supported entry points, and stability. An export that is not listed in that block is not automatically a supported application-author entry point.
45
46
 
46
- ## Extension and provider boundary in 1.0.0-beta.1
47
+ ## Extension and provider boundary in 1.0.0-beta.2
47
48
 
48
- Pulse supports the documented package-owned assets and GRIP facades and the documented Fastly provider entry points. Their implementation demonstrates the internal contract, but `1.0.0-beta.1` does **not** expose a general third-party plugin registry:
49
+ Pulse supports the documented package-owned assets and GRIP facades and the documented Fastly provider entry points. Their implementation demonstrates the internal contract, but `1.0.0-beta.2` does **not** expose a general third-party plugin registry:
49
50
 
50
51
  - lowerer manifests are accepted only from trusted first-party release packages;
51
52
  - arbitrary external lowerer discovery and execution are not supported;
@@ -7,7 +7,7 @@ The package root exposes the complete JavaScript asset implementation—local fi
7
7
  ## Install
8
8
 
9
9
  ```bash
10
- npm install @pulse-compute/assets@1.0.0-beta.1
10
+ npm install @pulse-compute/assets@1.0.0-beta.2
11
11
  ```
12
12
 
13
13
  ## Portable lookup surface
@@ -4,7 +4,7 @@
4
4
  verification for Pulse applications and first-party capability packages.
5
5
 
6
6
  ```bash
7
- npm install @pulse-compute/crypto@1.0.0-beta.1
7
+ npm install @pulse-compute/crypto@1.0.0-beta.2
8
8
  ```
9
9
 
10
10
  ## Verification surface
@@ -58,6 +58,13 @@ realization. Target probing and automatic fallback are prohibited.
58
58
 
59
59
  ## Boundary
60
60
 
61
+ Native capability packages can also select `SHA-256` and `HMAC-SHA256` for
62
+ internal byte output. Their exact `guest-source:pulse-hmac-as` realization uses
63
+ 32-byte output, at most 32 KiB of data and 8 KiB of HMAC key material. Crypto owns
64
+ a reusable, wiped host staging frame. These operations are separate from JWT's
65
+ 32-byte minimum HMAC verification key; the application verification API retains
66
+ its existing limits. JavaScript byte-output realization is not implemented yet.
67
+
61
68
  The package root is the supported application contract. Native integration,
62
69
  guest provenance, and realization records are toolchain-owned surfaces. JWT
63
70
  owns compact-JWS parsing, key selection, and claims semantics; this package
@@ -4,7 +4,7 @@
4
4
  operations through the first-party JSON-RPC adapter.
5
5
 
6
6
  ```bash
7
- npm install @pulse-compute/entities@1.0.0-beta.1
7
+ npm install @pulse-compute/entities@1.0.0-beta.2
8
8
  ```
9
9
 
10
10
  ## Declare an entity router
@@ -5,7 +5,7 @@
5
5
  ## Install
6
6
 
7
7
  ```bash
8
- npm install @pulse-compute/grip@1.0.0-beta.1
8
+ npm install @pulse-compute/grip@1.0.0-beta.2
9
9
  ```
10
10
 
11
11
  ## Package-root API
@@ -4,12 +4,13 @@
4
4
 
5
5
  These packages are synchronized parts of the release set for compiler, provider, runtime, and package-lowering maintainers. They are not application-author SDKs.
6
6
 
7
- The package status and supported entry-point lists below come from the synchronized Pulse 1.0.0-beta.1 release policy.
7
+ The package status and supported entry-point lists below come from the synchronized Pulse 1.0.0-beta.2 release policy.
8
8
 
9
9
  ## `@pulse-compute/wasm-build-support`
10
10
 
11
11
  Pulse release-set and compiler maintainers.
12
12
 
13
+ - **npm:** [`@pulse-compute/wasm-build-support`](https://www.npmjs.com/package/@pulse-compute/wasm-build-support)
13
14
  - **Install directly:** No for application projects; it is installed transitively where required.
14
15
  - **Stability:** Internal release-set interface; exported modules may change with compiler implementation needs.
15
16
 
@@ -21,6 +22,7 @@ Pulse release-set and compiler maintainers.
21
22
 
22
23
  Pulse compiler and release maintainers.
23
24
 
25
+ - **npm:** [`@pulse-compute/wasm-compiler`](https://www.npmjs.com/package/@pulse-compute/wasm-compiler)
24
26
  - **Install directly:** No for application projects; use the pulse CLI.
25
27
  - **Stability:** Internal compiler interface; no application-author compatibility guarantee.
26
28
  - **Canonical replacement:** `@pulse-compute/cli`
@@ -33,6 +35,7 @@ Pulse compiler and release maintainers.
33
35
 
34
36
  Pulse compiler, release, and first-party guest-unit maintainers.
35
37
 
38
+ - **npm:** [`@pulse-compute/wasm-guest-link`](https://www.npmjs.com/package/@pulse-compute/wasm-guest-link)
36
39
  - **Install directly:** No for application projects; it is an internal synchronized compiler dependency.
37
40
  - **Stability:** Internal first-party prebuilt guest-link interface synchronized with the compiler; no application-author or third-party guest compatibility guarantee.
38
41
 
@@ -44,6 +47,7 @@ Pulse compiler, release, and first-party guest-unit maintainers.
44
47
 
45
48
  Pulse compiler, runtime, provider, and package-lowering maintainers.
46
49
 
50
+ - **npm:** [`@pulse-compute/wasm-contracts`](https://www.npmjs.com/package/@pulse-compute/wasm-contracts)
47
51
  - **Install directly:** Provider toolchain authors may install it for the versioned bootstrap contract; application projects receive it transitively.
48
52
  - **Stability:** The provider toolchain contract is versioned and supported for the Beta; other protocol and proof interfaces remain internal.
49
53
 
@@ -55,6 +59,7 @@ Pulse compiler, runtime, provider, and package-lowering maintainers.
55
59
 
56
60
  Pulse host-runtime and provider maintainers.
57
61
 
62
+ - **npm:** [`@pulse-compute/wasm-host-runtime`](https://www.npmjs.com/package/@pulse-compute/wasm-host-runtime)
58
63
  - **Install directly:** No for application projects; it is installed transitively.
59
64
  - **Stability:** Internal compiler/runtime interface synchronized with this release set.
60
65
 
@@ -66,6 +71,7 @@ Pulse host-runtime and provider maintainers.
66
71
 
67
72
  Pulse package-lowering and compiler maintainers.
68
73
 
74
+ - **npm:** [`@pulse-compute/wasm-library-kit`](https://www.npmjs.com/package/@pulse-compute/wasm-library-kit)
69
75
  - **Install directly:** No for application projects; it is installed transitively.
70
76
  - **Stability:** Internal package-lowering interface synchronized with this release set.
71
77
 
@@ -77,6 +83,7 @@ Pulse package-lowering and compiler maintainers.
77
83
 
78
84
  Pulse canonical Node provider and compiler maintainers.
79
85
 
86
+ - **npm:** [`@pulse-compute/provider-node`](https://www.npmjs.com/package/@pulse-compute/provider-node)
80
87
  - **Install directly:** No for application projects; select provider: node through the CLI.
81
88
  - **Stability:** The listed built-in toolchain entry is synchronized with the Beta bootstrap contract; other canonical Node provider interfaces remain internal.
82
89
  - **Canonical replacement:** `provider: 'node' through @pulse-compute/cli`
@@ -89,6 +96,7 @@ Pulse canonical Node provider and compiler maintainers.
89
96
 
90
97
  Pulse AssemblyScript runtime-core and compiler maintainers.
91
98
 
99
+ - **npm:** [`@pulse-compute/wasm-runtime-core-as`](https://www.npmjs.com/package/@pulse-compute/wasm-runtime-core-as)
92
100
  - **Install directly:** No for application projects; it is installed transitively.
93
101
  - **Stability:** Internal code-generation interface synchronized with this release set.
94
102
 
@@ -100,6 +108,7 @@ Pulse AssemblyScript runtime-core and compiler maintainers.
100
108
 
101
109
  Pulse schema compiler and runtime maintainers.
102
110
 
111
+ - **npm:** [`@pulse-compute/wasm-schema-json`](https://www.npmjs.com/package/@pulse-compute/wasm-schema-json)
103
112
  - **Install directly:** No for application projects; declare schemas in the selected .pulse/config.ts profile.
104
113
  - **Stability:** Internal schema compiler interface synchronized with this release set.
105
114
  - **Canonical replacement:** `schemas in .pulse/config.ts through the Pulse project workflow`
@@ -4,7 +4,7 @@
4
4
  Pulse handlers.
5
5
 
6
6
  ```bash
7
- npm install @pulse-compute/jwt@1.0.0-beta.1
7
+ npm install @pulse-compute/jwt@1.0.0-beta.2
8
8
  ```
9
9
 
10
10
  ## Verify a bearer token