feat(attended): execute governed halt actions#152
Conversation
|
Structured-program attended receipts are pushed at exact head |
6c20c87 to
f5f57a7
Compare
|
Rebase verification update (2026-07-18)
Separate pre-existing optional-extra follow-up (not mixed into this PR): with local |
|
Independent post-runtime queue review (2026-07-19)
This remains draft and unmerged until the v1.17.1 managed runtime promotion is confirmed. After #154 merges and its exact-main/release state is verified, #152 should rebase once on that exact result and receive fresh protected CI before merge. This avoids a redundant intermediate Flow release while preserving the complete attended action surface. |
|
Follow-up from the independent queue audit: A linear attended Continue previously validated the signed pause before live verification but did not re-bind that exact pause immediately before committing its checkpoint. A concurrent normal durable CLI/operator process could replace the pending pause during verification, allowing the stale capability to approve the newer pause. The structured-program path already performed this final digest check. Exact head
The adversarial regression replaces the pause after successful live verification and proves the action returns Verification on the new head:
No action was removed or made read-only. Continue, Skip, Teach, and Escalate remain intact. Fresh protected exact-head CI is running; the PR remains draft and held behind the v1.17.1 production runtime promotion and #154 ordering gate. |
3406ca8 to
f27066a
Compare
|
Final release-base checkpoint: exact head |
|
Final exact-head gate passed: protected run https://github.com/OpenAdaptAI/openadapt-flow/actions/runs/29674731479 completed successfully on |
Summary
Completes the additive attended-operation path on top of the existing evidence
queue without narrowing the ordinary console or CLI:
console --attend --allow-actionsadvertising blanket actions
keyed transition baselines, live revalidation, leases, and idempotency
never substitutes for postcondition/effect evidence
cross-frame, and alternate-target transitions
evaluated once and nested interpreter cursors resume deterministically
Structured-program receipt boundary
The receipt contains no raw UI text, URL, or title. It is HMAC-sealed with the
per-run secret, atomically persisted with mode 0600 under a symlink-refusing
0700 directory, and bound to the exact run, workflow, bundle digest, pause
id/digest, action, source checkpoint sequence, graph/state, control-frame hash,
cursor digest, and guarded successor. Resume authenticates the
receipt/checkpoint lineage and consumes that stored transition rather than
re-evaluating it.
Both the linear and structured-program paths re-bind the exact signed pending
pause after live verification and before writing any checkpoint, receipt, or
approval. Adversarial regressions replace the pause in that interval and prove
refusal with no workflow actuation or transition artifacts.
Final release-base validation
Exact head:
f27066a5353888544d3cd085d45d99f8e4faf953Exact base: released v1.17.2 commit
597e06a7b042e6d6fe958e2bbdcd6509f9b7bdcabyte-identical GitHub/PyPI artifacts, valid PyPI attestations, and a passing
MIT/forbidden-payload boundary
https://github.com/OpenAdaptAI/openadapt-flow/actions/runs/29674731479
Merge status
Draft until the final exact-head protected run is completely green. Then mark
ready and squash-merge only with an exact head-SHA lease.