Skip to content

feat: add Nobulex — Ed25519 action receipts as external execution evidence#6

Merged
imran-siddique merged 2 commits into
agentrust-io:mainfrom
arian-gogani:add-nobulex
Jun 22, 2026
Merged

feat: add Nobulex — Ed25519 action receipts as external execution evidence#6
imran-siddique merged 2 commits into
agentrust-io:mainfrom
arian-gogani:add-nobulex

Conversation

@arian-gogani

Copy link
Copy Markdown
Contributor

What this adds

Nobulex integration under integrations/nobulex/.

Nobulex emits Ed25519-signed, JCS-canonical (RFC 8785) receipts for agent actions. Each receipt carries action_ref = SHA-256(JCS({agent_id, action_type, scope, timestamp_ms})) as a content-derived identifier — the same construction described in trace-spec #34 for external execution evidence.

Claim verification

All claims in the README are reproducible against the released PyPI package:

pip install nobulex
python3 -c "
from nobulex import Agent
agent = Agent('my-agent')
receipt = agent.act('tool_call', scope='resource:read')
assert receipt.verify(), 'signature verification failed'
assert len(receipt.action_ref) == 64, 'action_ref not SHA-256 hex'
print('PASS')
"

What this does NOT claim

Nobulex receipts are not TRACE Trust Records. The README is explicit: these are per-action signed assertions that a verifier can optionally check alongside a Trust Record, as described in trace-spec #34. No TRACE conformance level is claimed.

Related

…dence

Nobulex emits JCS-canonical Ed25519-signed receipts carrying action_ref
= SHA-256(JCS({agent_id, action_type, scope, timestamp_ms})), compatible
with the external execution evidence shape described in trace-spec #34.

- pip install nobulex (PyPI 0.1.0)
- verify() confirmed against released package
- action_ref is content-derived, independently recomputable
@github-actions

Copy link
Copy Markdown

🔴 Contributor Check: HIGH

Check Result
Profile HIGH
Credential NONE
Overall HIGH

Automated check by AGT Contributor Check.

@carloshvp

carloshvp commented Jun 19, 2026

Copy link
Copy Markdown
Member

Nice fit for the external-evidence family, and I like that the README clearly says Nobulex receipts are not TRACE Trust Records.

One mapping detail from the cMCP #301 thread may be worth making explicit before merge. #301’s current external_execution_evidence envelope is issuer, issuer_key_id, signature, evidence_hash, evidence_type, and linked_call_id, with the verifier checking linked_call_id == audit_entry.call_id.

The Nobulex receipt shape is close in spirit, but not the same wire shape: it exposes agent_id, action_type, scope, timestamp_ms, verdict, action_ref, signature, and signer_public_key, where action_ref is a hash over {agent_id, action_type, scope, timestamp_ms}. So if the intended cMCP mapping is “use action_ref as linked_call_id,” the integration should spell out the adapter rule: either cMCP’s call_id must be set to that action_ref, or the Nobulex receipt needs to be wrapped inside a cMCP-compatible external_execution_evidence object whose linked_call_id equals the actual audit entry call id.

Could you add a short mapping section, or soften the wording from “can be attached as external_execution_evidence” to “can be adapted into the external-evidence pattern tracked in trace-spec#34 / cMCP #301”?

@imran-siddique imran-siddique left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean integration entry. Claims are accurate and scoped correctly — the README is explicit that Nobulex receipts are not TRACE Trust Records, which is the right framing. Verify command in the PR body is reproducible. Merging.

@imran-siddique imran-siddique merged commit 654d875 into agentrust-io:main Jun 22, 2026
2 of 3 checks passed
This was referenced Jun 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-review:HIGH Contributor check flagged HIGH risk

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants