Skip to content

feat: add attended reconciliation contract - #19

Closed
abrichr wants to merge 2 commits into
mainfrom
feat/attended-reconcile-action
Closed

feat: add attended reconciliation contract#19
abrichr wants to merge 2 commits into
mainfrom
feat/attended-reconcile-action

Conversation

@abrichr

@abrichr abrichr commented Jul 28, 2026

Copy link
Copy Markdown
Member

What changed

  • Adds a portable reconcile attended action for uncertain deliveries and effect checks.
  • Keeps reconciliation distinct from continue: it asks the runner to prove the prior business effect and never authorizes re-dispatch.
  • Adds a closed reconciled_and_resumed terminal reason.
  • Binds completed reasons to the exact action that produced them.
  • Requires completed receipts to carry report_success=true and a transition receipt.
  • Refuses to advertise reconciliation before an action was delivered or delivery became uncertain.
  • Regenerates the packaged language-agnostic task and receipt schemas.

Why

The operator loop needs a truthful way to reconcile a possibly completed write without pretending it is an ordinary continuation or authorizing a duplicate retry.

Validation

  • 236 tests passed.
  • Wheel and sdist built and inspected.
  • Packaged schemas exactly match the Python contract.
  • Source tree and built archives passed the source-policy boundary.
  • Independent exact review rejected the first draft, reproduced its false-success cases, and accepted corrected head dd8be1e971c3538b4d2fd78dab335dd018a7e7d0.

This PR intentionally remains draft until Flow, Cloud, and Desktop consume the closed action and the coordinated Types 0.7 / Flow 1.26 release is authorized.

@abrichr

abrichr commented Jul 29, 2026

Copy link
Copy Markdown
Member Author

Superseded by #21, which combined this reconciliation contract with the Execute v1 contract and regenerated the shared schema. The coordinated result is now published as openadapt-types 0.7.0.

@abrichr abrichr closed this Jul 29, 2026
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.

1 participant