Add EPI Recorder: TRACE Level 0 record-producer + WCM attestation-source - #148
Conversation
…testation-source. Request Verified tier. Reproduction is pip install epi-recorder==4.4.1 and trace-tests verify --level 0.
|
🔴 Contributor Check: HIGH
Automated check by AgenTrust Contributor Check. |
|
@imran-siddique — EPI Recorder 4.4.1 is tagged and on GitHub Releases. This PR is the TRACE Level 0 + WCM |
b58edca to
f839295
Compare
|
Updating this listing from 4.4.1 to 4.4.3. While auditing seal completeness we found that sealed step content was truncated at 2000 characters through 4.4.1 — artifacts sealed on those versions are not full transcripts. 4.4.3 seals full payloads, truncates only in the viewer, and records |
|
4.4.3 is now on PyPI; CI is green. |
Reproduction, digest, KNOWN_LIMITATIONS, and CI pin move off 4.4.1. origin.producer is epi-recorder/4.4.3.
1fe8a93 to
5c4af35
Compare
imran-siddique
left a comment
There was a problem hiding this comment.
Merging at the tier the metadata claims, which is community. The Verified request is a separate decision and I am not granting it here.
What I checked
epi-recorder 4.4.3is on PyPI, 41 releases, and the version you pin is present.- The
v4.4.3release tag resolves. docs/KNOWN_LIMITATIONS.mdat that tag resolves and does disclose the historical step-content truncation through 4.4.1.- The conformance workflow follows this repository's existing convention (
aeoess-aps-conformance.yml,comply54-conformance.ymland others), so a per-integration workflow here is expected rather than unusual.
What made this straightforward to merge
You under-claim on both axes and you say why. TRACE is record-producer at level 0 with L1 and L2 explicitly disclaimed by naming the codes that would fail (TR-RTE-001, TR-RTE-004), rather than left unstated. WCM is attestation-source with no conformance level, because you do not verify a custody manifest and you say so. Two claims a submitter could have quietly rounded up, rounded down instead.
Linking your own KNOWN_LIMITATIONS.md for a truncation defect in shipped versions of your own product, in the submission asking to be listed, is the strongest signal available that the rest of the claims were made the same way.
And tier: community in integration.yaml while requesting evaluation in the README is the right way round. A submission that wrote verified into its own metadata and asked for confirmation afterwards would be a different conversation.
On the Verified tier
Not deciding it in this merge, and not because of anything about the submission.
The bar here is a maintainer reproducing the claim, not a maintainer reading a reproduction. The catalog currently carries two verified entries, ramen-ai cMCP Adapter and SOVP, and both got there by someone running the thing. Granting a third on the strength of a well-written request would make the tier mean something different for you than it meant for them, which is unfair in both directions.
Your four steps are runnable against released packages only, which is exactly what makes it evaluable, and the digest and iter_errors=0 give something to compare against. I will pick it up as its own piece of work rather than as a footnote to a listing merge. Nothing further needed from you meanwhile.
|
Correction on three details in this listing, found by re-running the reproduction from a clean environment against released packages only. The digest is not reproducible and I should not have presented it as evidence. sha256:d17f305b… came from one local run. A .epi contains a creation timestamp, a random workflow UUID, and a freshly generated signing key, so every run produces a different artifact — three consecutive runs here gave 3dc71957…, 90a5d89e…, and d0f297b1…. Nothing a third party computes will match the number in the PR body. The claims that do hold on every run: trace-tests verify --level 0 → PASS (8 checks, TR-SIG green, Ed25519 verified), iter_errors() → empty, and tool_transcript.hash == sha256(.epi) within the same run. verify_record wording: a bare call raises ValueError about requiring a trusted key. allow_embedded_key=True is needed to reach InvalidSignature. Tampering does break the signature on iat, subject, and tool_transcript.hash — the README overstated the call signature. KNOWN_LIMITATIONS anchor: the correct fragment is #historical-step-content-truncation-through-4-4-1. The one in the PR body returns 200 but lands at the top of the page. Level 0 PASS, empty iter_errors, the transcript binding, and the conformance workflow on 3.11 and 3.12 all reproduce as written from a clean venv. |
Second half of the same breakage. #148 added an integration without regenerating the index, so `validate` fails on "README integration index is stale" for every open PR in the repository, independently of the schema key fixed in the previous commit. Produced by running scripts/generate_integration_index.py, not by hand. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012yyHFd4YA35oNUjhrztJSb
…king validate repo-wide (#158) * fix(epilabs-epi-recorder): drop the unschemad tested_against key `tested_against` declares `additionalProperties: false` and permits five keys: cmcp-runtime, agentrust-trace, agentrust-trace-tests, agent-manifest, weight-custody-manifest. The manifest added a sixth, `epi-recorder`, pinning the integration's own version. This failed `validate` repo-wide, so every open PR in the repository was red on a manifest none of them touched. Local check after this change: 33 manifests, 0 failures. Removing the key rather than widening the schema keeps this to the minimum that unblocks the repository. Pinning an integration's own version in tested_against is a reasonable thing to want and is worth deciding on its own merits rather than under a repo-wide red. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012yyHFd4YA35oNUjhrztJSb * docs: regenerate the README integration index Second half of the same breakage. #148 added an integration without regenerating the index, so `validate` fails on "README integration index is stale" for every open PR in the repository, independently of the schema key fixed in the previous commit. Produced by running scripts/generate_integration_index.py, not by hand. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012yyHFd4YA35oNUjhrztJSb --------- Co-authored-by: Imran Siddique <imran.siddique.microsoft@gmail.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Summary
Adds
integrations/epilabs-epi-recorder/for epi-recorder 4.4.3.record-producer,trace_conformance_level: 0(software-only log-import). L1/L2 are not claimed (TR-RTE-001,TR-RTE-004).attestation-source(no WCM conformance level; we do not verify a custody manifest).iter_errors=0,origin.producer=epi-recorder/4.4.3):sha256:d17f305b7f3e9950614df5ae6810b86b111c6a9aa23c37c71cac5dd503da591f.Verified tier requested
Please evaluate for Verified. Reproduction (released packages only):
Also:
tool_transcript.hash == sha256(.epi); tamper ->InvalidSignature.Release artifacts: https://github.com/mohdibrahimaiml/epi-recorder/releases/tag/v4.4.3
Seal completeness (truncation through 4.4.1): https://github.com/mohdibrahimaiml/epi-recorder/blob/v4.4.3/docs/KNOWN_LIMITATIONS.md#historical-step-content-truncation-through-441
Marketplace catalog regenerated via
python scripts/generate_marketplace_catalog.pyon the original listing; this commit updates yaml/README/CI pin only.Links checked