From 91d6518883cbac20cbe70a21b165d0486f2ef501 Mon Sep 17 00:00:00 2001 From: Ivan Murzak Date: Fri, 30 Oct 2026 00:00:48 -0700 Subject: [PATCH 1/3] chore: release 0.4.0 (execution guards, sliced waits) Version 0.3.1 -> 0.4.0 in dotnet/Directory.Build.props, the README snippet and the Python module; the contract's Unreleased changelog entry becomes v0.4.0 (title v0.4). Co-Authored-By: Claude Opus 5.5 --- README.md | 4 ++-- dotnet/Directory.Build.props | 2 +- python/code_exec/__init__.py | 2 +- spec/contract.md | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index f5c8a95..153a634 100644 --- a/README.md +++ b/README.md @@ -38,8 +38,8 @@ Every host already has its own Roslyn constraints (Unity pins 4.8 because of `Sy ## C# in two lines ```xml - - + + ``` diff --git a/dotnet/Directory.Build.props b/dotnet/Directory.Build.props index 373ca97..f6154bc 100644 --- a/dotnet/Directory.Build.props +++ b/dotnet/Directory.Build.props @@ -6,7 +6,7 @@ true $(NoWarn);CS1591 true - 0.3.1 + 0.4.0 Ivan Murzak Copyright (c) 2026 Ivan Murzak https://github.com/IvanMurzak/Code-Exec diff --git a/python/code_exec/__init__.py b/python/code_exec/__init__.py index da95b45..c9f4992 100644 --- a/python/code_exec/__init__.py +++ b/python/code_exec/__init__.py @@ -13,4 +13,4 @@ __all__ = ["run", "run_json", "run_b64", "set_value_converter", "set_default_timeout_ms", "set_max_timeout_ms", "set_max_recursion_limit", "SnippetTimeout", "SnippetThreadStopped", "SNIPPET_FILE"] -__version__ = "0.3.0" +__version__ = "0.4.0" diff --git a/spec/contract.md b/spec/contract.md index 7b2705d..1570977 100644 --- a/spec/contract.md +++ b/spec/contract.md @@ -1,4 +1,4 @@ -# Code-Exec contract (v0.3) +# Code-Exec contract (v0.4) One request/response shape for every runtime (C# and Python) and every host (Unity, Godot, BRUTAL, Unreal, plain .NET). **This file is normative: a runtime that disagrees with it is the bug.** Behaviour changes start here, then @@ -301,7 +301,7 @@ Lengths are in characters: UTF-16 code units in C#, code points in Python. A lim ## Changelog -- **Unreleased** — execution guards (§3.6): C# snippets, full source and includes stop with `Runtime` +- **v0.4.0** — execution guards (§3.6): C# snippets, full source and includes stop with `Runtime` (`Recursion too deep`) before a stack overflow and with `Timeout` once `timeoutMs` is spent, also in synchronous code on the main thread; Python stops with `Timeout` through a watchdog (§4). `timeoutMs` applies to both runtimes; `0` means the host's default (120000), a negative value is `InvalidRequest`. Full-source mode gets the request's `usings` From 91b982957c4b04f957965a1836071863fe3fc558 Mon Sep 17 00:00:00 2001 From: Ivan Murzak Date: Fri, 30 Oct 2026 00:06:56 -0700 Subject: [PATCH 2/3] simplify: no changes Report-only review: the bump covers every hard-coded version; the blank line before v0.3.1 is pre-existing. Co-Authored-By: Claude Opus 5.5 From db9d59fbe1543052e51b8df6b17c4868ae963e7d Mon Sep 17 00:00:00 2001 From: Ivan Murzak Date: Fri, 30 Oct 2026 00:11:03 -0700 Subject: [PATCH 3/3] code review: no findings Report-only reviewer (high): every version reference is 0.4.0, the v0.4.0 changelog matches #7-#11. Co-Authored-By: Claude Opus 5.5