@pulse-compute/cli 1.0.0-beta.2 → 1.0.0-beta.3
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/API.md +1 -1
- package/CHANGELOG.md +6 -0
- package/README.md +3 -3
- package/cli-spec.json +1 -1
- package/docs/README.md +1 -1
- package/docs/architecture/current-contracts.md +14 -2
- package/docs/concepts/compilation-and-lowering.md +1 -1
- package/docs/concepts/contracts-and-providers.md +2 -2
- package/docs/concepts/package-owned-lowering.md +1 -1
- package/docs/concepts/targets-and-hosts.md +2 -2
- package/docs/contributing/adding-core-provider.md +1 -1
- package/docs/contributing/adding-first-party-lowerer.md +1 -1
- package/docs/contributing/package-lowerer-contract.md +2 -2
- package/docs/maintainers/documentation-deployment.md +4 -4
- package/docs/maintainers/documentation-versioning.md +1 -1
- package/docs/maintainers/maintenance-policy.json +1 -1
- package/docs/maintainers/maintenance-policy.md +1 -1
- package/docs/maintainers/npm-publishing.md +34 -6
- package/docs/maintainers/plugin-readiness.json +1 -1
- package/docs/maintainers/plugin-readiness.md +1 -1
- package/docs/maintainers/release-acceptance.md +3 -3
- package/docs/maintainers/release-manifest.md +3 -3
- package/docs/maintainers/testing.md +1 -1
- package/docs/packages/README.md +3 -3
- package/docs/packages/assets.md +1 -1
- package/docs/packages/crypto.md +1 -1
- package/docs/packages/entities.md +1 -1
- package/docs/packages/grip.md +1 -1
- package/docs/packages/implementation-packages.md +1 -1
- package/docs/packages/jwt.md +1 -1
- package/docs/packages/provider-fastly.md +1 -1
- package/docs/packages/pulse.md +1 -1
- package/docs/packages/runtime.md +1 -1
- package/docs/packages/s3.md +1 -1
- package/docs/preview-scope.md +1 -1
- package/docs/reference/cli-spec.json +1 -1
- package/docs/reference/cli.md +1 -1
- package/docs/reference/compatibility-matrix.md +1 -1
- package/docs/reference/diagnostics.md +5 -5
- package/docs/reference/documentation-versions.json +11 -3
- package/docs/reference/project-config.md +1 -1
- package/docs/reference/project-config.schema.json +2 -2
- package/docs/reference/release-manifest.json +24 -24
- package/documentation-site.json +1 -1
- package/documentation-versions.json +11 -3
- package/examples/01-hello-json/README.md +1 -1
- package/examples/01-hello-json/package.json +2 -2
- package/examples/02-request-schema/README.md +1 -1
- package/examples/02-request-schema/package.json +2 -2
- package/examples/03-fetch-composition/README.md +1 -1
- package/examples/03-fetch-composition/package.json +2 -2
- package/examples/05-fastly-capabilities/README.md +1 -1
- package/examples/05-fastly-capabilities/package.json +4 -4
- package/examples/07-opaque-proxy/README.md +1 -1
- package/examples/07-opaque-proxy/package.json +3 -3
- package/examples/09-router-lowering/README.md +1 -1
- package/examples/09-router-lowering/package.json +3 -3
- package/examples/10-entities-tools/package.json +3 -3
- package/examples/11-events/README.md +1 -1
- package/examples/11-events/package.json +2 -2
- package/examples/12-mcp-proxy/README.md +1 -1
- package/examples/12-mcp-proxy/package.json +2 -2
- package/examples/13-jwt-es256/README.md +1 -1
- package/examples/13-jwt-es256/package.json +3 -3
- package/package.json +7 -7
- package/project-config.schema.json +2 -2
- package/release-manifest.json +24 -24
- package/src/documentation.js +1 -1
- package/src/project-config-schema.js +1 -1
- package/src/project-execution.js +42 -24
package/API.md
CHANGED
|
@@ -487,7 +487,7 @@ Older `/pulsewasm` imports are compatibility-only and are isolated in the
|
|
|
487
487
|
|
|
488
488
|
## Entities API
|
|
489
489
|
|
|
490
|
-
`@pulse-compute/entities` is part of the synchronized `1.0.0-beta.
|
|
490
|
+
`@pulse-compute/entities` is part of the synchronized `1.0.0-beta.3` package
|
|
491
491
|
set. The application surface has two runtime values:
|
|
492
492
|
|
|
493
493
|
```ts
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Pulse follows semantic versioning for public releases. The repository begins its public history with the `1.0.0-beta.1` prerelease.
|
|
4
4
|
|
|
5
|
+
## 1.0.0-beta.3 — Beta (2026-09-14)
|
|
6
|
+
|
|
7
|
+
- Fix CLI storage execution on Node Native, Node JavaScript and the Fastly Native local fixture host, including S3 response streams, bindings and conditional KV.
|
|
8
|
+
- Keep the last working Native application available when a development reload fails.
|
|
9
|
+
- Allow bounded npm registry propagation time and publish future releases directly under the `latest` npm tag while retaining the Beta release label.
|
|
10
|
+
|
|
5
11
|
## 1.0.0-beta.2 — Beta (2026-09-13)
|
|
6
12
|
|
|
7
13
|
This candidate synchronizes the 19-package release catalog and prepares the
|
package/README.md
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
> **Supported entry points:** `pulse binary`, `@pulse-compute/cli`, `@pulse-compute/cli/workflow`, `@pulse-compute/cli/project-config`, `@pulse-compute/cli/project-execution`, `@pulse-compute/cli/project-config-schema`, `@pulse-compute/cli/diagnostics`, `@pulse-compute/cli/project-config.schema.json`, `@pulse-compute/cli/cli-spec.json`, `@pulse-compute/cli/release-manifest.json`, `@pulse-compute/cli/documentation-versions.json`, `@pulse-compute/cli/documentation-site.json`<br>
|
|
8
8
|
> **Stability:** Supported Beta workflow and project-configuration contract.<br>
|
|
9
9
|
> **npm:** [`@pulse-compute/cli`](https://www.npmjs.com/package/@pulse-compute/cli)<br>
|
|
10
|
-
> **Canonical documentation:** [Package guide](https://pulsecompute.io/v1.0.0-beta.
|
|
10
|
+
> **Canonical documentation:** [Package guide](https://pulsecompute.io/v1.0.0-beta.3/packages/cli/)
|
|
11
11
|
>
|
|
12
|
-
> This release-status block is generated from the synchronized `Pulse 1.0.0-beta.
|
|
12
|
+
> This release-status block is generated from the synchronized `Pulse 1.0.0-beta.3` package policy.
|
|
13
13
|
<!-- pulse-package-status:end -->
|
|
14
14
|
|
|
15
15
|
The public CLI and conventional `@pulse-compute/pulse` application root are
|
|
16
|
-
both part of the synchronized `1.0.0-beta.
|
|
16
|
+
both part of the synchronized `1.0.0-beta.3` release set. Validate the generated
|
|
17
17
|
workflow from the repository or the exact packed acceptance set:
|
|
18
18
|
|
|
19
19
|
```bash
|
package/cli-spec.json
CHANGED
package/docs/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Pulse documentation
|
|
2
2
|
|
|
3
|
-
Pulse documentation is organized in layers so you can stop when you have enough detail. The `1.0.0-beta.
|
|
3
|
+
Pulse documentation is organized in layers so you can stop when you have enough detail. The `1.0.0-beta.3` candidate uses async-shaped managed handlers, trusted Pulse effects, a conventional `.pulse/config.ts` workspace, and the `pulse` CLI. The synchronized 18-package release catalog remains the authority for npm availability and support tiers.
|
|
4
4
|
|
|
5
5
|
## 1. Start and ship a first project
|
|
6
6
|
|
|
@@ -238,6 +238,18 @@ guest-link packaging authorization have already been checked. It does not
|
|
|
238
238
|
contain a TypeScript AST/service, compiler cache, builder, mutable manifest,
|
|
239
239
|
compiled-program object, raw target option bag, or alternate target.
|
|
240
240
|
|
|
241
|
+
CLI Native test/dev execution that needs guest crypto or conditional KV uses
|
|
242
|
+
an optional provider-owned `prepareNativeExecution` driver hook. It receives the
|
|
243
|
+
same immutable, validated invocation with action `execute-native` and returns a
|
|
244
|
+
local request executor. The CLI never substitutes another provider's host.
|
|
245
|
+
Node executes the compiled neutral Wasm with its provider adapter. Fastly
|
|
246
|
+
realizes its own Native artifact and runs the existing fixture ABI, including
|
|
247
|
+
the conditional-KV authority. Its result identifies the artifact hash and fixture
|
|
248
|
+
kind; unavailable effect telemetry is reported as such. This does not establish
|
|
249
|
+
Viceroy or deployed Fastly acceptance. S3 fixtures preserve raw response streams
|
|
250
|
+
inside the provider transport while ordinary fetch retains its opaque response
|
|
251
|
+
contract. Dev retains a last-good Native executor if recompilation fails.
|
|
252
|
+
|
|
241
253
|
Native realization and JavaScript source packaging are normalized into
|
|
242
254
|
versioned, data-only results before the CLI consumes them. Provider packaging
|
|
243
255
|
must report the same artifact identity authorized by the final guest audit.
|
|
@@ -335,7 +347,7 @@ without moving package semantics into the compiler or widening the trust model.
|
|
|
335
347
|
|
|
336
348
|
## JWT verification
|
|
337
349
|
|
|
338
|
-
The synchronized `1.0.0-beta.
|
|
350
|
+
The synchronized `1.0.0-beta.3` JWT/crypto packages compose
|
|
339
351
|
`@pulse-compute/jwt` over the lower-level, provider-neutral verification
|
|
340
352
|
contract owned by `@pulse-compute/crypto`. The executable algorithm set is
|
|
341
353
|
HS256 and ES256. Crypto verifies a MAC or signature over caller-supplied bytes
|
|
@@ -416,7 +428,7 @@ publish, promote, deploy, or activate the release.
|
|
|
416
428
|
|
|
417
429
|
## Support, release, and authority
|
|
418
430
|
|
|
419
|
-
Pulse `1.0.0-beta.
|
|
431
|
+
Pulse `1.0.0-beta.3` is a Beta intended for the `beta` channel.
|
|
420
432
|
Documented, evidence-backed behavior is intentional, but public surfaces may
|
|
421
433
|
change deliberately before a compatibility-bearing release. Unsupported
|
|
422
434
|
behavior fails explicitly, historical and implementation subpaths gain no
|
|
@@ -408,7 +408,7 @@ generic loader handles reachable-graph discovery and trusted invocation. Older
|
|
|
408
408
|
`/pulsewasm` imports are isolated in the
|
|
409
409
|
[compatibility migration guide](../guides/compatibility-imports.md).
|
|
410
410
|
|
|
411
|
-
In Pulse `1.0.0-beta.
|
|
411
|
+
In Pulse `1.0.0-beta.3`, package-owned builders must declare `compiler.trust: 'first-party'` and ship in the synchronized release set. This is an internal contributor mechanism, not a general third-party plugin API. See [Add a first-party package-owned lowerer](../contributing/adding-first-party-lowerer.md).
|
|
412
412
|
|
|
413
413
|
## Provider lowering is a second contract
|
|
414
414
|
|
|
@@ -38,7 +38,7 @@ GRIP uses the same split. `isWebSocket`, `subscribe`, and `handoff` are pure HTT
|
|
|
38
38
|
|
|
39
39
|
## Provider selection
|
|
40
40
|
|
|
41
|
-
Pulse `1.0.0-beta.
|
|
41
|
+
Pulse `1.0.0-beta.3` has three provider driver identifiers:
|
|
42
42
|
|
|
43
43
|
| Provider | Local execution | Deployable build | Purpose |
|
|
44
44
|
|---|---:|---:|---|
|
|
@@ -96,7 +96,7 @@ For Fastly, `pulse build` additionally emits a real Compute target. The explicit
|
|
|
96
96
|
|
|
97
97
|
## Current extension boundary
|
|
98
98
|
|
|
99
|
-
There is no automatic provider plugin registry in `1.0.0-beta.
|
|
99
|
+
There is no automatic provider plugin registry in `1.0.0-beta.3`. Configuration
|
|
100
100
|
selects a bare host ID, internal `none`, or an exact scoped project-installed
|
|
101
101
|
package name. Bare IDs resolve by the `@pulse-compute/provider-<id>` convention.
|
|
102
102
|
A package is loadable only when selected and when it exports the versioned
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Package-owned lowering lets a synchronized Pulse package extend the canonical compiler with narrow, statically recognized operations while keeping domain rules out of compiler core.
|
|
4
4
|
|
|
5
|
-
The synchronized `1.0.0-beta.
|
|
5
|
+
The synchronized `1.0.0-beta.3` release uses this pattern for Assets, GRIP,
|
|
6
6
|
JWT, and Entities.
|
|
7
7
|
It is a **trusted first-party synchronization mechanism**, not a public
|
|
8
8
|
registry that executes arbitrary npm compiler plugins.
|
|
@@ -16,7 +16,7 @@ require Native-compatible source; use `pulse build` for a JavaScript package.
|
|
|
16
16
|
|
|
17
17
|
## Current Beta targets
|
|
18
18
|
|
|
19
|
-
`1.0.0-beta.
|
|
19
|
+
`1.0.0-beta.3` exercises four explicit modes through one conformance corpus:
|
|
20
20
|
|
|
21
21
|
| Host | Target | Current release status | Build shape |
|
|
22
22
|
|---|---|---|---|
|
|
@@ -45,7 +45,7 @@ adapter, lifecycle, conformance evidence, and package claim.
|
|
|
45
45
|
The [ESP32 reference host](https://github.com/pulsecompute/pulse-esp32-host)
|
|
46
46
|
tests whether the event/effect/continuation model remains useful without a
|
|
47
47
|
JavaScript fallback, abundant memory, or an HTTP-centered lifecycle. It is a
|
|
48
|
-
boundary witness, not a `1.0.0-beta.
|
|
48
|
+
boundary witness, not a `1.0.0-beta.3` provider or compatibility promise. The
|
|
49
49
|
[architecture vision](../architecture/vision.md#esp32-as-a-boundary-witness)
|
|
50
50
|
describes the intended host-owned interrupt queue and non-reentrant Wasm entry.
|
|
51
51
|
|
|
@@ -75,7 +75,7 @@ Descriptors are normalized by the shared provider contract. A conceptual descrip
|
|
|
75
75
|
```js
|
|
76
76
|
const EXAMPLE_PROVIDER_DESCRIPTOR = createProviderDescriptor({
|
|
77
77
|
id: 'example',
|
|
78
|
-
providerVersion: '1.0.0-beta.
|
|
78
|
+
providerVersion: '1.0.0-beta.3',
|
|
79
79
|
package: '@pulse-compute/provider-example',
|
|
80
80
|
runtime: 'pulse.canonical-example-runtime.v1',
|
|
81
81
|
buildTarget: 'example-edge',
|
|
@@ -11,7 +11,7 @@ Start with [Pulse-aware package authoring](./pulse-aware-packages.md) to decide
|
|
|
11
11
|
whether the package needs Native lowering at all. Ordinary target-compatible
|
|
12
12
|
JavaScript packages do not require a compiler builder.
|
|
13
13
|
|
|
14
|
-
> **Scope and trust boundary:** Pulse `1.0.0-beta.
|
|
14
|
+
> **Scope and trust boundary:** Pulse `1.0.0-beta.3` executes package-owned compiler builders only when their manifest declares `compiler.trust: 'first-party'` and the package is part of the synchronized release set. This is a core-repository contributor workflow, **not an external plugin** interface or a supported third-party plugin API. An external package cannot self-register arbitrary compiler code.
|
|
15
15
|
|
|
16
16
|
A package-owned lowerer lets one release package define a narrow TypeScript facade and keep its domain-specific static validation outside compiler core. GRIP is the clearest current example; assets is the second implementation proving that the generic loader is not GRIP-specific.
|
|
17
17
|
|
|
@@ -8,7 +8,7 @@ pulse-doc-meta:end -->
|
|
|
8
8
|
# Package lowerer contract reference
|
|
9
9
|
|
|
10
10
|
This reference describes the internal first-party lowerer protocol used by the
|
|
11
|
-
synchronized `1.0.0-beta.
|
|
11
|
+
synchronized `1.0.0-beta.3` release. It documents current repository
|
|
12
12
|
interfaces; it is not a third-party plugin compatibility promise. Package
|
|
13
13
|
availability remains owned by the release catalog.
|
|
14
14
|
|
|
@@ -370,7 +370,7 @@ Package lowerer code must not choose `node.*`, `fastly.*`, backend names, store
|
|
|
370
370
|
|
|
371
371
|
## Compatibility status
|
|
372
372
|
|
|
373
|
-
This protocol is synchronized inside the `1.0.0-beta.
|
|
373
|
+
This protocol is synchronized inside the `1.0.0-beta.3` release set. It can change with compiler implementation needs. Only explicitly documented application facades carry the package support promise.
|
|
374
374
|
|
|
375
375
|
A public external lowerer API would require a new contract that addresses trust, sandboxing, provenance, protocol negotiation, resource limits, lifecycle support, and semver compatibility.
|
|
376
376
|
|
|
@@ -31,7 +31,7 @@ GitHub Pages deployment is no longer part of the repository workflow. The releas
|
|
|
31
31
|
|
|
32
32
|
## Object classes
|
|
33
33
|
|
|
34
|
-
The `1.0.0-beta.
|
|
34
|
+
The `1.0.0-beta.3` layout is:
|
|
35
35
|
|
|
36
36
|
```text
|
|
37
37
|
<bucket>/pulse/
|
|
@@ -41,8 +41,8 @@ The `1.0.0-beta.2` layout is:
|
|
|
41
41
|
versions.json mutable
|
|
42
42
|
site-manifest.json mutable
|
|
43
43
|
public-site-manifest.json mutable
|
|
44
|
-
v1.0.0-beta.
|
|
45
|
-
deployments/v1.0.0-beta.
|
|
44
|
+
v1.0.0-beta.3/** immutable
|
|
45
|
+
deployments/v1.0.0-beta.3.json immutable receipt
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
The exact-version tree is the archival release. Root and `latest` are convenience surfaces promoted only after exact-version verification and matching npm package verification.
|
|
@@ -72,7 +72,7 @@ npm run docs:deployment:prepare
|
|
|
72
72
|
npm run docs:deployment:verify
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
`.pulse-documentation-deployment/documentation-deployment-manifest.json` records every object key, local source, byte length, SHA-256, content type, cache class, mutability, source commit, public documentation route, and independent storage prefix. Its deterministic deployment receipt records the complete generated-site digest and the exact-version object inventory and tree digest for `deployments/v1.0.0-beta.
|
|
75
|
+
`.pulse-documentation-deployment/documentation-deployment-manifest.json` records every object key, local source, byte length, SHA-256, content type, cache class, mutability, source commit, public documentation route, and independent storage prefix. Its deterministic deployment receipt records the complete generated-site digest and the exact-version object inventory and tree digest for `deployments/v1.0.0-beta.3.json`. Candidate verification rejects any root or site file outside that sealed inventory.
|
|
76
76
|
|
|
77
77
|
A local adapter exercised by `npm run publication:check` proves:
|
|
78
78
|
|
|
@@ -26,7 +26,7 @@ The homepage and exact current documentation load the same assets under `/v<vers
|
|
|
26
26
|
The canonical URL for this release begins with:
|
|
27
27
|
|
|
28
28
|
```text
|
|
29
|
-
https://pulsecompute.io/v1.0.0-beta.
|
|
29
|
+
https://pulsecompute.io/v1.0.0-beta.3/
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
Diagnostics, package status blocks, and package metadata use exact-version URLs. This prevents a diagnostic emitted by an older CLI from silently opening instructions for a newer contract.
|
|
@@ -6,7 +6,7 @@ Pulse uses a machine-readable maintenance policy so repository automation and Co
|
|
|
6
6
|
|
|
7
7
|
- **Policy schema:** `pulse.maintenance-policy.v2`
|
|
8
8
|
- **Policy version:** `7`
|
|
9
|
-
- **Release:** `1.0.0-beta.
|
|
9
|
+
- **Release:** `1.0.0-beta.3`
|
|
10
10
|
- **Reviewed:** `2026-09-13`
|
|
11
11
|
- **Resident maintainer:** Codex
|
|
12
12
|
- **Merge authority:** human-only
|
|
@@ -29,7 +29,7 @@ The machine-readable publication contract is the `publication` object in `releas
|
|
|
29
29
|
Use the manifest-owned preparation policy instead of repository-wide version replacement:
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
pnpm release:prepare -- 1.0.0-beta.
|
|
32
|
+
pnpm release:prepare -- 1.0.0-beta.3 --channel beta --replace-unpublished
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
`--replace-unpublished` replaces the current candidate without inventing release history. After a version has actually shipped, use `--archive-current`; that mode requires the committed immutable documentation snapshot. The command updates only catalogued JSON, package, guest-metadata, and current-documentation owners, runs named generators, rejects newly changed paths outside its allowlist, and writes an ignored stale-version-token report for review.
|
|
@@ -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.
|
|
48
|
-
-f release_tag=v1.0.0-beta.
|
|
47
|
+
--ref v1.0.0-beta.3 \
|
|
48
|
+
-f release_tag=v1.0.0-beta.3 \
|
|
49
49
|
-f operation=audit
|
|
50
50
|
```
|
|
51
51
|
|
|
@@ -66,10 +66,24 @@ environment: npm-publish
|
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
The workflow publishes public packages directly under the dist-tag in the
|
|
69
|
-
release manifest
|
|
70
|
-
|
|
69
|
+
release manifest, now explicitly `latest` for future releases. The release
|
|
70
|
+
channel and prerelease version remain Beta; the npm tag determines what an
|
|
71
|
+
unqualified `npm install` selects. Release preparation preserves this tag
|
|
72
|
+
policy across version bumps. An explicitly configured channel tag remains
|
|
73
|
+
supported for a release intended for a separate preview stream.
|
|
74
|
+
|
|
75
|
+
The pinned npm CLI's trusted publishing does not support a separate
|
|
76
|
+
post-publication `npm dist-tag` update. Each successful `npm publish --tag latest`
|
|
77
|
+
therefore advances that package's default version as part of publication;
|
|
78
|
+
the historical `beta` alias is not also advanced. The package set is published
|
|
79
|
+
in dependency order, with the public CLI last, and promotion is not atomic
|
|
80
|
+
across packages. The protected script verifies the native GitHub tag ref
|
|
71
81
|
and SHA against the sealed candidate before the first publish.
|
|
72
82
|
|
|
83
|
+
This policy applies to future candidate source. Finish an already-started
|
|
84
|
+
release using its original tag, tooling, and sealed tarballs. Do not move that
|
|
85
|
+
tag or rebuild the same published version to adopt a new publication policy.
|
|
86
|
+
|
|
73
87
|
## One-time package bootstrap
|
|
74
88
|
|
|
75
89
|
An npm trusted publisher can be configured only after the package name exists under the intended owner. Before enabling production publication, run:
|
|
@@ -78,7 +92,7 @@ An npm trusted publisher can be configured only after the package name exists un
|
|
|
78
92
|
npm run release:audit-npm
|
|
79
93
|
```
|
|
80
94
|
|
|
81
|
-
The command derives every package name from the release manifest and writes a timestamped, manifest-digest-bound report to `.pulse-release-preflight/npm-catalog-audit.json`. That report is ignored source evidence: it never rewrites the canonical preflight policy and it performs no registry mutation.
|
|
95
|
+
The command derives every package name from the release manifest and writes a timestamped, manifest-digest-bound report to `.pulse-release-preflight/npm-catalog-audit.json`. That report is ignored source evidence: it never rewrites the canonical preflight policy and it performs no registry mutation. Every name must exist with the inert `0.0.0` version and `bootstrap` tag. The `latest` tag may be absent, point to that placeholder, or point to a version both present in the registry and listed in `release/documentation-versions.json`. This preserves existing releases during the next bootstrap audit. Missing versions and unknown release targets remain blocking; any remediation is an explicit human registry action.
|
|
82
96
|
|
|
83
97
|
Any missing package name requires a one-time human, 2FA-protected bootstrap publication through `scripts/npm_bootstrap.sh <package-name>`. After all names exist:
|
|
84
98
|
|
|
@@ -129,6 +143,20 @@ version present with different integrity
|
|
|
129
143
|
|
|
130
144
|
This is resumable after a partially completed synchronized-package release without pretending npm publication is transactional. A same-version integrity mismatch cannot be repaired by overwriting the registry artifact; the human release authority must investigate and choose a new version if necessary.
|
|
131
145
|
|
|
146
|
+
npm can accept an upload while the version is still being processed. After
|
|
147
|
+
each successful publish, the script polls for up to ten minutes for both the
|
|
148
|
+
sealed integrity and configured tag, using fresh registry reads and intervals
|
|
149
|
+
capped at 30 seconds. Progress goes to stderr and identifies the package,
|
|
150
|
+
attempt, elapsed time, and whether the version or tag is still pending.
|
|
151
|
+
An observed integrity conflict stops immediately.
|
|
152
|
+
|
|
153
|
+
If processing exceeds the deadline, wait for registry visibility and use
|
|
154
|
+
**Re-run failed jobs** on the same workflow run. Keep the release tag and sealed
|
|
155
|
+
candidate unchanged: matching published packages are skipped, and publication
|
|
156
|
+
continues with the remaining packages. No new seal is required for that retry.
|
|
157
|
+
If source changes and a tag is moved before any publication, start a new workflow
|
|
158
|
+
dispatch instead; GitHub reruns retain the original event's commit SHA.
|
|
159
|
+
|
|
132
160
|
## Verification
|
|
133
161
|
|
|
134
162
|
The protected publish job verifies each package immediately. A separate unprivileged job then confirms:
|
|
@@ -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.
|
|
7
|
+
Pulse 1.0.0-beta.3 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.
|
|
@@ -8,7 +8,7 @@ pulse-doc-meta:end -->
|
|
|
8
8
|
# Release packages and clean-consumer acceptance
|
|
9
9
|
|
|
10
10
|
The current Beta candidate contains nineteen publishable packages
|
|
11
|
-
synchronized at version `1.0.0-beta.
|
|
11
|
+
synchronized at version `1.0.0-beta.3`. The product-facing packages are:
|
|
12
12
|
|
|
13
13
|
```text
|
|
14
14
|
@pulse-compute/pulse
|
|
@@ -271,7 +271,7 @@ The release owns a versioned hosted-documentation gate:
|
|
|
271
271
|
pnpm docs:site:check
|
|
272
272
|
```
|
|
273
273
|
|
|
274
|
-
The check builds the exact `v1.0.0-beta.
|
|
274
|
+
The check builds the exact `v1.0.0-beta.3` 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.
|
|
275
275
|
|
|
276
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.
|
|
277
277
|
|
|
@@ -279,7 +279,7 @@ Production delivery uses the manually dispatched **Documentation deployment** wo
|
|
|
279
279
|
|
|
280
280
|
```text
|
|
281
281
|
build and seal
|
|
282
|
-
→ upload/verify v1.0.0-beta.
|
|
282
|
+
→ upload/verify v1.0.0-beta.3 and its receipt immutably
|
|
283
283
|
→ verify all matching npm packages and configured dist-tags
|
|
284
284
|
→ promote root and latest
|
|
285
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.
|
|
10
|
-
- **Version:** `1.0.0-beta.
|
|
9
|
+
- **Candidate:** Pulse 1.0.0-beta.3 — Beta
|
|
10
|
+
- **Version:** `1.0.0-beta.3`
|
|
11
11
|
- **Activation stage:** `documentation-release`
|
|
12
12
|
- **License:** `Apache-2.0`
|
|
13
13
|
- **Supported Node:** `^22.14.0 || ^24.0.0`
|
|
@@ -16,7 +16,7 @@
|
|
|
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.
|
|
19
|
+
- **Exact documentation:** `https://pulsecompute.io/v1.0.0-beta.3/`
|
|
20
20
|
- **Runtime targets:** 3
|
|
21
21
|
- **Packages:** 19
|
|
22
22
|
|
|
@@ -237,7 +237,7 @@ node wasm/scripts/run-wasm-tests.cjs --task deployment-candidates --no-report
|
|
|
237
237
|
|
|
238
238
|
## JWT and crypto proof seals
|
|
239
239
|
|
|
240
|
-
The `1.0.0-beta.
|
|
240
|
+
The `1.0.0-beta.3` JWT/crypto packages build on the focused crypto seal,
|
|
241
241
|
which replays the
|
|
242
242
|
configuration, JavaScript runtime, Native guest-source, shared cross-target
|
|
243
243
|
corpus, and real Fastly Compute proofs. First record the one phase-boundary
|
package/docs/packages/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
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.
|
|
5
|
+
Pulse 1.0.0-beta.3 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
6
|
|
|
7
7
|
| Package on npm | Guide | Support tier | Install directly | Release promise |
|
|
8
8
|
|---|---|---|---:|---|
|
|
@@ -44,9 +44,9 @@ Installable as part of the synchronized release set, without an application-auth
|
|
|
44
44
|
|
|
45
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.
|
|
46
46
|
|
|
47
|
-
## Extension and provider boundary in 1.0.0-beta.
|
|
47
|
+
## Extension and provider boundary in 1.0.0-beta.3
|
|
48
48
|
|
|
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.
|
|
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.3` does **not** expose a general third-party plugin registry:
|
|
50
50
|
|
|
51
51
|
- lowerer manifests are accepted only from trusted first-party release packages;
|
|
52
52
|
- arbitrary external lowerer discovery and execution are not supported;
|
package/docs/packages/assets.md
CHANGED
package/docs/packages/crypto.md
CHANGED
package/docs/packages/grip.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
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.
|
|
7
|
+
The package status and supported entry-point lists below come from the synchronized Pulse 1.0.0-beta.3 release policy.
|
|
8
8
|
|
|
9
9
|
## `@pulse-compute/wasm-build-support`
|
|
10
10
|
|
package/docs/packages/jwt.md
CHANGED
package/docs/packages/pulse.md
CHANGED
package/docs/packages/runtime.md
CHANGED
package/docs/packages/s3.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# `@pulse-compute/s3`
|
|
2
2
|
|
|
3
3
|
S3 provides bounded exact-key `head`, `getText` and `putText` effects. It is a
|
|
4
|
-
supported extension in the synchronized `1.0.0-beta.
|
|
4
|
+
supported extension in the synchronized `1.0.0-beta.3` candidate. Candidate
|
|
5
5
|
preparation does not assert that the package has been published to npm. Consume
|
|
6
6
|
the exact compatible S3, Pulse, CLI and provider tarballs from one release pack.
|
|
7
7
|
|
package/docs/preview-scope.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Beta scope
|
|
2
2
|
|
|
3
|
-
Pulse `1.0.0-beta.
|
|
3
|
+
Pulse `1.0.0-beta.3` is a Beta of one provider-neutral application contract
|
|
4
4
|
with explicit Native and JavaScript execution targets. The intended 1.0
|
|
5
5
|
surface is present, but deliberate corrections may still occur before the
|
|
6
6
|
stable `1.0.0` release.
|
package/docs/reference/cli.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- Generated by wasm/scripts/sync-reference-docs.cjs. Edit the source catalog, not this file. -->
|
|
4
4
|
|
|
5
|
-
The `pulse` CLI in `@pulse-compute/cli@1.0.0-beta.
|
|
5
|
+
The `pulse` CLI in `@pulse-compute/cli@1.0.0-beta.3` is the supported project workflow. One command specification generates this page, installed help, and the shipped Bash, Zsh, and Fish completion scripts, so a public command or option cannot drift between those surfaces.
|
|
6
6
|
|
|
7
7
|
## Meta invocations
|
|
8
8
|
|
|
@@ -86,7 +86,7 @@ separate ordinary-lifecycle and Fastly Native integration boundaries.
|
|
|
86
86
|
## JWT and crypto Beta packages
|
|
87
87
|
|
|
88
88
|
This table records the sealed Phase D and E behavior of the synchronized
|
|
89
|
-
`1.0.0-beta.
|
|
89
|
+
`1.0.0-beta.3` JWT/crypto packages. Validation does not itself authorize npm
|
|
90
90
|
publication.
|
|
91
91
|
|
|
92
92
|
| Candidate capability | Node JS | Fastly JS | Node Native | Fastly Native | Notes |
|
|
@@ -2,11 +2,11 @@
|
|
|
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.
|
|
5
|
+
Pulse 1.0.0-beta.3 treats the 114 codes on this page as the stable public CLI diagnostic catalog. Code, category, summary, remediation intent, exit class, and anchor are generated from the same source used by the CLI. Human wording may improve compatibly.
|
|
6
6
|
|
|
7
7
|
Every catalogued failure links to a versioned installed artifact under:
|
|
8
8
|
|
|
9
|
-
`https://pulsecompute.io/v1.0.0-beta.
|
|
9
|
+
`https://pulsecompute.io/v1.0.0-beta.3/reference/diagnostics/`
|
|
10
10
|
|
|
11
11
|
Uncatalogued/internal or forward-compatible codes link to that reference root instead of inventing a nonexistent anchor. Internal `PULSEWASM_*` proof/compiler tokens are not part of this public catalog.
|
|
12
12
|
|
|
@@ -22,7 +22,7 @@ A Native eligibility diagnostic never authorizes automatic JavaScript fallback.
|
|
|
22
22
|
```json
|
|
23
23
|
{
|
|
24
24
|
"status": "error",
|
|
25
|
-
"version": "1.0.0-beta.
|
|
25
|
+
"version": "1.0.0-beta.3",
|
|
26
26
|
"error": {
|
|
27
27
|
"name": "PulseProjectError",
|
|
28
28
|
"code": "PULSE_BUILD_OUT_UNSAFE",
|
|
@@ -35,7 +35,7 @@ A Native eligibility diagnostic never authorizes automatic JavaScript fallback.
|
|
|
35
35
|
],
|
|
36
36
|
"stability": "preview-stable",
|
|
37
37
|
"scope": "public",
|
|
38
|
-
"docs": "https://pulsecompute.io/v1.0.0-beta.
|
|
38
|
+
"docs": "https://pulsecompute.io/v1.0.0-beta.3/reference/diagnostics/#pulse-build-out-unsafe"
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
```
|
|
@@ -89,7 +89,7 @@ pulse test examples/02-request-schema --case invalid-user --json
|
|
|
89
89
|
"expectedError": {
|
|
90
90
|
"code": "PULSE_SCHEMA_DECODE",
|
|
91
91
|
"category": "request",
|
|
92
|
-
"docs": "https://pulsecompute.io/v1.0.0-beta.
|
|
92
|
+
"docs": "https://pulsecompute.io/v1.0.0-beta.3/reference/diagnostics/#pulse-schema-decode"
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
]
|