mirror of
https://github.com/badlogic/pi-mono.git
synced 2026-11-05 23:37:25 +00:00
Freeze built-ins and make built-in globals read-only before the script runs, keeping instance overrides working via accessors. Validate all worker payloads on the host and fail malformed ones as sandbox errors instead of crashing the host process. closes #10444
2.2 KiB
2.2 KiB
Changelog
[Unreleased]
Changed
- Built-ins are frozen and built-in globals are read-only before the script runs, so patches such as
Array.prototype.toJSON = ...have no effect. Instances can still overrideconstructor,name,message,toString,toLocaleString,valueOf,toJSON, andObject.prototypemembers (#10444)
Fixed
- Fixed a script that patched built-ins crashing the host process and leaving
execute()unsettled. Malformed payloads from the worker now fail the execution with asandboxerror (#10444)
[1.0.3] - 2026-10-05
[1.0.2] - 2026-10-04
[1.0.1] - 2026-10-03
Fixed
- Fixed scripts that print in a loop growing the host's memory until it crashes: output is limited to
MAX_OUTPUT_CHARS(16 Mi) characters andMAX_OUTPUT_ITEMS(100000) items, and a script past either limit fails with aRangeError(#10283)
[1.0.0] - 2026-10-01
Added
- Added
renderToolOutputType(), the type a tool call resolves to.
Changed
- Reading a member of
toolsor of a global namespace that does not exist now throws an error naming the close matches, instead of returningundefined. Use"name" in toolsto check for a tool.store()size errors explain what the store is for.
[0.99.2] - 2026-09-30
Changed
- Allowed
CodemodeSandbox.workerUrlto be a string, as required for embedded worker entrypoints in Bun compiled executables (#10204).
Fixed
- Fixed
image()accepting malformed base64 data and unsupported image types. It now throws aTypeErrorunless the data is valid base64 of a PNG, JPEG, GIF, or WebP image, derives the MIME type from the image signature instead of the declared type, and strips line breaks from wrapped base64 (#10215).
[0.99.1] - 2026-09-29
[0.99.0] - 2026-09-29
Added
- Initial spike:
CodemodeSandboxruns model-written JavaScript in a worker thread and exposes injected tools astools.<name>(args)async functions.