| .. | ||
| canonical-integration.json | ||
| implementation.patch | ||
| manifest.json | ||
| owner-dirty-baseline.patch | ||
| patch-check.json | ||
| progress-receipt.json | ||
| README.md | ||
| validation.json | ||
Approval exact-binding confirmation repair
Approval owner source preparation from clean source commit
477c683991fda3c01e2af98a18f5a8719ee9dbc9, in an isolated temporary checkout.
Pending canonical WP0004 closure changes, generated UUIDs and unrelated dirt
remain untouched. owner-dirty-baseline.patch preserves that observed state;
implementation.patch applies cleanly on top of it.
Reproduction on unchanged production client source: canonical binding dict equality accepts nested True/1, False/0, 1/1.0 and 1/True substitutions. Missing, wrong and boolean served native digests also went unchecked. Seven regression cases failed their expected refusal, while a valid nested/key-order case passed. This is client confirmation ambiguity, not proof of a production exploit or native acceptance failure.
The minimal fix reuses Approval's existing native binding_digest: recompute
the served five-field act digest, compare it with the expected act digest, and
require the served digest field to match. No new digest, API schema, authority,
service or approval contract is introduced. Native binding, approval-free PDP
and full consumed request digests retain their separate meanings.
Twelve added cases cover four Python-equal/JSON-distinct substitutions with
stale and recomputed served digests, three missing/invalid digest cases, and valid
nested types plus reordered keys. The final confirmation suite passes 36 tests.
Final focused command including consume provenance and the unavailable-server
case passes 44 tests. A broader earlier run passed 101 and failed one existing
200ms transport test because isolated child startup reached the total deadline
instead of returning its expected unreachable text; both outcomes fail closed.
Its focused retry passed. That transient failure is retained in validation.json.
New bounded low-risk source task: APPROVAL-WP-ADHOC-2026-10-16-T01. WP0004 closure is not reopened, and existing WP0002 native residuals remain open. This source preparation is not formal delegated-owner assent, signed approval or native acceptance. No live credential, approval service, OpenBao or protected operation was used. Coordinator review/integration/publication/sync remain pending.
After integration, Platform must pin the actual integrated confirmation client
source. Prepared approval_engine/execution_confirmation.py SHA256 is
afd4383d6785b12be9650d1cb3ef84ccbb1b57cd271d38d55e75875c46e85a79.
Its actual mediator must retain independently authenticated provider transport,
exact fresh claim/signed decision/body/operation checks and the same live one-shot
journal admission. This historical confirmation fact never grants execution or
retries uncertain protected work. Native validation must use the final pinned
client, and prior disposable proof must state which earlier client it exercised.