Tags: pairshaped/libero
Tags
Add --ws-path for runtime URL resolution, test for lazy_guard fix --ws-path builds the WebSocket URL at runtime from window.location, so one compiled bundle works across all subdomains. --ws-url and --ws-path are mutually exclusive. Breaking change: rpc_config.ws_url is now a function (ws_url()) instead of a constant, for both modes. Also adds regression tests for the bool.lazy_guard fix (issue #9) that prevented the walker from hanging on recursive type graphs.
Add ETF atom pre-registration for safe binary_to_term decoding The generator now produces an Erlang FFI file (rpc_atoms.erl) that pre-registers all constructor atoms discovered by the type graph walker, plus framework atoms used by the wire protocol. The generated dispatch module calls ensure() via @external on the first RPC call, guarded by persistent_term so it runs exactly once per VM lifetime. This allows binary_to_term([safe]) to be used in libero_wire_ffi.erl, closing the atom exhaustion attack surface without breaking legitimate client payloads.