diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 93a92f1..73794f5 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -8,7 +8,7 @@ on: tag: description: Git tag to publish required: true - default: v0.8.2 + default: v0.8.3 permissions: contents: read diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c259c8..19657b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ Notable user- and contributor-visible changes are recorded here. +## 0.8.3 + +### External-pack compatibility and source time + +- Add the public conformance seam external packages use to resolve and verify exact installed + Domain Packs without importing the private host runtime. +- Preserve source publication time separately from observation and ingestion time in declarative + source mapping, including explicit unknown publication time. +- Export the durable Intelligence build-host composer through the public Application surface so + isolated installed-surface conformance cannot depend on test import order. +- Carry the merged single-user Builder hardening through active-session first-Brief binding while + preserving schema head v177, exactly eleven MCP tools, and the 0.8 compatibility line. + ## 0.8.2 ### Intelligence Catalog and outcome-led onboarding diff --git a/Dockerfile b/Dockerfile index 5fb0002..db335c0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.12-slim -ARG ACE_VERSION=0.8.2 +ARG ACE_VERSION=0.8.3 LABEL org.opencontainers.image.title="ace-core" \ org.opencontainers.image.version="${ACE_VERSION}" \ org.opencontainers.image.source="https://github.com/augmented-cognition-engine/core" diff --git a/README.md b/README.md index 51a3475..c39edba 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ monitors, and an intelligence system that improves with governed feedback. ACE i provenance, authority, durable state, and exact receipts stay built into the result instead of becoming infrastructure every product team must recreate. -![version 0.8.2](https://img.shields.io/badge/version-0.8.2-blue) +![version 0.8.3 candidate](https://img.shields.io/badge/version-0.8.3--candidate-blue) ![Python 3.12](https://img.shields.io/badge/python-3.12-blue) ![License Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-green) ![status: developer preview](https://img.shields.io/badge/status-developer%20preview-orange) @@ -386,7 +386,19 @@ transforms only), `ace.intelligence.personas/v1alpha1` (personas plus signal-rou --- -## What 0.8.2 adds +## What 0.8.3 adds + +0.8.3 is a compatibility patch for independently packaged Intelligence products. It adds the +public conformance seam needed to resolve exact installed Domain Packs and preserves source +publication time separately from observation and ingestion time. Market and other external +consumers can therefore test the exact installed pack and retain truthful bitemporal provenance +without importing the private host runtime. + +The patch also carries the subsequent single-user Builder hardening already merged on the 0.8 +line. It preserves schema head v177, exactly eleven public MCP tools, the inert Domain Pack +boundary, and the separately versioned adapter model. + +### What 0.8.2 added 0.8.2 makes first use start with the outcome a person wants rather than ACE's internal architecture. Atrium discovers every admitted onboarding profile from the governed Intelligence @@ -858,7 +870,7 @@ stay host-free, and host adapters are the only `core.engine` edge into the publi ## Maturity and limitations -**0.8.2 is the current published developer preview.** Its Intelligence OS +**0.8.3 is a release candidate over the published 0.8.2 developer preview.** Its Intelligence OS claim is bounded to the provider-free and installed-artifact journeys recorded in the evidence archive and the single-node topology below. Read this section before you build on it. diff --git a/ROADMAP.md b/ROADMAP.md index 7835f2b..b04a41a 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -82,6 +82,10 @@ on PyPI and GitHub. It packages the Atrium Intelligence Catalog as backward-comp of the released 0.8 promise. It is the entry foundation for—but does not complete—the 0.9 Single-user Intelligence Builder milestone. +The current 0.8.3 compatibility release candidate adds the public exact-installed-Pack +conformance seam and preserves source publication time separately from observation and ingestion +time. It remains a patch on the released 0.8 promise and does not advance roadmap maturity. + The 0.8 release makes the existing Builder, composition, memory, authority, action, and outcome capabilities coherent as one **Intelligence Operating System**. One governed point-in-time resource plane exposes the complete evidence → orientation → decision/action → outcome → feedback loop to diff --git a/ace/__init__.py b/ace/__init__.py index 53f86a7..bd9c1b4 100644 --- a/ace/__init__.py +++ b/ace/__init__.py @@ -1,3 +1,3 @@ """Public Python package identity for ACE.""" -__version__ = "0.8.2" +__version__ = "0.8.3" diff --git a/ace/application/__init__.py b/ace/application/__init__.py index 5acf100..fba5f4d 100644 --- a/ace/application/__init__.py +++ b/ace/application/__init__.py @@ -336,6 +336,10 @@ IntelligenceBuildFirstBriefRequestV1Alpha1, IntelligenceBuildFirstBriefRequestV1Alpha2, ) +from ace.application.intelligence_build_host import ( + DurableIntelligenceBuildHostComposer, + IntelligenceBuildHostCompositionError, +) from ace.application.intelligence_build_planning import ( INTELLIGENCE_BUILD_PLAN_REQUEST_V1ALPHA2_VERSION, INTELLIGENCE_BUILD_PLAN_REQUEST_VERSION, @@ -871,6 +875,8 @@ "IntelligenceBuildEffect", "IntelligenceBuildExecutor", "IntelligenceBuildFirstBriefPort", + "DurableIntelligenceBuildHostComposer", + "IntelligenceBuildHostCompositionError", "IntelligenceBuildHostServices", "IntelligenceBuildPreparedDerivationPort", "IntelligenceBuildResourcePagePort", diff --git a/ace_mcp_client/__init__.py b/ace_mcp_client/__init__.py index 11e5856..9075eb8 100644 --- a/ace_mcp_client/__init__.py +++ b/ace_mcp_client/__init__.py @@ -1,4 +1,4 @@ # ace_mcp_client — standalone MCP thin client for ACE # Zero engine imports. Pure HTTP calls to the ACE API. -__version__ = "0.8.2" +__version__ = "0.8.3" diff --git a/core/engine/version.py b/core/engine/version.py index 6b287d1..8e37945 100644 --- a/core/engine/version.py +++ b/core/engine/version.py @@ -1,3 +1,3 @@ """Single source of truth for the ACE distribution version.""" -VERSION = "0.8.2" +VERSION = "0.8.3" diff --git a/docs/capability-maturity.md b/docs/capability-maturity.md index 9bb2078..93843e3 100644 --- a/docs/capability-maturity.md +++ b/docs/capability-maturity.md @@ -1,6 +1,6 @@ -# ACE 0.8.2 candidate capability maturity +# ACE 0.8.3 candidate capability maturity -ACE 0.8.2 is a release candidate over the published 0.8.1 developer preview. This page +ACE 0.8.3 is a release candidate over the published 0.8.2 developer preview. This page distinguishes the public contract from implemented surfaces that remain experimental. @@ -13,13 +13,13 @@ install ace-core → configure SurrealDB and an optional provider → start ACE → connect → map → watch → receive a cited brief → activate → inspect resources → stop cleanly ``` -The 0.8.2 candidate identities are: +The 0.8.3 candidate identities are: - Python distribution: `ace-core` - Python import: `ace` - CLI command: `ace` - thin MCP command: `ace-mcp-client` -- version: `0.8.2` +- version: `0.8.3` The thin MCP surface contains exactly eleven tools: diff --git a/docs/evidence/README.md b/docs/evidence/README.md index 1a4b144..949fa58 100644 --- a/docs/evidence/README.md +++ b/docs/evidence/README.md @@ -32,6 +32,8 @@ superseded by later work and is kept for audit trail only. — public, passed; exact tag, trusted publication, hashes, and checkout-free install - [ace-core 0.8.2 Intelligence Catalog release candidate](intelligence-catalog-v0.8.2-release-candidate-v1.md) — candidate; artifact, paired-domain, publication, and public-index gates pending +- [ace-core 0.8.3 external-pack compatibility release candidate](external-pack-compatibility-v0.8.3-release-candidate-v1.md) + — candidate; exact-pack, semantic-time, artifact, publication, and public-index gates pending - [ace-core 0.8.0 Intelligence OS release candidate](intelligence-os-v0.8.0-release-candidate-v1.md) — historical pre-publication candidate; cumulative Core, Atrium, World, Market, and package gate diff --git a/docs/evidence/external-pack-compatibility-v0.8.3-release-candidate-v1.md b/docs/evidence/external-pack-compatibility-v0.8.3-release-candidate-v1.md new file mode 100644 index 0000000..455e46a --- /dev/null +++ b/docs/evidence/external-pack-compatibility-v0.8.3-release-candidate-v1.md @@ -0,0 +1,50 @@ +# ACE 0.8.3 external-pack compatibility release candidate + +Status: **candidate — artifact, publication, and public-index gates pending** + +## Promise + +ACE 0.8.3 lets independently packaged Intelligence products verify the exact installed Domain +Pack through a public conformance seam and retain source publication time separately from +observation and ingestion time. The patch exists to remove version skew between Core and external +pack conformance without exposing the private host runtime or changing the 0.8 product promise. + +## Candidate coordinates + +- source base: Core main merge `1fe2d3c0759d42aebd057018ebf00aa6d2178f3b`; +- release branch: `codex/v083-compat-release`; +- candidate distribution: `ace-core==0.8.3`; +- required compatibility merges: `94b55c2` (#166) and `08f8419` (#170); +- schema head: v177; +- public MCP surface: exactly eleven tools; +- reference action adapter: unchanged distribution 0.4.0 with `ace-core>=0.8.0,<0.9`. + +## Included changes + +1. `ace.intelligence.conformance` resolves and verifies exact installed pack material for external + consumer tests without a private `core.engine` import. +2. Declarative source mapping preserves nullable publication time independently from observed and + ingested time. +3. The durable Intelligence build-host composer is loaded and exported by the public Application + package, including in an isolated installed-surface conformance run. +4. Subsequent merged Builder hardening through active-session first-Brief binding remains on the + same schema, MCP, authority, and separately installed adapter boundaries. + +## Required acceptance before publication + +- Core lint, fast tests, naked-kernel, Canvas, security, and Docker gates pass at the exact + candidate head. +- Package identity, roadmap positioning, evidence-index, conformance, source-mapping, and + build-backend gates pass. +- The wheel and sdist build reproducibly, pass strict Twine validation, install outside the + checkout, report 0.8.3, import the public conformance seam, preserve semantic source time, and + expose exactly eleven MCP tools. +- The Market consumer can then pin the public 0.8.3 artifact, regenerate only its current + candidate artifacts, and preserve every frozen historical release packet. + +## Boundaries + +This patch does not claim a universal connector catalog, collaborative multi-tenancy, hostile-code +isolation, distributed operation, autonomous source authorization, arbitrary web access, +autonomous publication, general real-world causal accuracy, or general beneficial impact. It does +not advance roadmap maturity or complete the 0.9 or 1.0 release gates. diff --git a/docs/faq.md b/docs/faq.md index aab8cfb..e0d471c 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -4,7 +4,7 @@ This FAQ answers the operational questions that tend to appear after the archite what happens when part of a committee fails, how conflicting claims are handled, what confidence means, and how multiple products share SurrealDB without becoming one undifferentiated memory. -ACE 0.8.2 is a release candidate over the published 0.8.1 developer preview. Answers below +ACE 0.8.3 is a release candidate over the published 0.8.2 developer preview. Answers below distinguish the supported Intelligence OS contract from broader engine capabilities whose APIs and end-to-end journeys remain experimental. See [capability maturity](capability-maturity.md) for the authoritative boundary and @@ -370,7 +370,7 @@ end-to-end operating journeys remain experimental in 0.8. ### What is the stable public contract today? -ACE 0.8.2 is a developer-preview release candidate: the self-hosted CLI, exactly eleven thin MCP tools, +ACE 0.8.3 is a developer-preview release candidate: the self-hosted CLI, exactly eleven thin MCP tools, documented provider routes, schema migrations, public Core/Intelligence/Application packages, inert Domain Pack boundary, and authorized Intelligence resource plane. Atrium is a supported, optional repository-delivered preview over that same plane; it is not included in the Python diff --git a/extensions/reference/extension.py b/extensions/reference/extension.py index dc64c11..739e25a 100644 --- a/extensions/reference/extension.py +++ b/extensions/reference/extension.py @@ -56,7 +56,7 @@ class ProductExtension: """The open `product` extension — copy this file to start your own.""" name = "product" - version = "0.8.2" + version = "0.8.3" def register(self, reg: "Registry") -> None: # This must remain the first operation. A current reference extension diff --git a/infra/docker-compose.yml b/infra/docker-compose.yml index c4fe70c..1793f67 100644 --- a/infra/docker-compose.yml +++ b/infra/docker-compose.yml @@ -40,7 +40,7 @@ services: context: .. dockerfile: Dockerfile args: - ACE_VERSION: "0.8.2" + ACE_VERSION: "0.8.3" depends_on: surrealdb: condition: service_healthy @@ -61,9 +61,9 @@ services: context: .. dockerfile: Dockerfile args: - ACE_VERSION: "0.8.2" + ACE_VERSION: "0.8.3" labels: - org.opencontainers.image.version: "0.8.2" + org.opencontainers.image.version: "0.8.3" depends_on: surrealdb: condition: service_healthy @@ -98,9 +98,9 @@ services: context: .. dockerfile: Dockerfile args: - ACE_VERSION: "0.8.2" + ACE_VERSION: "0.8.3" labels: - org.opencontainers.image.version: "0.8.2" + org.opencontainers.image.version: "0.8.3" depends_on: surrealdb: condition: service_healthy diff --git a/pyproject.toml b/pyproject.toml index c599bcd..7af349b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "ace-core" -version = "0.8.2" +version = "0.8.3" description = "Open Intelligence Operating System with a guided Intelligence Builder" readme = "README.md" license = "Apache-2.0" diff --git a/tests/test_package_identity.py b/tests/test_package_identity.py index 9ceddfa..b799c9e 100644 --- a/tests/test_package_identity.py +++ b/tests/test_package_identity.py @@ -20,7 +20,7 @@ def test_distribution_import_cli_and_version_identities() -> None: project = tomllib.loads((ROOT / "pyproject.toml").read_text(encoding="utf-8"))["project"] assert project["name"] == "ace-core" - assert project["version"] == ace.__version__ == ace_mcp_client.__version__ == VERSION == "0.8.2" + assert project["version"] == ace.__version__ == ace_mcp_client.__version__ == VERSION == "0.8.3" assert ProductExtension.version == project["version"] assert project["scripts"]["ace"] == "core.engine.cli.main:cli" assert "aiohttp>=3.14.3" in project["dependencies"] @@ -43,7 +43,7 @@ def test_package_copy_and_public_links_are_release_ready() -> None: def test_release_workflow_defaults_to_and_guards_current_version() -> None: workflow = (ROOT / ".github" / "workflows" / "publish.yml").read_text(encoding="utf-8") - assert "default: v0.8.2" in workflow + assert "default: v0.8.3" in workflow assert "Validate release tag matches package version" in workflow assert 'if [ "$RELEASE_TAG" != "v$package_version" ]' in workflow assert "ace-core-python-distributions" in workflow @@ -58,13 +58,13 @@ def test_release_workflow_defaults_to_and_guards_current_version() -> None: def test_docker_image_includes_public_cli_package() -> None: dockerfile = (ROOT / "Dockerfile").read_text(encoding="utf-8") assert "COPY ace/ ace/" in dockerfile - assert "ARG ACE_VERSION=0.8.2" in dockerfile + assert "ARG ACE_VERSION=0.8.3" in dockerfile assert 'org.opencontainers.image.version="${ACE_VERSION}"' in dockerfile assert "uv sync --frozen --no-dev --no-editable --no-cache" in dockerfile compose = (ROOT / "infra" / "docker-compose.yml").read_text(encoding="utf-8") - assert compose.count('ACE_VERSION: "0.8.2"') == 3 - assert compose.count('org.opencontainers.image.version: "0.8.2"') == 2 + assert compose.count('ACE_VERSION: "0.8.3"') == 3 + assert compose.count('org.opencontainers.image.version: "0.8.3"') == 2 def test_lock_tracks_the_distribution_identity() -> None: diff --git a/tests/test_public_roadmap_positioning.py b/tests/test_public_roadmap_positioning.py index 73ccdd3..fac7fce 100644 --- a/tests/test_public_roadmap_positioning.py +++ b/tests/test_public_roadmap_positioning.py @@ -5,7 +5,8 @@ ROADMAP = (Path(__file__).resolve().parents[1] / "ROADMAP.md").read_text(encoding="utf-8") ROADMAP_ONE_LINE = " ".join(ROADMAP.split()) -# The current-release assertions preserve the bounded published 0.8.2 patch. Historical 0.4.1 GI2, +# The current-release assertions preserve published 0.8.2 while admitting the bounded 0.8.3 +# compatibility candidate. Historical 0.4.1 GI2, # 0.4.2 builder-surface, 0.4.4 GC1, 0.5.0 T1/B1, and P1/P2 identities remain exact point-in-time # evidence. Keep these aligned with test_evidence_index_integrity.py. @@ -13,6 +14,7 @@ def test_current_release_and_passed_milestone_are_not_conflated() -> None: assert "latest published release is [`ace-core` 0.8.2]" in ROADMAP assert "passed 0.8.2 patch adds the Atrium Intelligence Catalog" in ROADMAP + assert "current 0.8.3 compatibility release candidate" in ROADMAP assert ROADMAP.count("| 0.4.x | Governed Cognition | **Passed** |") == 1 assert "| 0.4.0 | Governed Cognition | **Delivered** |" not in ROADMAP assert "| 0.4.0 | Governed Cognition | **Now** |" not in ROADMAP @@ -20,7 +22,7 @@ def test_current_release_and_passed_milestone_are_not_conflated() -> None: assert "| 0.6.0 | Measured Intelligence | **Passed** |" in ROADMAP assert "| 0.7.0 | Intelligence Builder Foundation | **Passed** |" in ROADMAP readme = (Path(__file__).resolve().parents[1] / "README.md").read_text(encoding="utf-8") - assert "0.8.2 is the current published developer preview" in " ".join(readme.split()) + assert "0.8.3 is a release candidate over the published 0.8.2 developer preview" in " ".join(readme.split()) assert "| 0.8.0 | Intelligence OS Realignment | **Passed** |" in ROADMAP assert "| 0.9.0 | Single-user Intelligence Builder | **Now** |" in ROADMAP assert "| 1.0.0 | Personal Intelligence Operating System | **Next** |" in ROADMAP diff --git a/uv.lock b/uv.lock index 74e85f2..89a58a3 100644 --- a/uv.lock +++ b/uv.lock @@ -4,7 +4,7 @@ requires-python = "==3.12.*" [[package]] name = "ace-core" -version = "0.8.2" +version = "0.8.3" source = { editable = "." } dependencies = [ { name = "aiohttp" },