From fecd42c6b15bf8a73911e565b515f6a99b2bccb7 Mon Sep 17 00:00:00 2001 From: Edwin Amirian Date: Thu, 13 Aug 2026 13:07:39 -0700 Subject: [PATCH] release: prepare Core 0.8.2 Intelligence Catalog --- .github/workflows/publish.yml | 2 +- CHANGELOG.md | 13 +++++ Dockerfile | 2 +- README.md | 20 +++++-- ROADMAP.md | 6 ++- ace/__init__.py | 2 +- ace_mcp_client/__init__.py | 2 +- core/engine/version.py | 2 +- docs/capability-maturity.md | 9 ++-- docs/evidence/README.md | 2 + ...nce-catalog-v0.8.2-release-candidate-v1.md | 53 +++++++++++++++++++ docs/faq.md | 5 +- extensions/reference/extension.py | 2 +- infra/docker-compose.yml | 10 ++-- pyproject.toml | 2 +- tests/test_package_identity.py | 10 ++-- tests/test_public_roadmap_positioning.py | 6 ++- uv.lock | 2 +- 18 files changed, 120 insertions(+), 30 deletions(-) create mode 100644 docs/evidence/intelligence-catalog-v0.8.2-release-candidate-v1.md diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 7c1daee..93a92f1 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.1 + default: v0.8.2 permissions: contents: read diff --git a/CHANGELOG.md b/CHANGELOG.md index b7d63a8..0c259c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ Notable user- and contributor-visible changes are recorded here. +## 0.8.2 + +### Intelligence Catalog and outcome-led onboarding + +- Discover all admitted Intelligence onboarding profiles through the existing authenticated + resource plane and deduplicate them by durable profile identity. +- Open Atrium by asking what intelligence the user wants, with domain-provided starter questions + and source groups plus a Core-owned Custom Intelligence path. +- Keep domain vocabulary and selection metadata in inert Domain Packs; catalog discovery grants no + source, monitor, installation, or activation authority. +- Preserve schema head v177, the 24-kind resource plane, exactly eleven MCP tools, and the 0.8 + compatibility line. + ## 0.8.1 ### Intelligence Builder product experience diff --git a/Dockerfile b/Dockerfile index 247dd12..5fb0002 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.12-slim -ARG ACE_VERSION=0.8.1 +ARG ACE_VERSION=0.8.2 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 196a63b..769ef19 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.1](https://img.shields.io/badge/version-0.8.1-blue) +![version 0.8.2 candidate](https://img.shields.io/badge/version-0.8.2--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,20 @@ transforms only), `ace.intelligence.personas/v1alpha1` (personas plus signal-rou --- -## What 0.8.1 adds +## What 0.8.2 adds + +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 +resource plane, presents each domain as a selectable Intelligence experience, and always offers a +Core-owned Custom Intelligence path. Domain labels, starter questions, and source groups remain +declarative pack metadata; selection grants no source, monitoring, or activation authority. + +World and Market supply their own profiles from independent repositories. Core remains +domain-neutral and names neither vertical. This is backward-compatible product-experience +hardening of the 0.8 Intelligence OS promise, not completion of the 0.9 Collaborative Intelligence +gate. + +### What 0.8.1 added 0.8.1 turns the Intelligence OS foundation into a clearer first-run product experience without changing the 0.8 public architecture or widening authority. @@ -845,7 +858,8 @@ stay host-free, and host adapters are the only `core.engine` edge into the publi ## Maturity and limitations -**0.8.1 is a published developer-preview release.** Its Intelligence OS claim is bounded to +**0.8.2 is a release candidate over the published 0.8.1 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 53e00d1..c64d98a 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -79,6 +79,10 @@ Roadmap outcome states are used strictly: The latest published release is `ace-core` 0.8.1 on PyPI and GitHub. +The current 0.8.2 release candidate packages the Atrium Intelligence Catalog as backward-compatible +hardening of that published promise. It does not advance or rename the 0.9 Collaborative +Intelligence milestone. + 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 @@ -110,7 +114,7 @@ defines the Opportunity experience, introduces the ACE-owned design system, and visual What / Why / How / When grammar across Briefs and decision-facing intelligence. It does not change the 0.9 Collaborative Intelligence promise. -Current post-0.8.1 candidate work adds the Atrium Intelligence Catalog as an experience entry +The 0.8.2 candidate adds the Atrium Intelligence Catalog as an experience entry slice: the generic resource consumer enumerates all admitted onboarding profiles in product scope, deduplicates them by profile identity, and always offers the Core-owned Custom Intelligence path. World and Marketing contribute their own declarative profiles from their independent repositories; diff --git a/ace/__init__.py b/ace/__init__.py index 96f4a58..53f86a7 100644 --- a/ace/__init__.py +++ b/ace/__init__.py @@ -1,3 +1,3 @@ """Public Python package identity for ACE.""" -__version__ = "0.8.1" +__version__ = "0.8.2" diff --git a/ace_mcp_client/__init__.py b/ace_mcp_client/__init__.py index b0c07a0..11e5856 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.1" +__version__ = "0.8.2" diff --git a/core/engine/version.py b/core/engine/version.py index 2d148bd..6b287d1 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.1" +VERSION = "0.8.2" diff --git a/docs/capability-maturity.md b/docs/capability-maturity.md index 40da5cf..9bb2078 100644 --- a/docs/capability-maturity.md +++ b/docs/capability-maturity.md @@ -1,6 +1,7 @@ -# ACE 0.8.1 capability maturity +# ACE 0.8.2 candidate capability maturity -ACE 0.8.1 is a developer preview. This page distinguishes the public contract from implemented +ACE 0.8.2 is a release candidate over the published 0.8.1 developer preview. This page +distinguishes the public contract from implemented surfaces that remain experimental. ## Preview contract @@ -12,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.1 public identities are: +The 0.8.2 candidate identities are: - Python distribution: `ace-core` - Python import: `ace` - CLI command: `ace` - thin MCP command: `ace-mcp-client` -- version: `0.8.1` +- version: `0.8.2` The thin MCP surface contains exactly eleven tools: diff --git a/docs/evidence/README.md b/docs/evidence/README.md index cd012ad..1a4b144 100644 --- a/docs/evidence/README.md +++ b/docs/evidence/README.md @@ -30,6 +30,8 @@ superseded by later work and is kept for audit trail only. - [ace-core 0.8.0 Intelligence OS release closeout](intelligence-os-v0.8.0-release-closeout-v1.md) - [ace-core 0.8.1 Intelligence Builder product-experience release candidate](intelligence-os-v0.8.1-release-candidate-v1.md) — 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.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/intelligence-catalog-v0.8.2-release-candidate-v1.md b/docs/evidence/intelligence-catalog-v0.8.2-release-candidate-v1.md new file mode 100644 index 0000000..98030b6 --- /dev/null +++ b/docs/evidence/intelligence-catalog-v0.8.2-release-candidate-v1.md @@ -0,0 +1,53 @@ +# ACE 0.8.2 Intelligence Catalog release candidate + +Status: **candidate — artifact, public-domain, and publication gates pending** + +## Promise + +ACE 0.8.2 makes first use outcome-led. Atrium asks what intelligence a person wants, discovers +every admitted onboarding profile through the governed Intelligence resource plane, and carries the +selection into the existing Connect → Map → Watch → Brief → Activate Builder flow. The catalog is +presentation over durable resources, not a new registry, state store, or authority path. + +## Candidate coordinates + +- source base: Core main merge `7dd98c09b2285cc5577226a8f7384ba4a5b9021a`; +- release branch: `codex/v0.8.2-intelligence-catalog-release`; +- candidate distribution: `ace-core==0.8.2`; +- paired domain candidates: World Intelligence 0.12.0 and Market Intelligence 0.7.0; +- 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. The generic resource plane can project multiple admitted onboarding profiles in product scope. +2. Atrium deduplicates profiles by durable identity and always adds the Core-owned Custom + Intelligence path. +3. Profiles can declare display labels, starter questions, and grouped source choices without + adding domain nouns to Core or imperative code to a pack. +4. World and Market provide their own declarative profiles from independent repositories. +5. Selecting a profile grants no installation, connection, monitoring, or activation authority; + all effects remain on the existing reviewed Builder 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, and build-backend gates pass. +- The wheel and sdist build reproducibly, pass strict Twine validation, install outside the + checkout, report 0.8.2, preserve the 24-kind resource plane, and expose exactly eleven MCP tools. +- Atrium desktop and mobile acceptance proves World, Market, and Custom catalog choices without + overflow, uncaught console errors, hidden authority, or domain naming in Core contracts. +- Independently built World 0.12.0 and Market 0.7.0 candidates install against the exact Core 0.8.2 + artifact and admit their profiles through the unchanged public resource plane. + +## Boundaries + +This patch does not claim 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 the 0.9 +Collaborative Intelligence or 1.0 stable-contract gates. + +Publication, tags, hashes, public-index reproduction, and final limitations require a separate +immutable closeout after all three independently versioned artifacts exist. diff --git a/docs/faq.md b/docs/faq.md index 0f2a16a..aab8cfb 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -4,7 +4,8 @@ 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.1 is a developer preview. Answers below distinguish the supported Intelligence OS contract +ACE 0.8.2 is a release candidate over the published 0.8.1 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 [architecture](architecture.md) for the as-built system map. @@ -369,7 +370,7 @@ end-to-end operating journeys remain experimental in 0.8. ### What is the stable public contract today? -ACE 0.8.1 is a developer-preview contract: the self-hosted CLI, exactly eleven thin MCP tools, +ACE 0.8.2 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 75c3f8b..dc64c11 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.1" + version = "0.8.2" 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 7331603..c4fe70c 100644 --- a/infra/docker-compose.yml +++ b/infra/docker-compose.yml @@ -40,7 +40,7 @@ services: context: .. dockerfile: Dockerfile args: - ACE_VERSION: "0.8.1" + ACE_VERSION: "0.8.2" depends_on: surrealdb: condition: service_healthy @@ -61,9 +61,9 @@ services: context: .. dockerfile: Dockerfile args: - ACE_VERSION: "0.8.1" + ACE_VERSION: "0.8.2" labels: - org.opencontainers.image.version: "0.8.1" + org.opencontainers.image.version: "0.8.2" depends_on: surrealdb: condition: service_healthy @@ -98,9 +98,9 @@ services: context: .. dockerfile: Dockerfile args: - ACE_VERSION: "0.8.1" + ACE_VERSION: "0.8.2" labels: - org.opencontainers.image.version: "0.8.1" + org.opencontainers.image.version: "0.8.2" depends_on: surrealdb: condition: service_healthy diff --git a/pyproject.toml b/pyproject.toml index 3ac027d..d53501e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "ace-core" -version = "0.8.1" +version = "0.8.2" 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 374250a..9ceddfa 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.1" + assert project["version"] == ace.__version__ == ace_mcp_client.__version__ == VERSION == "0.8.2" 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.1" in workflow + assert "default: v0.8.2" 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.1" in dockerfile + assert "ARG ACE_VERSION=0.8.2" 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.1"') == 3 - assert compose.count('org.opencontainers.image.version: "0.8.1"') == 2 + assert compose.count('ACE_VERSION: "0.8.2"') == 3 + assert compose.count('org.opencontainers.image.version: "0.8.2"') == 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 ddb45c0..02578e4 100644 --- a/tests/test_public_roadmap_positioning.py +++ b/tests/test_public_roadmap_positioning.py @@ -5,13 +5,15 @@ ROADMAP = (Path(__file__).resolve().parents[1] / "ROADMAP.md").read_text(encoding="utf-8") ROADMAP_ONE_LINE = " ".join(ROADMAP.split()) -# The current-release assertions are the coordinated 0.8.1 patch closeout gate. Historical 0.4.1 GI2, +# The current-release assertions preserve published 0.8.1 while admitting the bounded 0.8.2 +# 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. def test_current_release_and_passed_milestone_are_not_conflated() -> None: assert "latest published release is `ace-core` 0.8.1 on PyPI and GitHub" in ROADMAP + assert "current 0.8.2 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 @@ -19,7 +21,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.1 is a published developer-preview release" in " ".join(readme.split()) + assert "0.8.2 is a release candidate over the published 0.8.1 developer preview" in " ".join(readme.split()) assert "| 0.8.0 | Intelligence OS Realignment | **Passed** |" in ROADMAP assert "| 0.9.0 | Collaborative Intelligence | **Now** |" in ROADMAP assert "| 1.0.0 | Intelligence Operating System | **Later** |" in ROADMAP diff --git a/uv.lock b/uv.lock index a3c39b0..74e85f2 100644 --- a/uv.lock +++ b/uv.lock @@ -4,7 +4,7 @@ requires-python = "==3.12.*" [[package]] name = "ace-core" -version = "0.8.1" +version = "0.8.2" source = { editable = "." } dependencies = [ { name = "aiohttp" },