Skip to content

v3.0.0

Choose a tag to compare

@joeykchen joeykchen released this 23 Jul 07:47
· 442 commits to dev since this release
3adc2c5

Highlights

  • Added deterministic Web frame capture with input recording and replay, plus a complete integration guide for capture-based regression testing.
  • Improved runtime scheduling and startup semantics with coroutine-based synchronous event dispatch, safer wake-ups, eager-start yielding, bootstrap timing fixes, and main execution timeout diagnostics.
  • Refined rendering and sprite behavior with smaller emoji fallback assets, improved SVG font handling, preserved hidden-sprite bounds, corrected fence limits, and more consistent edge bouncing.
  • Published the SPX Web runtime to npm and added configurable runtime usernames.
  • Switched warp execution to the XGo @ decorator model and migrated the Go module from github.com/goplus/spx/v2 to github.com/goplus/spx/v3.

What's Changed

Features

Fixes

  • Packaged SVG symbol and emoji fallback fonts by @joeykchen in #1651
  • Trimmed the bundled emoji fallback and removed the symbols font by @joeykchen in #1654
  • Cleared graphic effects when stopping all scripts by @joeykchen in #1655
  • Reduced the bundled emoji fallback to the required heart glyph by @joeykchen in #1658
  • Preserved hidden sprite bounds and clamped edge bouncing by @joeykchen in #1659
  • Aligned sprite fence handling and size limits by @joeykchen in #1662
  • Aligned bootstrap sprite startup timing by @joeykchen in #1669
  • Yielded callers during eager coroutine startup by @joeykchen in #1670
  • Warned when main execution exceeds its timeout by @joeykchen in #1671
  • Preserved ZOrder while releasing bootstrap after the initial Main yield by @joeykchen in #1672
  • Disabled GDExtensions during Godot imports by @joeykchen in #1680
  • Hardened coroutine wake-ups and shared state handling by @joeykchen in #1682
  • Enhanced ResolveCostumeIndex behavior and added unit tests by @go-wyvern in #1685
  • Correctly guarded the action-pressed callback by @joeykchen in #1686
  • Trimmed trailing whitespace from generated Godot JavaScript by @joeykchen in #1692

Compatibility

  • Migrated the Go module and import paths from github.com/goplus/spx/v2 to github.com/goplus/spx/v3. Downstream Go and XGo projects must update their module references and imports accordingly.
  • Replaced the reflection-based warp wrapper with XGo decorator support. Projects should use the new @spx.Warp form.
  • Temporarily excluded Builder AI integration from the v3 Web interpreter because its current upstream module still depends on SPX v2.
  • Bundled the spx2.2.6 Godot runtime, including glyph-aware SVG fallback selection, color emoji rendering, Scratch-compatible SVG MIP scaling, and refreshed generated Web bindings.

Refactors

Tooling

  • Migrated SPX release metadata, generated code, workflows, and scaffold templates to module v3 by @joeykchen in #1695

Docs

Full Changelog

v2.0.4...v3.0.0