@poe-platform/safe-js 0.1.605 → 0.1.607

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 (2) hide show
  1. package/README.md +69 -5
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -2,13 +2,16 @@
2
2
 
3
3
  Run a JavaScript subset with explicit host capabilities, execution budgets, and resumable checkpoints.
4
4
 
5
- This README describes the current source checkout. See [Development status](#development-status)
6
- for local changes that are not yet released; installing the published package
7
- does not necessarily include them.
5
+ This README describes implemented source features with dated compatibility and
6
+ publication evidence. See [compatibility evidence](#compatibility-evidence--2026-09-15)
7
+ for delivered repairs, historical development notes and unresolved limitations.
8
+ Full ECMAScript conformance is not established.
8
9
 
9
10
  ## Quickstart
10
11
 
11
- Install the public package (Node.js 18.18+ and ESM):
12
+ Install the public ESM package. Node.js 18.18+ is declared, but exact-minimum
13
+ weak-symbol behavior remains defective; see the runtime matrix below. This
14
+ quickstart is verified on Node.js 22.23.2 / ICU 78.2:
12
15
 
13
16
  ```sh
14
17
  npm install @poe-platform/safe-js
@@ -532,6 +535,67 @@ For embedding, `runCli(argv, options?)` comes from `@poe-platform/safe-js/cli`.
532
535
 
533
536
  </details>
534
537
 
538
+ ## Compatibility evidence — 2026-09-15
539
+
540
+ The target is **published ECMA-262 edition 16 / ECMA-402 edition 12 (June
541
+ 2025)**, Test262 `419d3e0a2273ba01a3bfcbec423f2801425b8e93`. Temporal
542
+ (pin `e8cc03fc970a65a3359e8870e3b35e687ac94e55`), resource-management,
543
+ weak upsert and Atomics.pause are separately tracked newer APIs; they do not
544
+ redefine the target edition. Implemented surfaces include classes, async
545
+ functions/generators, guest eval and dynamic functions, Proxy/Reflect,
546
+ Temporal, Intl, weak collections and bounded shared-memory operations.
547
+ API presence does not establish complete semantics.
548
+
549
+ **Full conformance is not established.** The preserved selector-free
550
+ [corpus report](../../docs/plans/publish-compatibility-documentation-20260915/full-corpus.jsonl.gz)
551
+ ends with `aborted`, `complete:false`, ENOSPC. Failures, unsupported required
552
+ modes, edition-mismatch adjudication and current-source revalidation remain
553
+ open. Historical or selected passes cannot be combined into a final full run.
554
+ See the [report, reproducible commands and delivery disposition](../../docs/plans/safejs-gap-closure-evidence.md#compatibility-documentation-delivery--2026-09-15).
555
+
556
+ The declared contract is ESM Node **18.18+**, with no excluded operating system.
557
+ The [runtime matrix](../../docs/plans/safejs-runtime-support-fresh-delivery-20260915.md)
558
+ records selected macOS arm64 controls for Node 18.18.0, 18.20.8, 20.20.2,
559
+ 22.23.2, 24.21.0, 26.8.2 and Bun 1.3.11. Exact-minimum fresh-symbol WeakMap
560
+ keys fail; newer-host passes do not waive this obligation. Linux/Windows,
561
+ complete cross-runtime suites and installed feature coverage remain incomplete.
562
+ Workerd has selected controls with explicit nodejs_compat and a pinned
563
+ compatibility date, not complete runtime/ICU qualification. Browser bundling
564
+ controls do not establish a supported browser interpreter. Direct CommonJS
565
+ require and browser interpreter export routes are intentionally unsupported.
566
+
567
+ Host authority is explicit: no ambient DOM, process, fetch, general Node API,
568
+ automatic npm resolution or filesystem grant. Registered modules and explicit
569
+ capabilities supply authority. Missing authority by design is not a language
570
+ defect. Native Map/Set subclasses, opaque/revoked Proxies and Proxy-bearing
571
+ prototype chains reject at host copying; live identity requires realm-owned
572
+ capabilities. Internal heap transport and structured-clone normalization are
573
+ separate contracts; see [CHECKPOINT_REPLAY.md](CHECKPOINT_REPLAY.md).
574
+ New runs use jobs-v9; genuine v6/v7/v8 restores retain original semantics and
575
+ explicit migration creates a new continuation. Never upgrade by editing markers.
576
+
577
+ The [final transport report](../../docs/plans/qualify-realms-and-recovery/final-delivery-20260914.md)
578
+ separates local commits, remote ancestry and independently installed published
579
+ versions. It measures 156 supported, 100 rejection and 18 version cells, while
580
+ retaining raw shared-write recovery that produces 0 instead of 7 and can execute
581
+ an effect before rejection. Arbitrary concurrent recovery and exactly-once
582
+ side effects are unqualified. Those transport repairs shipped in SafeJS
583
+ 0.1.596–0.1.598 and poe-code 15.0.39–15.0.40; their older local-only descriptions
584
+ below are historical, not an inventory of current publication.
585
+
586
+ Other residual limitations include Temporal extreme-range/calendar/foreign-realm
587
+ behavior, older-host Intl output, nondeterministic weak collection cleanup,
588
+ nonblocking host-agent Atomics.wait, intermediate shared-write visibility and
589
+ timeout replay, complete eval/Proxy/RegExp semantics, opaque handles and native
590
+ iterator frames in recovery, cooperative budgets/cancellation, and filesystem
591
+ race boundaries. Native Promise copying omits user-symbol properties by default;
592
+ explicit admission has separate controls. Host calls need their own timeouts and
593
+ side-effect reconciliation. Artifact source/lock binding, minimum-Node umbrella
594
+ installation, raw archive closure and exhaustive license disposition remain
595
+ unqualified in the accumulated candidate. No proposal, skipped test or unavailable
596
+ runner is counted as standard conformance. The dated evidence ledger retains
597
+ individual findings rather than treating these limitations as resolved.
598
+
535
599
  ## Development status
536
600
 
537
601
  ### Pinned conformance runner
@@ -1315,7 +1379,7 @@ preserve existing values and use collection budgets for insertions; computed
1315
1379
  defaults run only for missing keys. See the [Map validation record](../../docs/plans/safejs-map-upsert.md).
1316
1380
  The corresponding WeakMap methods are committed locally but unreleased;
1317
1381
  they retain the older-Node weak-symbol limitations above.
1318
- See the [WeakMap integration record](../../docs/plans/safejs-weakmap-upsert.md).
1382
+ See the [WeakMap integration evidence](../../docs/plans/safejs-gap-closure-evidence.md).
1319
1383
 
1320
1384
  The unreleased runtime supports `Atomics` integer operations on ordinary
1321
1385
  ArrayBuffer-backed typed arrays, including BigInt views. Experimental,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@poe-platform/safe-js",
3
- "version": "0.1.605",
3
+ "version": "0.1.607",
4
4
  "description": "Budgeted JavaScript interpreter with explicit host capabilities and resumable execution",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -68,7 +68,7 @@
68
68
  "access": "public"
69
69
  },
70
70
  "dependencies": {
71
- "@poe-platform/safe-fs": "0.1.605",
71
+ "@poe-platform/safe-fs": "0.1.607",
72
72
  "temporal-polyfill": "1.0.4",
73
73
  "@petamoriken/float16": "^3.9.3",
74
74
  "@formatjs/intl-localematcher": "0.8.13",