feat(agent-challenge): AC attestation provenance + Phala multi-account (+ prism/lium) - #1
Open
alpha1122x wants to merge 11 commits into
Open
feat(agent-challenge): AC attestation provenance + Phala multi-account (+ prism/lium)#1alpha1122x wants to merge 11 commits into
alpha1122x wants to merge 11 commits into
Conversation
Mirror standalone agent-challenge dual-flag admission: GHCR live-registry refs, package_tree_sha score-chain refuse, progress module, and fixture pins.
Keep package-scoped ruff line-length 100 after GHCR path retarget.
Guest CVMs fetch the miner ZIP over a short-lived bearer grant instead of baking bytes into the image. Compose allowlists the delivery env names so the generator hash stays intentional. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Guest hashes download and executed bytes; schema-v2 envelopes carry guest_artifact_proof; host scoring rejects success results whose proof describes a different artifact than the submission (distinct reason codes). Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Static app_id pins only worked for the operator account. Discovery omits nonce and app_id so Phala mints the account-derived handle; live 422 showed nonce without app_id is illegal. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Reference miner loop and ZIP builder for submission path exercises against a controlled hotkey without on-chain registration. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Optional background task posts winner-take-all weights to master with a ledger so retries stay idempotent; wires eval artifact router on create_app. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Persist image digest allowlist and one-time attestation nonces so master can gate Lium/constation evidence without in-memory-only state. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Shared attestation payload, nonce issue/consume, digest allowlist checks, and constation poller/runner so pod evidence can be corroborated offline. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Wire nonce/allowlist/bundle endpoints through app proxy and CLI helpers so workers can complete the Lium attestation handshake end-to-end. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ingest and check constation bundles before accepting prism results; attestation routes and breakglass keep offline characterization intact. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
app_ids observed for the same compose — operatorf024ea23…, provision probeaab931e1…, real deployed CVM49b6c172d0361da1213efa314614a049442a47d5— provingapp_idis account-derived and a static pin could never work for any miner but the operator.cvm_aj3D6Meb,compose_hash ade5a1cf…) deployed and reachedrunning, then was torn down (total spend ≈ $0.02).miner-1/5EXCwYhx…, submission id 11) — AC verifies signatures only; no on-chain registration required.guest_artifact_proofon schema-v2 envelope → host-side enforcement at scoring/admission so a success result whose proof describes a different artifact than the submission is rejected with distinct reason codes (kept separate from score-0-burn). Mutation testing: disabling the submission-hash binding turns the test RED.Live bug fixed
Phala returns HTTP 422
"When specifying nonce, you must also provide the corresponding app_id". Every offline mock accepted the illegal shape; only the live probe caught it. Discovery now sends neither field and lets Phala mint theapp_id.Changes
Group A — AC attestation provenance + Phala multi-account
app_iddiscovery (review + eval self-deploy)Group B — prism / lium / compute attestation
What is NOT proven (do not claim)
Known open issues (not fixed here)
POST review/deployedreturns 409review_deployed_conflicteven though the CVM exists on Phala.report_generation_failed— reviewer compose declaresOPENROUTER_API_KEY,REVIEW_API_BASE_URL,REVIEW_SESSION_TOKEN; leading hypothesis is a missing value inencrypted_env.Test plan
packages/challenges/agent-challengeonly:UV_CACHE_DIR=/var/tmp/uv-cache uv run pytest -q -p no:randomlytest_eval_compose_hash_determineskips cross-check against stale external pin dump (04011776…) becauseallowed_envsmoved generator hash tocdfb15af…. Generator identity itself is still hard-asserted and passing..env).__pycache__,.pyc, ordocker/canonical/live-task-cache/**committed.CI
gh pr checkswhen available.Notes
feat/agent-challenge-eval-wire-ghcr(includes its two tip commits already on that line).