Releases: Respo/react.mbt
Release list
v0.4.0
中文
v0.4.0 将 React MoonBit 绑定与已发布的 tiye/dom-ffi@0.4.0 对齐,重点改善
事件载荷和表单数据的类型安全,同时保留 React SyntheticEvent 自身的语义。
主要变化
- 新增公开且不透明的
NativeEvent视图。DOMEvent::native_pointer_event与
DOMEvent::native_wheel_event会验证实际使用的完整字段结构,再返回 dom-ffi
PointerEvent/WheelEvent;事件族不匹配或载荷不完整时返回None。 - React
DOMEvent仍然是 SyntheticEvent;prevent_default与
stop_propagation继续走 React 事件对象,不会因原生载荷适配而改变传播行为。 - 新增
ReactFormData::to_dom_form_data零复制桥接,允许直接使用 dom-ffi
FormData的文本/文件联合值;get_string不再重复手写 JavaScript
FormData.get。 - 移除本地
Array.isArrayFFI,改用 dom-ffi 已验证的
JsObscure::is_array。 - 下游发布验证不再硬编码旧版 dom-ffi;它从
moon.mod解析精确版本,以严格
Semantic Versioning 2.0.0 规则校验,并按完整 package/version token 验证
dependency tree 同时包含目标 React 与 dom-ffi 版本。
可验证指标
- MoonBit tests:59/59。
- Chromium conformance:12/12;新增真实
pointermove与wheel场景,各精确
触发 1 次,非预期 React warnings/errors、page errors 和 unhandled
rejections 为 0。 - Pointer 精确载荷:pointerId
17、button1、buttons3、pressure0.5、
clientX24.5、clientY48.5。 - Wheel 精确载荷:deltaX
1.5、deltaY-2.5、deltaMode1。 - 公共 API 文档:235/235(100%),缺失 0。
- 发布验证单测:3/3;覆盖 7 个合法与 9 个非法 SemVer 样例,并验证 RC 后缀不能
冒充精确稳定版本。 - Node Web Streams SSR、生成代码一致性、生产构建和严格 18 文件发布包门禁通过后
才允许发布。 - 发布后独立模块必须精确解析
tiye/react@0.4.0与
tiye/dom-ffi@0.4.0,并通过 check/build、Node SSR、Chromium
render/hydration 和零 diagnostics 验证。
完整变更见 CHANGELOG.md。本项目仍处于实验阶段,不建议用于生产环境。
English
v0.4.0 aligns the React MoonBit bindings with the released
tiye/dom-ffi@0.4.0, focusing on type-safe event payloads and form data while
preserving React SyntheticEvent semantics.
Highlights
- Adds a public opaque
NativeEventview.DOMEvent::native_pointer_eventand
DOMEvent::native_wheel_eventvalidate the complete consumed payload shape
before returning dom-ffiPointerEvent/WheelEvent; mismatched or partial
event families returnNone. - React
DOMEventremains a SyntheticEvent.prevent_defaultand
stop_propagationcontinue to use the React event object, so the native
payload adapter does not change propagation semantics. - Adds a zero-copy
ReactFormData::to_dom_form_databridge for dom-ffi's
text/file-awareFormDatavalues.get_stringno longer duplicates a direct
JavaScriptFormData.getaccessor. - Removes the local
Array.isArrayFFI in favor of dom-ffi's tested
JsObscure::is_arraypredicate. - Removes the stale dom-ffi hardcode from downstream release verification. The
verifier derives the exact version frommoon.mod, validates it with strict
Semantic Versioning 2.0.0 rules, and matches complete package/version tokens
for both target React and dom-ffi versions in the dependency tree.
Verifiable metrics
- MoonBit tests: 59/59.
- Chromium conformance: 12/12; adds real
pointermoveandwheelscenarios,
each invoked exactly once, with zero unexpected React warnings/errors, page
errors, or unhandled rejections. - Exact Pointer payload: pointerId
17, button1, buttons3, pressure
0.5, clientX24.5, and clientY48.5. - Exact Wheel payload: deltaX
1.5, deltaY-2.5, and deltaMode1. - Public API documentation: 235/235 (100%), with zero missing comments.
- Release-verification unit tests: 3/3, covering 7 valid and 9 invalid SemVer
samples plus rejection of an RC suffix masquerading as an exact stable
version. - Node Web Streams SSR, generated-source consistency, production build, and
the strict 18-file release package gate must pass before publication. - After publication, a fresh downstream module must resolve exact
tiye/react@0.4.0andtiye/dom-ffi@0.4.0, then pass check/build, Node SSR,
Chromium render/hydration, and zero-diagnostics verification.
See CHANGELOG.md for the complete change list. This project remains
experimental and is not recommended for production use.
v0.3.0
中文
v0.3.0:React 19.2 能力正式交付
本版本正式发布此前已合并的 React 19.2 绑定:Activity、Promise resources 与局部 Error Boundary、Web Streams SSR/Suspense hydration、React DOM 操作 API,以及完整公共 API 文档门禁。
DOM FFI 兼容性
- 消费已验证发布的
tiye/dom-ffi@0.3.0; - 对
Document.body()/Document.head()的可空 Web IDL 契约显式处理; - 在 root 与 body 都缺失时安全跳过渲染,不再 panic。
发布验证
此 GitHub Release 触发 Actions:验证 tag/模块版本/主线祖先关系、MoonBit 构建和测试、生成代码与文档门禁、真实 Chromium 测试、浏览器构建、发布包校验与 mooncakes.io 下游 runtime 验证。
English
v0.3.0: Formal delivery of React 19.2 capabilities
This version formally releases the previously merged React 19.2 binding work: Activity, Promise resources and local Error Boundaries, Web Streams SSR/Suspense hydration, React DOM operational APIs, and the complete public API documentation gate.
DOM FFI compatibility
- Consumes the verified
tiye/dom-ffi@0.3.0release; - Explicitly handles nullable Web IDL contracts for
Document.body()andDocument.head(); - Safely skips rendering when both root and body are absent rather than panicking.
Publishing verification
This GitHub Release triggers Actions to verify tag/module-version/main-ancestry identity, MoonBit build and tests, generated-source and documentation gates, real Chromium tests, browser build, package contents, and downstream mooncakes.io runtime consumption.
v0.2.0
中文
v0.2.0 是一次向后兼容的实验版本更新,集中补齐 React 19 能力、类型化
DOM 表面以及真实浏览器符合度验证。
主要变化
- 新增 54 个声明式生成的 HTML/SVG helper,并以生成器幂等性、公开接口与
MoonBit smoke matrix 三层门禁防止漂移。 - 新增外部 store、可复用/懒加载组件、Suspense、portal、imperative ref、
SSR/hydration 与 React 19 form/action API。 - 扩充 React 19.2.8 Chromium 符合度测试,覆盖生命周期、批处理、错误回调、
hydration、表单 action、external store 与生成 DOM 行为。 - 统一
moon.mod、package.json、Changelog、tag 与 GitHub Release 元数据,
并新增发布制品白名单、SHA-256 与发布后下游安装验证。
可验证指标
- MoonBit DOM helper smoke matrix:54/54。
- Chromium 场景:以发布工作流的 Playwright 报告为准,要求 100% 通过且
React diagnostics 为 0。 - 发布压缩包:固定 17 个白名单文件;实际字节数与 SHA-256 见同一 Release
附带的SHA256SUMS。 - registry 发布后必须从全新下游模块精确解析
tiye/react@0.2.0,并通过
moon check --target js与moon build --target js。
完整变更见 CHANGELOG.md。本项目仍处于实验阶段,不建议用于生产环境。
English
v0.2.0 is a backward-compatible experimental release focused on React 19
coverage, a typed DOM surface, and measurable real-browser conformance.
Highlights
- Adds 54 declaratively generated HTML/SVG helpers, guarded by generator
idempotence, public-interface checks, and a MoonBit smoke matrix. - Adds external stores, reusable and lazy components, Suspense, portals,
imperative refs, SSR/hydration, and React 19 form/action APIs. - Expands React 19.2.8 Chromium conformance coverage across lifecycles,
batching, error callbacks, hydration, form actions, external stores, and
generated DOM behavior. - Aligns
moon.mod,package.json, Changelog, tags, and GitHub Release
metadata, with an archive allowlist, SHA-256, and post-publish downstream
installation verification.
Verifiable metrics
- MoonBit DOM-helper smoke matrix: 54/54.
- Chromium scenarios: the release Playwright report is authoritative; 100%
must pass with zero React diagnostics. - Release archive: exactly 17 allowlisted files; its byte count and SHA-256 are
attached to the same Release inSHA256SUMS. - After registry publication, a fresh downstream module must resolve exactly
tiye/react@0.2.0and pass bothmoon check --target jsand
moon build --target js.
See CHANGELOG.md for the complete change list. This project remains
experimental and is not recommended for production use.