)]}'
{
  "commit": "3b4af2e20bf50e222c2cfd5a22b5d9a4e70d2b8b",
  "tree": "0c61bb1257c0f20f85d13dec178ef26c5ef11893",
  "parents": [
    "93d8161dacd3031f49b676d3192c038f3870e33d"
  ],
  "author": {
    "name": "luigi-rosso",
    "email": "hello@rive.app",
    "time": "Thu Oct 01 21:16:54 2026 +0000"
  },
  "committer": {
    "name": "luigi-rosso",
    "email": "hello@rive.app",
    "time": "Thu Oct 01 21:16:54 2026 +0000"
  },
  "message": "feat(rasc): errors test cases and thrown messages in script errors (#14532) bd0142048b\n* feat(runtime): rive_rt_v1.error carries a thrown message into the trap\n\n* feat(rasc): sync throws hand their message to the host before trapping\n\n* feat(rasc): errors cases in the AnimaScript Tests harness\n\n* feat(cli): test runners settle errors cases and report thrown messages\n\n* feat(scripting): test.errors in the Luau Tester and the editor runner\n\n* feat(scripting_workspace): translate test.errors to the AnimaScript errors case\n\n* test(cli): errors cases cover the AnimaScript std error paths\n\n* feat(rasc): --no-throw-messages compiles throws back to a bare trap\n\n* feat(cli): published AnimaScript bakes drop throw messages\n\n* fix(runtime): a throw at module start fails the boot, traps mark script throws and can run quiet\n\n* fix(rasc): null and empty throw messages, stripped throws still type check, only std\u0027s __riveThrow reports\n\n* fix(cli): errors cases settle only on a script throw and keep their expected traps quiet\n\n* style(scripting_workspace): restore the test body comment above emitTestBody\n\n* test(cli): errors cases for the remaining AnimaScript std throw sites\n\n* test(cli): run the tests_demo sample and pin its pass and fail counts\n\n* test(rive_core): run errors cases through the Luau runner\n\n* test(rasc): spell thrown nullables T? and cover throws built with ?., ?? and !\n\n* refactor(cli): run both test lanes through the editor\u0027s shared harness\n\n* fix(cli): a runaway Luau test case fails on its budget instead of hanging\n\n* fix(rive_core): tell the execution budget apart by a flag, not its error text\n\n* fix(rasc): stripped throws compile nothing of their message, a first pass with messages checks them\n\n* fix(runtime): a throw while a tier swap reruns start traps without a vm, boot errors keep their full text\n\n* fix(scripting_workspace): stripped AnimaScript bakes check throw messages with a first compile that keeps them\n\n* fix(cli): keep the Luau test budget armed through swallowed errors, declarations and timed runtime calls\n\n* fix(rive_native): keep the Luau execution budget armed until the timed call ends\n\nfix(cli): editor-only enum converter, path effect placement, headless key focus, print separator (#14536) a840503cbe\nCLI fixes:\n- Editor-only DataConverterEnumToUint corrupted converter wiring\n- ScriptedPathEffect under a Shape failed with a bare re-import error\n- Headless --key as the first interaction saw nothing focused\n- print() concatenated its arguments\n\nCo-authored-by: Luigi Rosso \u003cluigi-rosso@users.noreply.github.com\u003e\nCo-authored-by: Philip Chung \u003cphilterdesign@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "35d7f6153c1605729cabe4bdef23d8443310bb8f",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "719658ce71a79e6c44a50b971a417581535ad7af",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "2cd51aa892ae971f289ad05a82e32134a5b93360",
      "old_mode": 33188,
      "old_path": "include/rive/lua/rive_lua_libs.hpp",
      "new_id": "45e925f033ecb1be1598712d303a07ba968d9855",
      "new_mode": 33188,
      "new_path": "include/rive/lua/rive_lua_libs.hpp"
    },
    {
      "type": "modify",
      "old_id": "69f0022247be5f797d7d19820d3712dd1e631da3",
      "old_mode": 33188,
      "old_path": "include/rive/wasm/rive_bindings_v1.h",
      "new_id": "0f2b917056dbc0af8a15ce286b1203a090e7a9d2",
      "new_mode": 33188,
      "new_path": "include/rive/wasm/rive_bindings_v1.h"
    },
    {
      "type": "modify",
      "old_id": "0c1d6d2c6c13296701b58af3cebaffdb68393d66",
      "old_mode": 33188,
      "old_path": "include/rive/wasm/wasm_scripting_vm.hpp",
      "new_id": "8c2c0a07cc4c27a872baa9e1dcd3abb8086caf75",
      "new_mode": 33188,
      "new_path": "include/rive/wasm/wasm_scripting_vm.hpp"
    },
    {
      "type": "modify",
      "old_id": "fc6fabedf0a039263090ff1cfbc08cbcd7bf6026",
      "old_mode": 33188,
      "old_path": "src/lua/lua_rive_base.cpp",
      "new_id": "e548fb3148ffaa26340404867b540bed79b10bb2",
      "new_mode": 33188,
      "new_path": "src/lua/lua_rive_base.cpp"
    },
    {
      "type": "modify",
      "old_id": "8a5be1a906989ee9f4904dea4c198028e591966c",
      "old_mode": 33188,
      "old_path": "src/wasm/idl/bindings.py",
      "new_id": "6464193beec999f1436f367c3c5269c7bf75bfd1",
      "new_mode": 33188,
      "new_path": "src/wasm/idl/bindings.py"
    },
    {
      "type": "modify",
      "old_id": "b9dc89e0979262a7ae96e2aada4b2b6a8d8dbe95",
      "old_mode": 33188,
      "old_path": "src/wasm/idl/generate.py",
      "new_id": "b090ac736bdd9b7ae1e22454e5617ebdace43e70",
      "new_mode": 33188,
      "new_path": "src/wasm/idl/generate.py"
    },
    {
      "type": "modify",
      "old_id": "1b729f7f010dfd33447e1e3c0ad3180984242685",
      "old_mode": 33188,
      "old_path": "src/wasm/wasm_natives_gen.hpp",
      "new_id": "a737940d612860f1cb0e27634dc7be3d8836ea59",
      "new_mode": 33188,
      "new_path": "src/wasm/wasm_natives_gen.hpp"
    },
    {
      "type": "modify",
      "old_id": "9c824247c76aa31e009cf2b40830b13c3c9f81e0",
      "old_mode": 33188,
      "old_path": "src/wasm/wasm_natives_web_gen.hpp",
      "new_id": "10e282b347882dcd8e74f874025c0cf5c6dad64a",
      "new_mode": 33188,
      "new_path": "src/wasm/wasm_natives_web_gen.hpp"
    },
    {
      "type": "modify",
      "old_id": "2330689cc37d73bc9dc191e89c469e45d2cbf3f1",
      "old_mode": 33188,
      "old_path": "src/wasm/wasm_scripting_vm.cpp",
      "new_id": "1731bd4683ff62486846672f8f3d3cb5d4375553",
      "new_mode": 33188,
      "new_path": "src/wasm/wasm_scripting_vm.cpp"
    },
    {
      "type": "modify",
      "old_id": "a45f6eeb44e1547eb1446570677a9f1d727df0ca",
      "old_mode": 33188,
      "old_path": "src/wasm/web/rive_module_imports.mjs",
      "new_id": "a22e4d82772858b23c92dd64d13247994e7afbf2",
      "new_mode": 33188,
      "new_path": "src/wasm/web/rive_module_imports.mjs"
    },
    {
      "type": "modify",
      "old_id": "9e70caff4b96f747fbf1d0462569e7a33f681898",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/runtime/scripting/scripting_context_test.cpp",
      "new_id": "78dd2bddf63f67e5f65ecc5dfd2b3c5830e7ce80",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/runtime/scripting/scripting_context_test.cpp"
    }
  ]
}
