Repository navigation
Add shared AAIF authority comparison evidence runner - #288
Conversation
carloshvp
left a comment
There was a problem hiding this comment.
Reviewed 084571b in an isolated Python 3.12 checkout. Two items need correction before approval:
-
[P2] Enforce the complete comparison contract in integrations/alakris-authority-comparison/runner.py:59-73. validate_report validates only fields already present and supplies defaults for seven fields. It never requires authority, decision, dispatch, committed_effect, task_outcome, receipt, or policy_digest, despite comparison-contract.json declaring them required. Reproducer: generate the valid MintID testnet report, delete authority and decision from every case, then call validate_report(report). It returns successfully with no explicit missing-evidence states. This lets an incomplete adapter report pass while dropping the evidence gaps the contract is meant to preserve. Require every contract field (or explicitly populate missing fields with the appropriate state and reason), and add regression coverage for omitted core fields while retaining a valid control.
-
[P2] Fix the new code's existing CI lint gate. The workflow rule set (
ruff check integrations/alakris-authority-comparison --target-version py39 --select E4,E7,E9,F) reproduces 46 errors, including E701/E702, E741, and runner.py:130's unused trace variable. Please make the added files pass the repository's existing rule set; no broader style-rule expansion is requested.
Validation otherwise succeeded: hash-locked released dependencies installed; check_package.py --fetch passed; all 27 tests ran without skips; 12 TRACE Reference shapes validated; MintID publisher bytes passed; the known Proofable LF/CRLF checksum failure remained an explicit integrity FAIL. All 15 retained native-run collector hashes matched. I inspected the retained native artifacts but did not rerun vendor sandbox execution. The separation of author observations, synthetic effects, pointer shape, and native-run qualifications is appropriate; this review makes no Verified-tier or conformance claim.
imran-siddique
left a comment
There was a problem hiding this comment.
@wlad232 the repo-wide ruff gate fails on this package: 46 errors across create_references.py, runner.py and test_runner.py (E701/E702 one-line statements, E731 assigned lambdas, F841 an unused trace at runner.py:130). The rest of CI passes. To reproduce what CI runs:
ruff check integrations/alakris-authority-comparison --target-version py39 --select E4,E7,E9,F
Please push the fix; the package review follows once CI is green.
Proofable update: frozen packet repinned, independent reader PR open@wlad232 — Proofable's corrected Oct 8 package is frozen at This resolves the two blockers your review raised for Proofable:
On the binding-veto case, the machine-readable results and the signed authority receipt distinguish Independent code-based appraisal of this packet, from the ProbityAI reader, is open as a PR: If you repin the shared runner's Proofable adapter to The old Scope is unchanged: author-operated (SELF); independent code-based appraisal of published evidence, |
|
Proofable follow-up for the shared runner at The corrected frozen packet is The related reader now verifies all 11 envelopes and binds their qHashes to the trace and manifest. My current-head rerun results are recorded at probityai/agent-evidence-observer#88 (comment) (reader head Suggested bounded integration:
The initial pin/material-only patch has been exercised locally for checksum PASS, measured material presence, unperformed-signature state, and trace/envelope byte-tamper rejection; I have not run this shared runner's entire suite or changed this PR branch. Receipt verification remains unperformed in this shared adapter until the verifier is actually integrated and run. No change to SELF custody, independent-live-run status, target-side effect limitations, conformance claims or unmeasured revocation latency is warranted. |
|
Published the bounded Proofable follow-up for integration: dinakarjs#1 — now ready for review, with 12 changed files against this PR's unchanged head It repins the corrected Oct 8 packet, retains the historical Oct 6 checksum FAIL separately, vendors the reviewed offline verifier with license/attribution, and checks qHash/signature/DID/chain plus exact trace/manifest/envelope qHash-set binding. The lint follow-up fixes the shared-runner compound statements, assigned lambdas, ambiguous test variable and unused local while retaining JSONL parsing; the vendored verifier remains unchanged. Validation at the current head: all eight triggered GitHub workflows succeeded, including Lint and Alakris authority comparison evidence checks. Producer SELF custody and evidence boundaries remain unchanged: no independent live comparison, current-freshness, target-side effect-custody, conformance or measured revocation-latency claim. The connector could not open a direct PR against |
|
@wlad232 dinakarjs#1 is based on this PR's head carloshvp's point is still open after that follow-up. Can you push both by Friday, Oct 16? The review continues once CI is green. |
|
The required-field follow-up is now included in dinakarjs#1 at
All eight workflows are green at this head, including Ruff and the full Both requested fixes are available in the same ready-for-review fork PR for integration by the shared-runner author. Evidence scope remains unchanged; no upstream branch was modified or merged. |
|
@wlad232 I checked dinakarjs#1 at |
|
@imran-siddique @carloshvp Integrated dinakarjs#1 through exact head Local validation passed: the repository's Ruff gate reports zero errors; all 34 tests pass without skips; The corrected Oct 8 Proofable bytes/envelopes pass, while the historical Oct 6 checksum failure remains preserved; SELF custody and independent-live-run limitations are unchanged. GitHub currently shows 14 workflows awaiting maintainer approval on this head. Please approve the runs and re-review both fixes; the upstream CI is not yet green. |
|
Non-blocking contract clarification — #288 at The current adapters correctly retain
Question: is If it is only a reporting assertion, the contract and documentation should make that limitation explicit. If it is evidence-backed, which layer should establish the provenance binding and enforce its positive and negative controls? I am not claiming a downstream certification bypass or a problem with the current vendor results. I'm raising this as a non-blocking clarification. |
imran-siddique
left a comment
There was a problem hiding this comment.
Both requests are met at 74fc43c, the head I checked on dinakarjs#1, and all 36 runs on it pass apart from the maintainer gate.
Non-blocking, on @solloek369-arch's question: treat the independence flag as the reporter's own claim, since nothing in the runner checks who executed the run. @wlad232, please say that in the contract in a follow-up so a reader does not take true as established.
@carloshvp your required-fields reproducer now raises at this head; could you re-review by Oct 16?
|
@wlad232 — the non-blocking clarification requested in Imran's review is ready for integration: dinakarjs#2. It is a two-file documentation diff at All eight fork workflows pass, including the full evidence check: https://github.com/dinakarjs/integrations/actions/runs/38279889516. No native execution or new independence claim is made. The patch is now ready for review; it can be integrated as the follow-up Imran requested. |
carloshvp
left a comment
There was a problem hiding this comment.
Re-reviewed 74fc43c in an isolated Python 3.12 checkout. Both blocking findings from my October 7 review are resolved; no new blocking finding in this revision.
The validator now requires all 14 contract fields before interpreting observations and no longer fills missing fields during validation. I independently removed each required field from each of the four cases in both MintID reports and the corrected Proofable report: all 168 probes rejected the omission without mutating the report, while three complete controls passed. The original authority/decision omission reproducer passes on the previously reviewed head and fails on this head. The added regression coverage and existing repository Ruff gate pass.
Validation: hash-locked dependencies installed; check_package.py --fetch passed; all 34 tests ran without skips; 20 pinned public artifacts fetched and 20 TRACE reference shapes validated. Corrected Proofable bytes and all 11 offline envelopes passed; the historical checksum failure remains an explicit FAIL. An additional 55 per-envelope chain, wallet, DID, signature and qHash tampering probes failed as expected. The vendored verifier matches its pinned upstream source byte-for-byte, and all 15 retained native-run collector artifact hashes match.
Non-blocking follow-up: make explicit in the contract and README that independent_live_reproduction is a reporter-supplied assertion and validate_report does not establish execution provenance, as requested in Imran's review. The proposed documentation patch has not been integrated into this head. Current adapters retain author_record and independent_live_reproduction=false.
This approval is for the reviewed head. I did not rerun vendor sandbox execution; offline signature integrity and pointer shape do not establish current freshness, independent target effects, Verified tier or conformance. The existing failed maintainer gate is a review-policy result, not a reproduced code failure; branch rules still apply.
|
The non-blocking provenance clarification noted in the approval is now rebased onto merged main and submitted as #315 (9d65044). README and contract explanatory text only; it states that independent_live_reproduction is producer-supplied and validate_report does not establish execution provenance. Local JSON/diff checks and the scoped validator controls are reported with their skip/fixture limitations in the PR. Ready for normal maintainer review. |
Closes #287.
Adds pinned public-evidence adapters for MintID and Proofable, an executable synthetic executor fixture, and released TRACE reference shape validation. Reports keep publisher observations, absent fields, unperformed appraisals and actual execution provenance distinct; external evidence does not become attestation or an independently verified effect.
Validation: Python 3.12.15, 27 tests including valid control, forged dispatch, action tampering, duplicate suppression, deadline closure, manifest coverage and missing-case rejection. MintID operator-record hashes pass. The pinned Proofable trace intentionally fails the strict publisher digest check; the diagnostic identifies LF/CRLF equivalence without altering expected hashes. Native client runs reproduced issuer/control and remaining revocation observations, but retain an initial HTTP 503 abort and a failed positive baseline in the bounded retry. Native reproduction scope and artifact hashes are recorded in RESULTS.md.
No Verified tier or conformance level is requested. Original vendor sources/evidence remain in their repositories. GitHub maintainer is the authenticated human submitting account
wlad232; the source/evidence and author-run limitations remain explicit.