From 26ab2c4b92e859806be1358d80ec33e68e35686f Mon Sep 17 00:00:00 2001 From: abrichr Date: Fri, 16 Oct 2026 17:55:53 -0400 Subject: [PATCH 1/2] chore: release 2.2.0 on openadapt-flow 2.1.0 (WIP) Repair e2e installs openadapt-flow>=2.1.0 from PyPI instead of the deleted feat/teach-repair branch. Signed-off-by: Richard Abrich --- .github/workflows/ci.yml | 10 +++------- manifest.json | 2 +- pyproject.toml | 6 +++--- server.json | 4 ++-- src/openadapt_agent/__init__.py | 2 +- 5 files changed, 10 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a5d430b..d934486 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: if: matrix.dependency-set == 'floor' run: >- pip install -e ".[dev]" - "openadapt-flow==2.0.0" + "openadapt-flow==2.1.0" "mcp==1.28.0" - name: Install MCP 2 floor if: matrix.dependency-set == 'mcp2-floor' @@ -82,8 +82,6 @@ jobs: repair-e2e: # halt -> needs_repair -> teach_repair -> approval -> replay, on Flow's # rendered dialog fixture with its real replayer, OCR, and campaigns. - # TEMPORARY: Flow comes from the openadapt-flow#504 branch until a release - # ships openadapt_flow.repair.dialog_fixture; then pin a PyPI floor. runs-on: ubuntu-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 @@ -91,11 +89,9 @@ jobs: with: python-version: "3.12" cache: pip - - name: Install with Flow from its repair branch + - name: Install with the released Flow (ships openadapt_flow.repair.dialog_fixture) run: | - pip install -e ".[dev]" - # The PyPI release has the same version number, so force the branch. - pip install --force-reinstall --no-deps "openadapt-flow @ git+https://github.com/OpenAdaptAI/openadapt-flow@feat/teach-repair" + pip install -e ".[dev]" "openadapt-flow>=2.1.0,<3" pip install opencv-python-headless rapidocr-onnxruntime - name: Run the repair end-to-end test env: diff --git a/manifest.json b/manifest.json index 438b806..09e7e8d 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "manifest_version": "0.4", "name": "openadapt-agent", "display_name": "OpenAdapt", - "version": "2.1.0", + "version": "2.2.0", "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": { diff --git a/pyproject.toml b/pyproject.toml index 8c4590b..abaed9c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "openadapt-agent" -version = "2.1.0" +version = "2.2.0" 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. @@ -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.0.0,<3", + "openadapt-flow>=2.1.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 @@ -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.0.0,<3", + "openadapt-flow[browser,macos]>=2.1.0,<3", ] [project.scripts] diff --git a/server.json b/server.json index d3ae2e3..49f28ff 100644 --- a/server.json +++ b/server.json @@ -8,13 +8,13 @@ "url": "https://github.com/OpenAdaptAI/openadapt-agent", "source": "github" }, - "version": "2.1.0", + "version": "2.2.0", "packages": [ { "registryType": "pypi", "registryBaseUrl": "https://pypi.org", "identifier": "openadapt-agent", - "version": "2.1.0", + "version": "2.2.0", "runtimeHint": "uvx", "transport": { "type": "stdio" diff --git a/src/openadapt_agent/__init__.py b/src/openadapt_agent/__init__.py index fb118b8..167e239 100644 --- a/src/openadapt_agent/__init__.py +++ b/src/openadapt_agent/__init__.py @@ -21,6 +21,6 @@ for a trusted client in the same data boundary. """ -__version__ = "2.1.0" +__version__ = "2.2.0" __all__ = ["__version__"] From 94b6ebb51e900c54b13d6d22df654d5bfc3eca45 Mon Sep 17 00:00:00 2001 From: abrichr Date: Fri, 16 Oct 2026 23:17:10 -0400 Subject: [PATCH 2/2] chore: lock openadapt-flow 2.1.0 Signed-off-by: Richard Abrich --- uv.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/uv.lock b/uv.lock index 3919946..44c7ee4 100644 --- a/uv.lock +++ b/uv.lock @@ -1223,7 +1223,7 @@ wheels = [ [[package]] name = "openadapt-agent" -version = "2.1.0" +version = "2.2.0" source = { editable = "." } dependencies = [ { name = "anyio" }, @@ -1253,8 +1253,8 @@ requires-dist = [ { name = "cryptography", specifier = ">=50.0.0" }, { name = "jsonschema", specifier = ">=4.20.0" }, { name = "mcp", specifier = ">=1.28,<3" }, - { name = "openadapt-flow", specifier = ">=2.0.0,<3" }, - { name = "openadapt-flow", extras = ["browser", "macos"], marker = "extra == 'tutorial'", specifier = ">=2.0.0,<3" }, + { name = "openadapt-flow", specifier = ">=2.1.0,<3" }, + { name = "openadapt-flow", extras = ["browser", "macos"], marker = "extra == 'tutorial'", specifier = ">=2.1.0,<3" }, { name = "openadapt-privacy", extras = ["presidio"], marker = "extra == 'repair-screens'", specifier = ">=1.1.2" }, { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0" }, { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.4.0" }, @@ -1263,7 +1263,7 @@ provides-extras = ["dev", "repair-screens", "tutorial"] [[package]] name = "openadapt-flow" -version = "2.0.0" +version = "2.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cryptography" }, @@ -1278,9 +1278,9 @@ dependencies = [ { name = "rapidocr-onnxruntime" }, { name = "tomli", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/52/9f/2cc42951965b3ef28da85bc065d0894d726365e0a04bf63f40bb8bdab782/openadapt_flow-2.0.0.tar.gz", hash = "sha256:76a18d19f390e4ef3ab1520f5d248a51f2b8086963b69057a293bdfe2fae10d9", size = 22244078, upload-time = "2026-10-15T09:01:06.322Z" } +sdist = { url = "https://files.pythonhosted.org/packages/60/01/0192fb6b027813d8c86c7a7b162c1c10cd2c4a10564dc12009c189855edf/openadapt_flow-2.1.0.tar.gz", hash = "sha256:e14e0258c8233d7e4a40e3f2d5f39080da9be70f7c7833e9af4b44436bff1290", size = 22308706, upload-time = "2026-10-17T03:12:15.383Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/31/9dbe102c481edd4d5e6de0b77434708199a13b5c5fa2cf829c00415f8257/openadapt_flow-2.0.0-py3-none-any.whl", hash = "sha256:3db9f5b956304ebac54d554c999cba4feece6513d27b43f4c969134deeeca6b3", size = 2303072, upload-time = "2026-10-15T09:01:03.354Z" }, + { url = "https://files.pythonhosted.org/packages/b7/3b/1e860427fe3908b92d36578c3c33b88665d73edcf56150c941da2f454be5/openadapt_flow-2.1.0-py3-none-any.whl", hash = "sha256:d441f0a01c2da52586b44d5173b940697747a5cf3f42351bc65bc1b4089fd1d0", size = 2350222, upload-time = "2026-10-17T03:12:13.248Z" }, ] [package.optional-dependencies]