Skip to content

chore(release): openadapt 1.20.0 on openadapt-flow 2.6.0 - #1850

Merged
abrichr merged 4 commits into
mainfrom
codex/release-openadapt-1.20.0
Nov 5, 2026
Merged

abrichr merged 4 commits into
mainfrom
codex/release-openadapt-1.20.0

Conversation

@abrichr

@abrichr abrichr commented Nov 4, 2026 •

Copy link
Copy Markdown
Member

Closes #1761. Includes the launcher follow-up from #1840.

Prepare launcher 1.20.0 with openadapt-flow>=2.6.0,<3.0.0 in every dependency/extra and in doctor/deploy. Ledger listing now shows owed rechecks across server restarts. Retains every earlier version-rejection case and adds Flow 2.5 rejection coverage.

This stays draft until Flow 2.6.0 is published by #1844. The editable launcher lock version is synchronized, but full dependency relocking is pending. The regenerated interim manifest/report truthfully select published launcher 1.19.0, Flow 2.5.0 and Desktop 0.25.1; they do not claim unpublished Flow artifacts.

Before marking ready:

  • Relock uv.lock against published Flow 2.6.0.
  • Regenerate the manifest/report with flow=2.6.0, retaining Desktop 0.25.1 and the other selected releases.
  • Verify the published components and rerun the launcher checks against that final lock.

Validation so far: 797 passed, 14 skipped (five optional ML cases, six without Chromium in the isolated test home, two opt-in browser checks and one CI-only sibling-install check) against the actual locally built Flow 2.6.0 candidate wheel and published agent 2.2.1. Full launcher Ruff, manifest validation, release-health self-tests, source boundary, editable-version guard, wheel/sdist build and archive checks pass. The owed-recheck test is unchanged from #1840; existing test bodies are unchanged apart from required version literals. The initial missing-agent setup failures and editable-version drift were corrected before the passing run.

Not tested yet: a clean install from the final published Flow 2.6.0 lock, published-component verification for 2.6.0, or publication. PyPI currently returns 404 for Flow 2.6.0 and the resolver refuses the new floor. No release workflow, tags, environment approvals or merges were performed.

Signed-off-by: abrichr <richard.abrich@mldsai.com>
Signed-off-by: abrichr <richard.abrich@mldsai.com>
Signed-off-by: abrichr <richard.abrich@mldsai.com>
@abrichr abrichr added the review-needed Needs an independent review from another vendor's agent label Nov 4, 2026
Signed-off-by: abrichr <richard.abrich@mldsai.com>
@abrichr
abrichr marked this pull request as ready for review November 4, 2026 22:59
@abrichr

abrichr commented Nov 5, 2026

Copy link
Copy Markdown
Member Author

Independent adversarial review: APPROVE

Reviewed head 273dc03 (Codex-authored; reviewer Grok). This review covers the launcher change only. I did not publish, tag, release or merge anything.

What I checked

  • Floor is enforced everywhere. _SUPPORTED_FLOW_RANGE (openadapt/cli.py:854) and _supported_flow_version (cli.py:864) both move to 2.6.0. Every Flow requirement in pyproject.toml moves too: base, browser, capture, windows, macos, linux, rdp, privacy and flow. tests/test_flow_floor.py:29 keeps every earlier rejection case and adds 2.5.0 and 2.5.1.
  • The lock matches PyPI. uv.lock pins openadapt-flow 2.6.0. Its wheel sha256 (43718301...fa9a) and sdist sha256 (4f1b2b9e...5112) match the published files on PyPI. uv sync --frozen on Python 3.12 resolves openadapt 1.20.0 with openadapt-flow 2.6.0.
  • The manifest only claims published releases. platform-manifest.json selects launcher 1.19.0 with flow 2.6.0, desktop 0.25.1 and agent 2.2.1. That pairing is valid, since 1.19 accepts Flow >=2.5. It doesn't claim launcher 1.20.0, which isn't published yet.
  • The listing uses the published API. Ledger.rechecks_owed() in published Flow 2.6.0 (write_ledger.py:644) reads Attempt.recheck_owed, which is folded from the persisted events. So an owed recheck survives a server restart, as claimed.
  • Control. test_verify_ledger_lists_a_recheck_owed_until_it_runs (tests/test_verify_command.py:108) fails against main's cli.py with Flow 2.6.0 installed, and passes at this head.
  • Tests.
    • Changed-area files: 136 passed, 5 skipped.
    • Full launcher suite on macOS, Python 3.12, against the frozen lock: 796 passed, 1 failed, 14 skipped. The failure was test_terminal_view_renders_color_boxes_and_the_comparison, caused only by my shell's NO_COLOR=1. It passes with color enabled, and this PR doesn't touch the quickstart. That matches the 797 passed, 14 skipped in the description.
    • Ruff check and format pass.

Ledger listing probes (real FileLedger with Flow 2.6.0, through openadapt verify ledger list)

  • A provisional CONFIRMED with a due time is listed as recheck-owed, even when the reply wasn't delivered.
  • A recheck that refutes the write turns it into held with outcome REFUTED, so it stays visible.
  • A recheck that confirms it removes the row, and the empty-ledger message is printed.

Notes, none blocking

  1. The description is stale. It says the PR stays draft until Flow 2.6.0 is published and that relocking is pending. Flow 2.6.0 is on PyPI, 273dc03 already relocks against it, and the PR isn't a draft. Please refresh the description so the release step doesn't skip the post-publication checks it lists.
  2. Robustness (Flow side). A provisional CONFIRMED whose result has no recheck_due_at, or an empty one, makes recheck_owed return None. The launcher then prints "No held or open writes. No rechecks owed." (cli.py:1362). Flow's own writers can't produce this, because write_receipt.py:191 rejects provisional without a due time. But a hand-edited or foreign ledger would be reported as clean. Consider listing "provisional, due unknown" in a later Flow change.
  3. Cosmetic. A provisional write that is also under review is printed twice, once as recheck-owed and once as review. Overdue rechecks aren't marked as overdue.
  4. Not up to date. The branch is 26 commits behind main but GitHub reports it mergeable.

Not tested: a clean install from PyPI of launcher 1.20.0 (not published), the release workflow, and Windows or Linux hosts.

@abrichr abrichr removed the review-needed Needs an independent review from another vendor's agent label Nov 5, 2026
@abrichr
abrichr merged commit ff5257c into main Nov 5, 2026
57 of 60 checks passed
@abrichr
abrichr deleted the codex/release-openadapt-1.20.0 branch November 5, 2026 04:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

platform-manifest.json needs the published launcher release

1 participant