Pulse follows semantic versioning for public releases. The repository begins its public history with the 1.0.0-beta.1 prerelease.
Unreleased
Section titled “Unreleased”1.0.0-beta.9 — Beta (2026-10-15)
Section titled “1.0.0-beta.9 — Beta (2026-10-15)”- Expand Native reports with authored handlers, source-bound analytics, contextual helper and resource associations, and explicit identity coverage in comparisons. Retained evidence continues to distinguish proven facts from unavailable attribution and does not imply exclusive byte ownership.
- Add the full-window Execution Explorer and binding views to offline HTML reports, compact relationship facts, and raise default report budgets for larger applications.
- Reduce scalar and handle retention on eligible Native paths with bounded numeric regions and compiler-proven lifetime checks. Preserve loop budgets, effect boundaries, and conservative exclusions; measurements remain specific to their recorded workloads and providers.
- Support bounded Fastly Native forwarding and retain paired Rust/Pulse forwarding and memory evidence without turning fixture results into general performance guarantees.
- Resolve bounded npm source exports for Native and admit trusted external package lowering contracts, including declared Wasm runtime bindings on Node. Contracts and provider capabilities remain validated; package lowerers execute as trusted build dependencies, without a sandbox guarantee.
- Increase bounded HMAC signing input support to 64 KiB.
- Fix Fastly Native logging through stdout and preserve HTTP error boundaries in applications that also declare event entries.
- Add checkout-bound development task recovery, balance Native CI shards, and reuse validated documentation builds. Harden release-worker cleanup, orphan recovery, process-instance locks, and environment-change diagnostics while retaining exact-input and complete-coverage requirements.
Conditional KV/CAS still requires dedicated evidence or an explicit disposition for the final beta.9 candidate. The known local Viceroy discrepancy retains its raw failure and existing non-blocking disposition; deployed Pulse cross-location acceptance remains separate. This preparation does not claim a release seal, publication, deployment, or validation of downstream applications.
1.0.0-beta.8 — Beta (2026-10-12)
Section titled “1.0.0-beta.8 — Beta (2026-10-12)”- Expand Native reports with entry and implementation identities, helper and middleware consumer links, scoped resource and schema inventory, static response payload observations, and containing-body views. Shared associations remain nonadditive; missing evidence remains unavailable.
- Add an internal report comparison contract, canonical JSON and offline HTML renderer with compatible-evidence checks, explicit additions/removals, and artifact provenance. Public CLI/MCP comparison adapters remain separate work.
- Improve report navigation and compact route views; retain build-stage timings, effective compiler settings, optimization flags and toolchain identities.
- Add reproducible manual performance baselines and comparisons, including Pulse/Rust and shared-ABI memory investigations. Measurements remain scoped to their fixtures and environments; they are not universal performance claims.
- Add the opt-in Native
--elide-json-cache-arenabuild/compile flag. It omits the json-as arena when string caching is disabled, preserves enabled caches, and can increase peak memory for allocation-heavy workloads. Defaults are unchanged. - Correct absent versus empty Fastly request and fetched-response headers. Recover fetch transport failures through application error handling, and enforce bounded fetch header deadlines with explicit timeout/error responses and cleanup.
- Preserve safe structured logging metadata during KV redaction while retaining known-secret and KV-value protection.
- Qualify release PRs before merge into main and let npm/docs publication consume their verified package and documentation artifacts. Publication no longer repeats build, pack and seal after main; exact source/artifact binding remains required.
- Front-load cheap release checks and Fastly prerequisites, correct compiler admission hints, and explain verified checkpoint reuse and rerun reasons. Required coverage, deadlines and same-candidate recovery safeguards remain intact.
- Consolidate documentation procedures, preserve the exact-tag beta.7 documentation snapshot, and refresh measured Fastly example sizes after the correctness fixes.
Exact per-route ownership and complete reachability remain limited; containing bodies are not isolated handler sizes. Deeper attribution proofs and source-map integration are deferred. Scalar-retention optimization and additional provider capabilities remain follow-up work.
Conditional KV/CAS requires dedicated beta.8 evidence or an explicit disposition for the final candidate. The beta.6 exception does not carry forward; raw failed or not-run results remain visible. This preparation does not claim a release seal, registry publication, hosted deployment, or final-candidate tick acceptance.
1.0.0-beta.7 — Beta (2026-10-07)
Section titled “1.0.0-beta.7 — Beta (2026-10-07)”- Add
pulse reportfor completed Native build evidence: terminal summaries, deterministic JSON capsules and offline HTML views of routes, schemas and physical Wasm sizes. Historical replay uses retained evidence without running project handlers, rebuilding or contacting providers. - Keep Report's attribution gaps explicit: incomplete reachability/resource provenance is labeled, Own/Shared ownership remains unavailable, and byte totals do not imply exclusive ownership or removal savings. Richer compiler telemetry is deferred to beta.8; full browser qualification remains partial.
- Retain literal Native error-boundary bindings through private wrappers while preserving dynamic shared-stage/helper boundaries and error transfer behavior. This improvement applies without an experimental size flag.
- Share exact package construction across release consumers, consolidate repeated JWT and installed-corpus checks, and bound candidate work with terminal evidence and supervised cleanup.
- Recover verified same-candidate work and add bounded isolated seal workers with separate compiler admission and memory budgets. Keep checkpoint qualification manual and preserve failed attempts and exact source/artifact identities.
- Retire frozen O-10/O-11 optimization qualification replays while retaining their current regression owners and recoverable historical observations.
- Add a small manual Node performance baseline and guarded comparisons. Split final Native emission into private owners without changing measured artifact bytes; the cleanup establishes no compiler speed or Wasm-size improvement.
- Add
@pulse-compute/mcpto the synchronized release package set as a supported host extension with root and/nodeimports and no runtime dependencies. - Qualify modern MCP HTTP with the official client and Claude Code, and provide explicit stateless compatibility for the measured Codex client.
- Replace the proxy example with a bundled, read-only Pulse context application: starter plans, search, cited contracts, maintained examples and diagnostic help. Its standalone Node host runs the built app without workspace execution access.
- Give the installed context journey one mandatory release owner, retain the bounded authorization checks, and complete the inert MCP name bootstrap and owner-confirmed publisher setup. Final tagged qualification and actual OIDC publication remain separate release steps.
- Qualify and audit one publication candidate before protected approval, reuse its accepted package bytes, require the Fastly lifecycle and bound isolated worker/compiler admission. Verify the published context app after registry checks and retain its terminal report, including failures.
- Purge the documentation CDN after promotion and before public verification; preserve the beta.6 documentation snapshot from its exact release tag.
Conditional KV remains a separate release qualification. Beta.6's accepted local Viceroy CAS failures and deployed cross-location deferral apply only to that candidate. Beta.7 requires its own qualification or explicit owner disposition; raw failed/not-run results remain unresolved, and public CAS semantics are unchanged.
1.0.0-beta.6 — Beta (2026-10-04)
Section titled “1.0.0-beta.6 — Beta (2026-10-04)”- Combine bounded Node request forwarding, experimental finite generated output and UTF-8 transforms with the current helper/shared-stage Native compiler work. Size modes remain opt-in; no default optimization or target fallback changes.
- Add bounded opaque S3
getBodyresponses on Node Native/JavaScript and Fastly Native, and embedded Assets bytes through the existing qualified interfaces. Fastly JavaScript S3 remains ineligible; arbitrary binary inspection is excluded. - Qualify the explicit Node
/serverexport for finite production HTTP, including build identity, overload, readiness and graceful draining. Streaming/output/ transform/S3-body/blob-specific launcher qualification remains separate. - Tighten Entities integration, JWT signing/verification and cleanup, and the private MCP adapter. MCP remains unpublished and outside the 19-package set; Native signature-guest composition restrictions remain enforced.
- Require the separately selected installed-feature proofs and preserve exact package/artifact identity. Fix guest JSON roundtrips while retaining ordered arrays and exact trust values; beta.5 historical guest-cache evidence remains distinct from current candidate cache reuse.
- Refresh example Wasm sizes from rebuilt default and experimental-size artifacts,
clarify bounded support limits, and preserve the reviewed npm
latesttag. - Retain the documented Viceroy missing-key CAS discrepancy as non-blocking by release-owner direction. Raw failures remain recorded, CAS semantics are unchanged, and deployed Pulse cross-location acceptance remains separate.
1.0.0-beta.5 — Beta (2026-09-16)
Section titled “1.0.0-beta.5 — Beta (2026-09-16)”- Add bounded application-owned JSON decoding, pure application loops and string trimming, execution-owned wall time, and exact-text SHA-256 digests.
- Preserve schema/KV parity, optional-property absence, JWT JavaScript support, application error handling, bounded UTF-8 input and HTTP outcomes across the selected targets.
- Add provider-owned HTTP request deadlines and verify their exact packed consumer closure, including cumulative effects and uncertain write outcomes.
- Preserve source-qualified effect identity and multifile composition through exact installed packages.
- Bound Fastly Native string concatenation and avoid eager collection allocation for scalar values, resolving large schema-encoding memory traps.
- Preserve bounded Fastly Native request headers and raise selected digest/S3 text capacity to 2 MiB.
- Share npm registry visibility polling across all release packages.
- Add a release-owner tagging helper with a dry-run default, clean-source and remote-main checks, and immutable existing-tag handling.
1.0.0-beta.4 — Beta (2026-09-14)
Section titled “1.0.0-beta.4 — Beta (2026-09-14)”- Add
ctx.encodeJson(value, 'schema.id')for schema-validated, bounded JSON text before storage or other effects, across JavaScript and Native execution. - Add manual release preparation that opens a draft PR, validates version readiness before main, and leaves final tagged-source sealing to publication.
- Preserve published documentation and changelog history while advancing current references during release preparation.
1.0.0-beta.3 — Beta (2026-09-14)
Section titled “1.0.0-beta.3 — Beta (2026-09-14)”- Fix CLI storage execution on Node Native, Node JavaScript and the Fastly Native local fixture host, including S3 response streams, bindings and conditional KV.
- Keep the last working Native application available when a development reload fails.
- Allow bounded npm registry propagation time and publish future releases directly under the
latestnpm tag while retaining the Beta release label.
1.0.0-beta.2 — Beta (2026-09-13)
Section titled “1.0.0-beta.2 — Beta (2026-09-13)”This candidate synchronizes the 19-package release catalog and prepares the
next npm beta release:
- adds bounded S3-compatible object storage in
@pulse-compute/s3, backed by the Crypto hashing and signing primitives; the Assets contract stays intact; - adds conditional KV operations and opaque generation tokens, with explicit conflict handling and no non-atomic emulation;
- propagates explicit JavaScript targets through project analysis, retaining resolved static third-party imports and ordinary awaited calls while checking Native eligibility independently;
- clarifies maintainer ownership, target boundaries, evidence requirements, and human release authority;
- links public and internal package listings to npm and preserves the exact published beta.1 documentation snapshot alongside the beta.2 documentation.
Conditional KV acceptance remains gated separately from the aggregate seal:
Viceroy 0.21.0 creates a missing key for an existing-generation CAS, contrary to
the required conflict behavior, and deployed Pulse cross-location acceptance
is still pending. The standalone live Fastly probe confirms missing-key
rejection but does not satisfy those Pulse acceptance gates. See
wasm/test/kv/K4.md for the evidence and release boundary.
1.0.0-beta.1 — Beta (2026-08-01)
Section titled “1.0.0-beta.1 — Beta (2026-08-01)”The first public Beta establishes a native-first Pulse application contract and completes the synchronized release candidate:
-
promotes
@pulse-compute/pulseinto the synchronized public package set and removes its duplicate Fastly-conditioned bootstrap so provider-specific startup remains owned by@pulse-compute/provider-fastly. -
adds
--experimental-native-sizeto provider-neutral compile and Native provider builds. The Native compiler owns the experimental size profile and the default remains unchanged. -
moves the fixed provider composition behind a neutral CLI facade. Concrete host operations and target policy are now composed from provider-owned modules, while Node remains the reference/smoke substrate.
-
adds synchronous string logging through
ctx.log.error,warn,info, anddebug, including profile thresholds, Native pruning, a compact host ABI, provider-owned output, redaction, and four-mode conformance. -
completes direct Fastly JavaScript execution, provider capabilities, package effects, local tooling, deterministic source/deployment packaging, and downstream runtime compilation.
-
seals full-target-support availability for Node and Fastly JavaScript without automatic fallback.
-
adds revision-bound release reports, sixteen-shard evidence aggregation, offline Fastly Native/JavaScript candidates, and exact binary-patch replay.
-
adds the bounded Crypto, JWT, and Entities packages to the synchronized 18-package release catalog;
-
synchronizes the Apache-2.0 package metadata, Beta documentation, exact
v1.0.0-beta.1routes, and npmbetapolicy without assigninglatest; -
performs no deployment or publication; those operations remain separately authorized release actions.
-
@pulse-compute/runtimeas the canonical application surface; -
static Router authoring with parameters, mounts, terminal middleware, fallthrough, and error lanes;
-
whole-project analysis with explicit effects and continuations;
-
schema-backed request, fetch, and response handling;
-
provider-neutral portable Wasm and direct native Fastly realization;
-
Node development, inspection, testing, and provider conformance;
-
package-owned GRIP and asset lowering;
-
generated, versioned documentation and guarded release candidates;
-
explicit runtime-target support gates with no automatic fallback.
The Beta deliberately rejects unsupported Native source instead of silently changing execution targets.