diff --git a/AGENTS.md b/AGENTS.md index f50845b..eddfd07 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -62,11 +62,11 @@ they never reach a consumer. - Runs on any ES2022 engine, not only Node — a browser as readily as a server. The shipped source is ECMAScript and nothing else: no host import, no host global, no DOM. `tsconfig.build.json` is - that gate, typechecking the shipped files alone with `types: []` and `lib: ES2022`, so `node:fs`, - `process` and an ES2024 method are compile errors here rather than a consumer's crash there. The - standard is the line, never an engine list: one implementing it in part — Hermes is the live - doubt, on the Unicode property escapes and the lookbehind the markdown grammar spells — is out of - scope rather than a bug. Node's test runner, the corpus reads and the build are the repo's own, + that gate, typechecking the shipped files alone, so `node:fs`, `process` and an ES2024 method are + compile errors here rather than a consumer's crash there. The standard is the line, never an + engine list: one implementing it in part — Hermes is the live doubt, on §10's property escapes + and on lookbehind — is out of scope rather than a bug. Node's test runner, the corpus reads and + the build are the repo's own, never the library's, and `engines.node` states the floor the shipped JavaScript needs — `>=18` — never the higher one those repo-only tools want. - ESM only — no CommonJS build, no dual-package hazard. @@ -113,8 +113,9 @@ descends, so a document reports its first error in document order. differs from npm → publish and tag `vX.Y.Z`. No bump, no deploy; the bump is each shipping PR's deliberate semver judgment. - Renovate watches devDependencies, Docker pins and action tags; automerges everything on green CI. -- Docker images pin the full patch version (`node:24.19.0-alpine3.24`, never `node:24`); actions - pin semver tags. +- Docker images pin the full patch version (`node:24.19.0-alpine3.24`, never `node:24`), as + specific as the publisher tags: `oven/bun:1.4.0-alpine` pins Bun's patch and leaves the base + floating because Bun publishes nothing narrower. Actions pin semver tags. ## 10. Tests first, in Docker diff --git a/README.md b/README.md index d7beca0..52cdc73 100644 --- a/README.md +++ b/README.md @@ -64,5 +64,5 @@ Personas, never named consumers (AGENTS.md §7): ## The package ESM only, no runtime dependencies, public npmjs. Built JavaScript with `.d.ts` beside it. -Pure ECMAScript at an ES2022 baseline, reaching for no host API, so a browser runs it as readily -as a server; the test suite runs under Node, Deno and Bun. Contract: `AGENTS.md` §5–6. +Pure ECMAScript at an ES2022 baseline, reaching for no host API; the test suite runs under Node, +Deno and Bun. Contract: `AGENTS.md` §5–6. diff --git a/todo.md b/todo.md index 0ed3e30..751786a 100644 --- a/todo.md +++ b/todo.md @@ -148,7 +148,7 @@ numbering is the order the work was planned in, not the order it ships. other half. Headless Firefox is that page, settling both at once: the browser proof, and the only SpiderMonkey there is, `ci.sh`'s three legs being two V8s and a JavaScriptCore that is not Safari's. `engines.node` gets its one-line proof here - too — `import('./dist/index.js')` under a pinned `node:18` image, which cannot run the + too — `import('./dist/index.js')` under a pinned Node 18 image, which cannot run the suite that type stripping wants 22+ for, but proves exactly what the field claims. **Settled** (the maintainer, 2026-09-01): the round-trip proved over the checked-in corpus is what `0.1.0` ships on, and the open-ended proof work follows it rather than gating it —