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
13 changes: 13 additions & 0 deletions packages/agent/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# CHANGELOG

Releases up to v2.2.0 are recorded in the [openadapt-agent repository](https://github.com/OpenAdaptAI/openadapt-agent/blob/main/CHANGELOG.md).

## v2.2.1 (2026-10-18)

First release from the [OpenAdapt monorepo](https://github.com/OpenAdaptAI/OpenAdapt) (`packages/agent`). The MCP agent server now lives in `openadapt_flow.agent`; this package is a compatibility package over it, so `openadapt-agent` and `import openadapt_agent` keep working. It requires `openadapt-flow>=2.2.0,<3`.

### Features

- The server reads the approval mode and can answer a waiting save as a delegated agent ([#1192](https://github.com/OpenAdaptAI/OpenAdapt/pull/1192)).
- After a step is repaired more than once, the server proposes a branch ([#1188](https://github.com/OpenAdaptAI/OpenAdapt/pull/1188)).
- The install docs use user scope and say what happens next ([#1230](https://github.com/OpenAdaptAI/OpenAdapt/pull/1230)).
2 changes: 1 addition & 1 deletion packages/agent/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"manifest_version": "0.4",
"name": "openadapt-agent",
"display_name": "OpenAdapt",
"version": "2.2.0",
"version": "2.2.1",
"description": "Lets your AI agent enter information in an app with no API and get back whether it saved.",
"long_description": "Your agent sends a workflow name, its inputs, and its own request id. OpenAdapt enters the values in the app's own screens on this computer, reads the saved record back, and returns done, needs review, not sure if saved, or did not run. The same request id never writes twice. Workflow files and evidence stay on this computer.",
"author": {
Expand Down
6 changes: 3 additions & 3 deletions packages/agent/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "openadapt-agent"
version = "2.2.0"
version = "2.2.1"
description = "Let your AI agent enter information in apps with no API and get back whether it saved (MCP and Agent Skills)"
readme = "README.md"
# openadapt-flow pins <3.13 (rapidocr-onnxruntime); this package inherits it.
Expand Down Expand Up @@ -39,7 +39,7 @@ dependencies = [
# 2.0 gates every saving run by default (each_item); the agent reports
# that wait as waiting_for_approval (tests/test_approval_flow.py) and
# 2.0 ships cloud_seal for Cloud-connected Seals.
"openadapt-flow>=2.1.0,<3",
"openadapt-flow>=2.2.0,<3",
# Flow uses cryptography for encrypted bundles and signed runtime evidence.
# Keep the published Agent artifact above the PKCS#7 oracle fixed by 50.0.0
# (GHSA-g6cj-pr64-35w5), even when an existing environment already has an
Expand Down Expand Up @@ -70,7 +70,7 @@ tutorial = [
# query, added in openadapt-flow 1.29.0. Older Flow falls back to the
# simulated engine. Flow's macos extra (pyobjc, darwin-only markers) lets
# `serve --authoring` without --url pin the frontmost macOS window.
"openadapt-flow[browser,macos]>=2.1.0,<3",
"openadapt-flow[browser,macos]>=2.2.0,<3",
]

[project.scripts]
Expand Down
4 changes: 2 additions & 2 deletions packages/agent/server.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
"source": "github",
"subfolder": "packages/agent"
},
"version": "2.2.0",
"version": "2.2.1",
"packages": [
{
"registryType": "pypi",
"registryBaseUrl": "https://pypi.org",
"identifier": "openadapt-agent",
"version": "2.2.0",
"version": "2.2.1",
"runtimeHint": "uvx",
"transport": {
"type": "stdio"
Expand Down
43 changes: 43 additions & 0 deletions packages/flow/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,49 @@

<!-- version list -->

## v2.2.0 (2026-10-18)

First release from the [OpenAdapt monorepo](https://github.com/OpenAdaptAI/OpenAdapt) (`packages/flow`). The shared contracts (`openadapt_flow.contracts`) and the MCP agent server (`openadapt_flow.agent`) now ship inside this package; `openadapt-types` and `openadapt-agent` are thin compatibility packages over them.

### Features

- `openadapt_flow.jit` wraps a computer-use agent: the first run of a task is recorded and compiled into a Flow program, and later runs replay it with zero model calls. A compiled run stays a draft until a person, a registered admitter key, or a registered agent under a signed policy admits it ([#1207](https://github.com/OpenAdaptAI/OpenAdapt/pull/1207)). A signed policy can set `allow_self_admission` so the recording agent admits its own draft under the same checks; the manifest marks it `self_admitted` ([#1249](https://github.com/OpenAdaptAI/OpenAdapt/pull/1249)).
- Read-back verifiers taught by demonstration, with assurance grades ([#1203](https://github.com/OpenAdaptAI/OpenAdapt/pull/1203)).
- `openadapt-flow verify-run` judges any executor's write from the system of record and emits an RFC-0002 effect receipt; it reads the same `verify.yaml` as qualify and accepts `--remediates` and `--correlation-id` ([#1198](https://github.com/OpenAdaptAI/OpenAdapt/pull/1198)).
- Declarative qualify from `verify.yaml` ([#1186](https://github.com/OpenAdaptAI/OpenAdapt/pull/1186), from [openadapt-flow#532](https://github.com/OpenAdaptAI/openadapt-flow/pull/532)).
- Delegated approvers, read-back field checks, triage, and eligibility ([#1190](https://github.com/OpenAdaptAI/OpenAdapt/pull/1190), from [openadapt-flow#534](https://github.com/OpenAdaptAI/openadapt-flow/pull/534)); approver identity, approver policy, and an approval record in the shared contracts ([#1187](https://github.com/OpenAdaptAI/OpenAdapt/pull/1187)).
- The MCP server reads the approval mode and can answer a waiting save as a delegated agent ([#1192](https://github.com/OpenAdaptAI/OpenAdapt/pull/1192)); it proposes a branch after a step is repaired more than once ([#1188](https://github.com/OpenAdaptAI/OpenAdapt/pull/1188)).
- Native OCR on macOS and Windows, with no OpenCV on that path ([#1194](https://github.com/OpenAdaptAI/OpenAdapt/pull/1194), from [openadapt-flow#531](https://github.com/OpenAdaptAI/openadapt-flow/pull/531)).
- An agent can drive recording on native Windows apps and over RDP and Citrix sessions; remote sessions are screen-only and the agent works from the client window's pixels ([openadapt-flow#527](https://github.com/OpenAdaptAI/openadapt-flow/pull/527)).
- Learn from an agent demonstration, with replay fixes from the learn and zero-DOM benchmarks ([openadapt-flow#525](https://github.com/OpenAdaptAI/openadapt-flow/pull/525)).
- Teach a branch from several calling-agent demonstrations ([openadapt-flow#521](https://github.com/OpenAdaptAI/openadapt-flow/pull/521)).
- Read marked fields from the page structure ([openadapt-flow#522](https://github.com/OpenAdaptAI/openadapt-flow/pull/522)).
- Phone approval of a waiting save through the decision portal, person-signed approver grants, and no self-approval of a run's own saves ([#1234](https://github.com/OpenAdaptAI/OpenAdapt/pull/1234)).
- Countersigned and timestamped Seals, Sigstore TSA by default ([#1210](https://github.com/OpenAdaptAI/OpenAdapt/pull/1210)); offline Seals by default, batched timestamps, and a strict no-outbound mode ([#1216](https://github.com/OpenAdaptAI/OpenAdapt/pull/1216)).
- One check-level scale (0 to 5) maps the verification ranks, Seal levels and read-back labels ([#1250](https://github.com/OpenAdaptAI/OpenAdapt/pull/1250)).
- `record --verify` reads the system of record around a recording and proposes its checks for a person to confirm ([#1233](https://github.com/OpenAdaptAI/OpenAdapt/pull/1233)).
- SMART Backend Services (`private_key_jwt`) tokens for FHIR record checks ([#1235](https://github.com/OpenAdaptAI/OpenAdapt/pull/1235)).
- Qualify on the deployment surface: a workflow qualified with page structure halts on a pixels-only surface such as RDP or Citrix until it is requalified there ([#1231](https://github.com/OpenAdaptAI/OpenAdapt/pull/1231)).
- A complete known-ID list lifts look-alike identity stops on pixel-only screens ([#1223](https://github.com/OpenAdaptAI/OpenAdapt/pull/1223)); a headless FreeRDP transport with a session pool ([#1226](https://github.com/OpenAdaptAI/OpenAdapt/pull/1226)).
- Font and layout drift halts with a named reason ([#1225](https://github.com/OpenAdaptAI/OpenAdapt/pull/1225)); fleet drift patches import as policy-gated repair candidates ([#1211](https://github.com/OpenAdaptAI/OpenAdapt/pull/1211)); an unattended on-prem service with health checks and an egress audit ([#1222](https://github.com/OpenAdaptAI/OpenAdapt/pull/1222), [#1237](https://github.com/OpenAdaptAI/OpenAdapt/pull/1237)).
- A workflow registry and `openadapt-flow pull` ([openadapt-flow#517](https://github.com/OpenAdaptAI/openadapt-flow/pull/517)).
- OpenEMR qualification path: verifier, fault driver, and six cases for the local registration bundle ([openadapt-flow#518](https://github.com/OpenAdaptAI/openadapt-flow/pull/518)).

### Performance

- The demo uses the installed browser, one browser process, and an early OpenCV load ([#1189](https://github.com/OpenAdaptAI/OpenAdapt/pull/1189), from [openadapt-flow#528](https://github.com/OpenAdaptAI/openadapt-flow/pull/528)); native OCR starts faster and the OCR prewarm works ([#1199](https://github.com/OpenAdaptAI/OpenAdapt/pull/1199), from [openadapt-flow#535](https://github.com/OpenAdaptAI/openadapt-flow/pull/535)).

### Fixes

- A read of the identifier that contradicts the expected record is final; a later re-read can no longer overrule it into verified and act on the wrong record ([#1252](https://github.com/OpenAdaptAI/OpenAdapt/pull/1252), [#1254](https://github.com/OpenAdaptAI/OpenAdapt/pull/1254)).
- Five fail-open gaps closed: a JIT draft can't run without its admission, a planted approver policy is ignored, CLI replay runs the JIT run checks, and two compiler key drops are opt-in ([#1232](https://github.com/OpenAdaptAI/OpenAdapt/pull/1232)).
- The drift oracle never rescues a failed postcondition on an irreversible or effect-bearing step ([#1217](https://github.com/OpenAdaptAI/OpenAdapt/pull/1217)).
- A phone answer reaches a run that stopped waiting ([#1234](https://github.com/OpenAdaptAI/OpenAdapt/pull/1234)); `--help` no longer starts the OCR prewarm, which could abort the process at exit ([#1242](https://github.com/OpenAdaptAI/OpenAdapt/pull/1242)).
- The break-it run is described as a save set to fail ([#1236](https://github.com/OpenAdaptAI/OpenAdapt/pull/1236)); the contract schemas are listed in `public-artifacts.json` ([#1206](https://github.com/OpenAdaptAI/OpenAdapt/pull/1206)).
- CLI help and built-in URLs point at the docs glossary and the monorepo ([#1200](https://github.com/OpenAdaptAI/OpenAdapt/pull/1200)).
- Benchmarks fetch the openIMIS and OpenEMR compose files from upstream at run time ([openadapt-flow#523](https://github.com/OpenAdaptAI/openadapt-flow/pull/523)).
- uv.lock bumps fsspec, urllib3, mako, and oauthlib for open Dependabot alerts ([openadapt-flow#524](https://github.com/OpenAdaptAI/openadapt-flow/pull/524)).

## v2.1.0 (2026-10-16)

### Features
Expand Down
2 changes: 1 addition & 1 deletion packages/flow/openadapt_flow/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""openadapt-flow: record, compile, replay deterministically, heal on drift."""

__version__ = "2.1.0"
__version__ = "2.2.0"

from openadapt_flow.ir import ( # noqa: F401
ActionKind,
Expand Down
2 changes: 1 addition & 1 deletion packages/flow/openadapt_flow/agent/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@
for a trusted client in the same data boundary.
"""

__version__ = "2.2.0"
__version__ = "2.2.1"

__all__ = ["__version__"]
2 changes: 1 addition & 1 deletion packages/flow/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "openadapt-flow"
version = "2.1.0"
version = "2.2.0"
description = "Compile demonstrated GUI workflows into deterministic local replay with governed repair and refusal"
readme = "README.md"
license = { text = "MIT" }
Expand Down
2 changes: 1 addition & 1 deletion packages/flow/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions packages/types/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
# CHANGELOG


## v0.23.0 (2026-10-18)

First release from the [OpenAdapt monorepo](https://github.com/OpenAdaptAI/OpenAdapt) (`packages/types`). The models now live in `openadapt_flow.contracts`; this package re-exports them, so `import openadapt_types` keeps working. It requires `openadapt-flow>=2.2.0,<3`.

### Features

- **approval**: Approver identity, approver policy, and an approval record ([#1187](https://github.com/OpenAdaptAI/OpenAdapt/pull/1187), from [openadapt-types#49](https://github.com/OpenAdaptAI/openadapt-types/pull/49)).


## v0.22.0 (2026-10-17)

### Documentation
Expand Down
9 changes: 4 additions & 5 deletions packages/types/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "openadapt-types"
version = "0.22.0"
version = "0.23.0"
description = "Pydantic models for computer-use agents: screen state (ComputerState, UINode), actions (Action), and results (ActionResult)"
readme = "README.md"
license = "MIT"
Expand All @@ -25,11 +25,10 @@ classifiers = [
"Typing :: Typed",
]
# Compatibility shim: the contracts live in openadapt-flow as
# openadapt_flow.contracts. The release workflow pins this to the exact
# openadapt-flow version it ships with. Python 3.13+ resolves to 0.21.x, the
# last standalone release.
# openadapt_flow.contracts, first shipped in openadapt-flow 2.2.0, so that is
# the floor. Python 3.13+ resolves to 0.21.x, the last standalone release.
dependencies = [
"openadapt-flow>=2.1.0,<3",
"openadapt-flow>=2.2.0,<3",
]

[project.scripts]
Expand Down
2 changes: 1 addition & 1 deletion packages/types/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading