What's Changed
Scratch Compatibility & Monitors
- Added Scratch-compatible list and slider monitors: stage monitors can now display lists and expose editable numeric ranges.
#1831 #1832 by @joeykchen - Aligned scheduling and event behavior with Scratch: corrected loop and condition timing, wait and broadcast ordering, handler restart policies, and cross-frame resume order.
#1834 #1863 #1885 #1886 by @joeykchen - Strengthened clone lifecycle behavior: enforced the project-wide clone limit, cleaned up clones and audio on stop-all, and preserved original pen state with independent sound effects.
#1838 #1884 #1889 by @joeykchen - Corrected numeric equality and missing-target behavior: limited equality tolerance to ULPs and kept sprite motion, direction, and distance sensing Scratch-compatible when targets are absent.
#1876 by @go-wyvern and #1893 by @joeykchen - Kept post-coroutine visuals synchronized: sprite, bubble, and camera updates are now flushed consistently every frame.
#1847 by @songweijun1203
Runtime Reliability & Lifecycle
- Prevented scheduler and event deadlocks: hardened managed queues, native event dispatch, and worker draining during reset.
#1822 #1825 #1864 by @joeykchen - Reduced runtime hot-path overhead: cut allocations in broadcast ordering, script stopping, coroutine waits, and input snapshots.
#1839 #1842 #1854 by @joeykchen - Improved coroutine diagnostics and lifecycle handling: preserved panic values and fault stacks, unified task descriptions, hardened waits, and clarified yield callbacks.
#1848 #1888 #1891 by @joeykchen - Simplified runtime architecture: reorganized root and internal APIs, isolated runtime boundaries, streamlined audio bookkeeping, and split engine responsibilities into focused components.
#1856 #1862 #1865 #1866 #1867 #1894 by @joeykchen
Web, Bindings & Code Generation
- Stabilized Web execution and callbacks: fixed resource ownership, watchdog crashes, sample playback, callback identity, transient array cleanup, and event dispatch routing.
#1823 #1837 #1843 #1850 #1881 #1890 by @joeykchen - Hardened native and Web array bindings: tightened ABI boundaries, rejected lossy object IDs, unified array metadata and decoding, and added output-only array support.
#1824 #1844 #1859 #1873 #1874 #1877 #1879 by @joeykchen - Consolidated and hardened code generation: shared manager signatures, centralized immutable metadata, simplified templates, and strengthened declaration diagnostics.
#1855 #1857 #1869 #1870 #1871 #1872 #1880 by @joeykchen - Simplified Web runner and worker delivery.
#1860 by @joeykchen
Assets, Packaging & Tooling
- Hardened ZIP input, output, and remote caching: added bounded archive processing, safer cache handling, and shared writer lifecycle management.
#1821 #1827 #1861 by @joeykchen - Improved reload and runtime bundle integrity: preflighted configuration changes, validated runtime reuse against source, verified cached assets, and simplified runtime bundle APIs.
#1826 #1828 #1849 #1852 by @joeykchen - Strengthened build and CLI workflows: hardened archive installation, propagated command failures, rejected invalid targets early, and simplified environment and argument handling.
#1830 #1845 #1846 #1851 #1853 #1858 by @joeykchen - Improved template, rendering, and UI behavior: removed expected engine warnings, retained texture pixels for collision work, and made bubble clamping policy stable.
#1820 #1829 #1836 #1868 by @joeykchen
Documentation & Maintenance
- Clarified coroutine API contracts.
#1840 by @joeykchen - Updated dependencies and runtime inputs: upgraded Go dependencies and pinned Godot to
09227b82.
#1841 by @dependabot[bot] and #1875 by @joeykchen - Advanced the release compatibility boundary: prepared SPX
v3.3.0with runtime3.0.0and runtime ABI3.
#1895 by @joeykchen
Full Changelog: v3.2.4...v3.3.0