Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 19 additions & 4 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
tag:
description: Git tag to publish
required: true
default: v0.5.0
default: v0.6.0

permissions:
contents: read
Expand Down Expand Up @@ -46,8 +46,8 @@ jobs:
exit 1
fi
adapter_version="$(python -c 'import pathlib, tomllib; print(tomllib.loads(pathlib.Path("adapters/reference_workspace_action/pyproject.toml").read_text())["project"]["version"])')"
if [ "$adapter_version" != "0.1.0" ]; then
echo "Reference workspace adapter version must be 0.1.0; found $adapter_version" >&2
if [ "$adapter_version" != "0.2.0" ]; then
echo "Reference workspace adapter version must be 0.2.0; found $adapter_version" >&2
exit 1
fi

Expand All @@ -61,7 +61,7 @@ jobs:
pathlib.Path("adapters/reference_workspace_action/pyproject.toml").read_text()
)["project"]
assert project["name"] == "ace-reference-workspace-action"
assert project["dependencies"] == ["ace-core>=0.5.0,<0.6"]
assert project["dependencies"] == ["ace-core>=0.6.0,<0.7"]
PY

- name: Install build tooling
Expand All @@ -74,6 +74,21 @@ jobs:
run: |
python -m build --outdir dist/core
python -m build --outdir dist/reference-adapter adapters/reference_workspace_action

# The root project uses build_backend.py directly. The independently packaged adapter
# uses setuptools, so normalize its completed sdist through the same fixed-epoch helper
# before validation and upload.
python - <<'PY'
import os
from pathlib import Path

from build_backend import _normalize_sdist

archives = sorted(Path("dist/reference-adapter").glob("*.tar.gz"))
assert len(archives) == 1, archives
_normalize_sdist(archives[0], int(os.environ["SOURCE_DATE_EPOCH"]))
PY

python -m twine check dist/core/* dist/reference-adapter/*

- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
Expand Down
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,32 @@ Notable user- and contributor-visible changes are recorded here.

## Unreleased

## 0.6.0

### Measured Intelligence

- Add domain-neutral, versioned criteria, condition, evidence, evaluation, and governance-proposal
contracts that link an intelligence artifact or cognition revision to exact material-use,
Decision, reviewed Action, observed-result, Outcome, control, and cutoff provenance.
- Classify bounded matched evidence as `useful`, `harmful`, or `unproven` without accepting a
caller-supplied quality label. Missing attribution, mismatched conditions, future leakage,
unavailable outcomes, duplicate evidence, and insufficient matched support remain explicit.
- Persist evaluation and proposal receipts atomically through Core's append-only record boundary.
Exact historical replay survives restart; divergent replay, scope drift, and unauthorized
promotion fail closed.
- Keep promotion, rejection, rollback, and retirement proposals non-effective, non-selectable, and
unapplied. A separately authorized reviewer may record an accept/reject `no_action` Decision but
cannot silently change effective state.

### Release and hardening boundary

- Version the Core distribution at 0.6.0 and the separately packaged reference action adapter at
0.2.0 with an `ace-core>=0.6.0,<0.7` dependency. The unchanged adapter implementation retains its
0.1.0 capability artifact identity.
- Add the issue #49 F1 generation guard and durable receipt reconciliation, and pin the legacy
optimizer query to `self_optimizer_proposal`. F3 remains unresolved and tracked separately under
its explicit containment and 2026-11-05 deadline.

### Owner-governed monitoring

- Add public append-only lifecycle requests, receipts, and a durable application service for one
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM python:3.12-slim

ARG ACE_VERSION=0.5.0
ARG ACE_VERSION=0.6.0
LABEL org.opencontainers.image.title="ace-core" \
org.opencontainers.image.version="${ACE_VERSION}" \
org.opencontainers.image.source="https://github.com/augmented-cognition-engine/core"
Expand Down
57 changes: 33 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ and provider-neutral, it commits every
observation, derivation, brief, decision, action, and outcome as an immutable, product-scoped record
under explicit authority.

![version 0.5.0](https://img.shields.io/badge/version-0.5.0-blue)
![version 0.6.0](https://img.shields.io/badge/version-0.6.0-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)
Expand Down Expand Up @@ -342,23 +342,31 @@ transforms only), `ace.intelligence.personas/v1alpha1` (personas plus signal-rou

---

## What 0.5.0 adds

0.5.0 is the **Reasoning into Action** release. It carries the governed cognition and Intelligence
foundation from 0.4.x through an exact approved Decision into bounded, attributable work.

- **Governed action execution.** Core binds an authorized Decision to one effect-free adapter plan,
persists admission before execution, and records success, failure, partial effect, timeout,
cancellation, or restart uncertainty honestly.
- **Human review, verification, repair, and promotion.** Exact-material review happens before an
effect; verification and promotion remain separate after it; repair creates a linked successor
and is forbidden when the earlier effect is unknown.
- **Restart-safe task control.** Negotiated cancellation, declared wall-clock limits, terminal
resource receipts, durable attempt identity, and deterministic linked replay support the bounded
journey.
- **A separately packaged reference adapter.** `ace-reference-workspace-action==0.1.0` imports only
the public Core contract, is explicitly constructed and registered, and performs one create-only
workspace export. It is attached to the 0.5.0 GitHub Release, not bundled in `ace-core`.
## What 0.6.0 adds

0.6.0 is the **Measured Intelligence** release candidate. It adds a bounded, domain-neutral way to
determine whether an intelligence artifact or governed cognition revision helped, harmed, or
remains unproven under explicit product-owned criteria. The candidate is not a published release
and no governance proposal applies itself.

- **Exact evaluation identity.** Product-owned criteria, matched conditions, evaluated artifacts,
material-use attribution, Decisions, reviewed Actions, observed results, Outcomes, controls, and
cutoffs remain exact immutable coordinates rather than free-form claims.
- **Useful, harmful, or unproven.** Missing attribution, mismatched conditions, post-cutoff
evidence, unavailable outcomes, duplicate evidence, and insufficient matched support fail closed
to explicit exclusions or `unproven` rather than manufacturing benefit.
- **Append-only governance proposals.** Evaluations may propose promotion, rejection, rollback, or
retirement, but every proposal remains non-effective, non-selectable, unapplied, and subject to
separate human/Core authority. An authorized disposition records `accept` or `reject` as a
durable `no_action` Decision without silently changing live state.
- **Durable replay and provenance.** Evaluation and proposal receipts reopen exactly across a real
store restart; stable replay returns historical material, while divergent replay, scope drift,
and unauthorized promotion fail closed.

The bounded **Reasoning into Action** topology introduced in 0.5.0 remains unchanged: one ACE host,
one durable store, and explicitly trusted in-process adapters. The separately packaged reference
adapter candidate is distribution 0.2.0 with `ace-core>=0.6.0,<0.7`; its unchanged executable
implementation keeps artifact identity 0.1.0.

The governed Intelligence foundation introduced in 0.4.0 remains part of the same install:

Expand Down Expand Up @@ -722,8 +730,9 @@ stay host-free, and host adapters are the only `core.engine` edge into the publi

## Maturity and limitations

**0.5.0 is a developer preview and a single-node Reasoning into Action release.** Read this section
before you build on it.
**0.6.0 is an unpublished developer-preview release candidate.** Its Measured Intelligence claim
is bounded to the recorded product criteria, matched controls, exact provenance, and single-node
topology. Read this section before you build on it.

What is bounded:

Expand Down Expand Up @@ -767,10 +776,10 @@ The north-star loop is:
understand → reason → decide → act with authority → observe outcomes → improve future reasoning
```

0.5.0 delivers the bounded Reasoning into Action span of that loop: an approved decision proceeds
through exact human review into attributable action, separate verification, linked repair when
effects are known, and explicit promotion. 0.6.0 (*Measured Intelligence*) is next and promotes or
retires reasoning revisions because of measured outcomes.
0.5.0 delivers the bounded Reasoning into Action span of that loop. The unpublished 0.6.0
(*Measured Intelligence*) candidate connects that journey to later product-owned outcomes and may
propose promotion, rejection, rollback, or retirement without applying any of them. Public artifact
installation and release-owner acceptance remain separate gates.

- [Public roadmap](https://github.com/augmented-cognition-engine/core/blob/main/ROADMAP.md) — outcome
state, sequencing, and declared boundaries
Expand Down
2 changes: 1 addition & 1 deletion ace/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
"""Public Python package identity for ACE."""

__version__ = "0.5.0"
__version__ = "0.6.0"
2 changes: 1 addition & 1 deletion ace_mcp_client/__init__.py
Original file line number Diff line number Diff line change
@@ -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.5.0"
__version__ = "0.6.0"
13 changes: 8 additions & 5 deletions adapters/reference_workspace_action/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,12 @@ execution creates a new file with exclusive-create semantics. Existing files, sy
parent directories, absolute paths, traversal, and paths outside the workspace fail closed.

This package is not included in the `ace-core` wheel and is not dynamically discovered. A host must
install it, construct it, and register its exact artifact identity explicitly. The ACE 0.5.0
release workflow builds it independently and attaches its wheel and source distribution to the
matching GitHub Release; only the Core distribution is sent to PyPI.
install it, construct it, and register its exact artifact identity explicitly. The ACE 0.6.0
release-candidate workflow builds it independently and would attach its wheel and source
distribution to a separately authorized matching GitHub Release; only the Core distribution would
be sent to PyPI.

The dependency begins at `ace-core>=0.5.0,<0.6`. Install `ace-core==0.5.0` from PyPI and the adapter
wheel from the public [`v0.5.0` GitHub Release](https://github.com/augmented-cognition-engine/core/releases/tag/v0.5.0).
Distribution 0.2.0 targets `ace-core>=0.6.0,<0.7`. The executable implementation is unchanged from
0.1.0, so its public capability artifact identity remains 0.1.0 rather than manufacturing a new
implementation identity for dependency metadata alone. The 0.2.0 archives remain unpublished
candidate artifacts until the separate release gate passes.
4 changes: 2 additions & 2 deletions adapters/reference_workspace_action/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"

[project]
name = "ace-reference-workspace-action"
version = "0.1.0"
version = "0.2.0"
description = "Reference trusted workspace-export action adapter for ACE"
readme = "README.md"
requires-python = ">=3.12"
license = "Apache-2.0"
dependencies = ["ace-core>=0.5.0,<0.6"]
dependencies = ["ace-core>=0.6.0,<0.7"]

[tool.setuptools.packages.find]
where = ["src"]
Expand Down
12 changes: 12 additions & 0 deletions adapters/reference_workspace_action/tests/test_adapter.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
from __future__ import annotations

import ast
import tomllib
from datetime import UTC, datetime, timedelta
from pathlib import Path

import pytest
from ace_reference_workspace_action import (
ACTION_TYPE,
ADAPTER_ARTIFACT,
ReferenceWorkspaceActionAdapter,
ReferenceWorkspaceActionError,
)
Expand All @@ -27,6 +29,16 @@
PRODUCT = "product:reference-action"


def test_distribution_targets_core_06_without_rekeying_unchanged_implementation() -> None:
project = tomllib.loads((Path(__file__).resolve().parents[1] / "pyproject.toml").read_text(encoding="utf-8"))[
"project"
]

assert project["version"] == "0.2.0"
assert project["dependencies"] == ["ace-core>=0.6.0,<0.7"]
assert ADAPTER_ARTIFACT.implementation_version == "0.1.0"


def _precondition(kind: str, sequence: int) -> GovernedStateHeadPreconditionV1Alpha1:
return GovernedStateHeadPreconditionV1Alpha1(
state_kind=kind,
Expand Down
2 changes: 1 addition & 1 deletion core/engine/version.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
"""Single source of truth for the ACE distribution version."""

VERSION = "0.5.0"
VERSION = "0.6.0"
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# ACE 0.6.0 Measured Intelligence release-candidate work packet (v1)

Status: **bounded release candidate; unpublished; does not close issue #38**

Date: 2026-08-11

## Outcome

Freeze the final package and build identities for the already merged Measured Intelligence runtime
without merging, tagging, publishing, or claiming the milestone complete. The release candidate
must preserve the public product promise:

> ACE can determine, under explicit and inspectable product-defined criteria, whether an
> intelligence artifact or governed cognition revision helped, harmed, or remains unproven, and
> can propose—but never silently apply—promotion, rejection, rollback, or retirement.

The smallest accepted journey remains:

```text
artifact or cognition revision
→ exact material-use attribution
→ Decision
→ reviewed Action
→ observed result and Outcome
→ matched product-owned evaluation
→ useful | harmful | unproven
→ non-effective governance proposal
→ optional authorized no-action disposition
```

## Source and dependencies

This packet starts from exact Core default-branch commit
`f0d2191ba7cf2d33ccfc3c821422786929be8349`. Runtime Measured Intelligence, issue #49 F1/F5
hardening, and owner-governed monitoring are already merged inputs. The public issue #49 checklist
marks F1 and F5 complete; unresolved, unwaived F3 is re-dated to `2026-11-05` under documented
containment.

Release closeout still depends on review and merge of Core PR #95, review and merge of World PR
#17, final artifact verification from the eventual release merge, clean public-index installation,
compatibility/security acceptance, and explicit release-owner approval. This packet does not infer
any of those outcomes.

## Candidate identities

| Artifact | Candidate identity | Publication boundary |
|---|---|---|
| Core + Intelligence | `ace-core==0.6.0` | PyPI only after a separately authorized exact `v0.6.0` release |
| Reference action adapter | `ace-reference-workspace-action==0.2.0` | separate wheel and sdist attached to the Core GitHub Release; never bundled into Core or uploaded by the Core PyPI job |

The adapter distribution changes because its dependency window becomes `ace-core>=0.6.0,<0.7`.
Its executable implementation is unchanged, so the public capability artifact identity remains
0.1.0. Dependency metadata alone must not manufacture a new implementation identity or invalidate
accepted action receipts.

## Acceptance

1. Every Core package, import, engine, reference-extension, lock, container, and workflow identity
agrees on 0.6.0.
2. The adapter distribution is 0.2.0, depends exactly on `ace-core>=0.6.0,<0.7`, retains executable
artifact identity 0.1.0, and imports only public `ace.core` contracts.
3. Core and adapter wheel/source archives build twice under one fixed source epoch with byte-equal
pairs, pass strict metadata validation, keep tests out of both wheels, exclude unintended
packages, and keep adapter code out of Core.
4. A clean Python 3.12 environment installs the exact candidate archives, resolves both versions
from `site-packages`, exposes exactly eleven thin MCP tools, and runs the focused package,
measured-impact, authority, replay, and adapter suites.
5. Required repository lint, fast, naked-kernel, security, Canvas, and Docker gates pass on the
final draft-PR head.
6. The draft records exact hashes and limitations. No tag, GitHub Release, PyPI upload, milestone
closure, or supported/public claim occurs in this packet.

## Fail-closed release conditions

The candidate fails if any identity diverges; a version is already occupied on PyPI; the Core
archive contains adapter code; an archive contains tests, credentials, or local build state; a
proposal becomes effective or selectable; historical replay reauthorizes or recomputes; the World
journey requires domain nouns in Core/Intelligence; or an unavailable outcome is reported as
benefit.

## Non-claims

This packet does not prove causality, general benefit, SI4 completion, live freshness, hostile-code
isolation, distributed execution, cross-process exactly-once effects, automatic promotion, or a
general model of reality. Market's independent `unproven` reproduction remains valid evidence that
the neutral contract can abstain; it is not a release blocker or a harmful result.

## Owned files, rollback, and deletion criteria

This packet owns only version identities, release workflow guards, candidate-facing README and
changelog text, focused version tests, this work packet, and its candidate evidence. It changes no
schema, runtime contract, durable record, authority path, Domain Pack, connector policy, MCP tool,
tag, or publication state.

Rollback reverts only those release-candidate changes. Preserve the evidence as a point-in-time
record if final merge identities or artifact epochs change, and supersede it with public release
evidence only after the actual tag, trusted publication, clean public-index installation, World
artifact reproduction, and release-owner acceptance all pass.
2 changes: 2 additions & 0 deletions docs/evidence/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ superseded by later work and is kept for audit trail only.
— candidate in-transaction generation guard, durable review reconciliation, and legacy table pin; not release closeout
- [Measured Intelligence merged-source convergence](measured-intelligence-v0.6.0-merged-source-convergence-candidate-v1.md)
— exact merged Core artifact, public World reproduction, independent Market restart proof, and remaining release gates; not release closeout
- [ACE 0.6.0 Measured Intelligence release candidate](measured-intelligence-v0.6.0-release-candidate-v1.md)
— reproducible package identities, installed-artifact proof, and green required CI; unpublished
- [State Engine TP0 current-runtime baseline](state-engine-tp0-runtime-baseline-v1.md)
- [State Engine TP1A truthful observation outcomes](state-engine-tp1a-truthful-observation-outcomes-v1.md)
- [State Engine TP1 reliable memory lifecycle](state-engine-tp1-reliable-memory-lifecycle-v1.md)
Expand Down
Loading