diff --git a/docs/product/release-readiness.md b/docs/product/release-readiness.md index c7ddad880..4f5ba447f 100644 --- a/docs/product/release-readiness.md +++ b/docs/product/release-readiness.md @@ -443,6 +443,13 @@ path, and canary route rather than as a user-facing release baseline. matching `v0.4.8` tag. LoopX adopts Apache-2.0 for the open core, ships as a first-class PyPI distribution, adds per-Todo validation budgets, and tightens benchmark integrity qualification and Content Ops presentation density. +- `v0.4.9` on 2026-08-19: cross-platform host and long-loop reliability release + at the matching `v0.4.9` tag. LoopX makes PyPI the default complete install + path, adds native Windows PowerShell and KunlunCode Goal Pro support, ships an + opt-in repository change-window provider with a durable pending-change + ledger, and hardens heartbeat settlement, Todo validation, PR review + scheduling, native Goal benchmark isolation, and public repository signal + providers. When a new public release is promoted, add it here only after the matching tag, release note, stable ref, update path, and focused release canary agree. diff --git a/loopx/__init__.py b/loopx/__init__.py index 1f1569ba3..f2f842ede 100644 --- a/loopx/__init__.py +++ b/loopx/__init__.py @@ -2,4 +2,4 @@ __all__ = ["__version__"] -__version__ = "0.4.8" +__version__ = "0.4.9" diff --git a/pyproject.toml b/pyproject.toml index ce20267bf..0c32f2ca7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "loopx" -version = "0.4.8" +version = "0.4.9" description = "A lightweight Loop Engineering control plane for long-running agent goals." readme = "README.md" requires-python = ">=3.11" diff --git a/tests/test_license_metadata.py b/tests/test_license_metadata.py index 6a16a7da5..41b19299e 100644 --- a/tests/test_license_metadata.py +++ b/tests/test_license_metadata.py @@ -31,8 +31,8 @@ def test_root_license_is_canonical_apache_2_with_historical_notices() -> None: def test_python_distributions_declare_apache_2() -> None: root_project = _project_metadata("pyproject.toml") - assert root_project["version"] == "0.4.8" - assert '__version__ = "0.4.8"' in (ROOT / "loopx/__init__.py").read_text() + assert root_project["version"] == "0.4.9" + assert '__version__ = "0.4.9"' in (ROOT / "loopx/__init__.py").read_text() assert root_project["license"] == "Apache-2.0" assert set(root_project["license-files"]) == {"LICENSE", "NOTICE", "LICENSE-MIT"}