diff --git a/CHANGELOG.md b/CHANGELOG.md
index 23ff79a2..4b157d47 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,21 @@
+## [0.49.0](https://github.com/archgate/cli/compare/v0.48.4...v0.49.0) (2026-07-16)
+
+### ⚠ BREAKING CHANGES
+
+* **engine:** block naming runtime globals to close reflective sandbox escapes (#481)
+* **engine:** close rule-file sandbox escapes via module allowlist (#477)
+* **cli:** emit lean agent-facing JSON payloads by default (#476)
+
+### Features
+
+* **cli:** emit lean agent-facing JSON payloads by default ([#476](https://github.com/archgate/cli/issues/476)) ([04affa3](https://github.com/archgate/cli/commit/04affa3ab0659081c0fa3b0e33d1e0b1886fbc96))
+* **engine:** base-revision + comment access for ctx.ast() (closes [#479](https://github.com/archgate/cli/issues/479)) ([#480](https://github.com/archgate/cli/issues/480)) ([49feb1f](https://github.com/archgate/cli/commit/49feb1f7f3895fb98a001892f5917ad384bc25ad)), closes [#477](https://github.com/archgate/cli/issues/477)
+
+### Bug Fixes
+
+* **engine:** block naming runtime globals to close reflective sandbox escapes ([#481](https://github.com/archgate/cli/issues/481)) ([6666df2](https://github.com/archgate/cli/commit/6666df2c61098f354d70ed00da6274a15f454bc1)), closes [#477](https://github.com/archgate/cli/issues/477) [#480](https://github.com/archgate/cli/issues/480)
+* **engine:** close rule-file sandbox escapes via module allowlist ([#477](https://github.com/archgate/cli/issues/477)) ([18db14d](https://github.com/archgate/cli/commit/18db14d45b1d50b632d9f9ce98b93d66cf43d1ae))
+
## [0.48.4](https://github.com/archgate/cli/compare/v0.48.3...v0.48.4) (2026-07-13)
### Performance Improvements
diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs
index 821022c8..6d42c627 100644
--- a/docs/astro.config.mjs
+++ b/docs/astro.config.mjs
@@ -183,7 +183,7 @@ export default defineConfig({
applicationCategory: "DeveloperApplication",
applicationSubCategory: "Code Linting",
operatingSystem: "macOS, Linux, Windows",
- softwareVersion: "0.48.4",
+ softwareVersion: "0.49.0",
license: "https://github.com/archgate/cli/blob/main/LICENSE",
offers: { "@type": "Offer", price: "0", priceCurrency: "USD" },
url: "https://cli.archgate.dev",
diff --git a/docs/public/version.json b/docs/public/version.json
index b5b427ac..18425548 100644
--- a/docs/public/version.json
+++ b/docs/public/version.json
@@ -1 +1 @@
-{ "version": "v0.48.4" }
+{ "version": "v0.49.0" }
diff --git a/package.json b/package.json
index 39520ec3..53a89a94 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "archgate",
- "version": "0.48.4",
+ "version": "0.49.0",
"description": "Enforce Architecture Decision Records as executable rules — for both humans and AI agents",
"keywords": [
"adr",
diff --git a/shims/go/internal/shim/shim.go b/shims/go/internal/shim/shim.go
index 83123bb6..b429b33d 100644
--- a/shims/go/internal/shim/shim.go
+++ b/shims/go/internal/shim/shim.go
@@ -16,7 +16,7 @@ import (
)
// Version is the archgate CLI version this shim downloads.
-const Version = "0.48.4"
+const Version = "0.49.0"
const (
releaseBaseURL = "https://github.com/archgate/cli/releases/download"
diff --git a/shims/maven/pom.xml b/shims/maven/pom.xml
index 1cb5fe52..6179855c 100644
--- a/shims/maven/pom.xml
+++ b/shims/maven/pom.xml
@@ -6,7 +6,7 @@
dev.archgate
archgate-cli
- 0.48.4
+ 0.49.0
jar
archgate-cli
diff --git a/shims/maven/src/main/java/dev/archgate/cli/Shim.java b/shims/maven/src/main/java/dev/archgate/cli/Shim.java
index 99e941ad..96ee0334 100644
--- a/shims/maven/src/main/java/dev/archgate/cli/Shim.java
+++ b/shims/maven/src/main/java/dev/archgate/cli/Shim.java
@@ -30,7 +30,7 @@
*/
public final class Shim {
- private static final String VERSION = "0.48.4";
+ private static final String VERSION = "0.49.0";
private static final String BASE_URL = "https://github.com/archgate/cli/releases/download/v" + VERSION + "/";
private Shim() {}
diff --git a/shims/nuget/Archgate.Tool/Archgate.Tool.csproj b/shims/nuget/Archgate.Tool/Archgate.Tool.csproj
index 6aed6962..d567f28d 100644
--- a/shims/nuget/Archgate.Tool/Archgate.Tool.csproj
+++ b/shims/nuget/Archgate.Tool/Archgate.Tool.csproj
@@ -6,7 +6,7 @@
true
archgate
archgate
- 0.48.4
+ 0.49.0
Enforce Architecture Decision Records as executable rules — for both humans and AI agents
Archgate
Apache-2.0
diff --git a/shims/nuget/Archgate.Tool/Program.cs b/shims/nuget/Archgate.Tool/Program.cs
index bf259a07..89886c86 100644
--- a/shims/nuget/Archgate.Tool/Program.cs
+++ b/shims/nuget/Archgate.Tool/Program.cs
@@ -8,7 +8,7 @@ namespace Archgate.Tool;
internal static class Program
{
- private const string Version = "0.48.4";
+ private const string Version = "0.49.0";
private static readonly string CacheDir = Path.Join(
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
diff --git a/shims/pypi/archgate/_version.py b/shims/pypi/archgate/_version.py
index 6bf40d56..d4ace94d 100644
--- a/shims/pypi/archgate/_version.py
+++ b/shims/pypi/archgate/_version.py
@@ -1 +1 @@
-__version__ = "0.48.4"
+__version__ = "0.49.0"
diff --git a/shims/pypi/pyproject.toml b/shims/pypi/pyproject.toml
index f59cfc84..844e270a 100644
--- a/shims/pypi/pyproject.toml
+++ b/shims/pypi/pyproject.toml
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project]
name = "archgate"
-version = "0.48.4"
+version = "0.49.0"
description = "Enforce Architecture Decision Records as executable rules — for both humans and AI agents"
readme = "README.md"
requires-python = ">=3.8"
diff --git a/shims/rubygem/lib/archgate/version.rb b/shims/rubygem/lib/archgate/version.rb
index f0ee6dc5..db17067a 100644
--- a/shims/rubygem/lib/archgate/version.rb
+++ b/shims/rubygem/lib/archgate/version.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
module Archgate
- VERSION = "0.48.4"
+ VERSION = "0.49.0"
end