Repository navigation
docs: verifying a record after the freshness window (informative) - #480
Merged
imran-siddique merged 1 commit intoOct 8, 2026
Conversation
A separate, historical check for a record older than the section 3.2.2 maximum age: replay only the freshness comparison at a time T taken from a Registry Anchor Format v1 inclusion check, with the bounded statement it supports and its non-claims. Non-normative; no schema, wire or conformance change. Suggested in agentrust-io Discussion agentrust-io#47. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018rPJAX4DKvmBS5CWM5jifv Signed-off-by: Horizon <horizon@example.com>
ogasurfproject-jpg
requested review from
a team,
lywinged and
rajnisht7
as code owners
October 8, 2026 05:24
Contributor
|
🔴 Contributor Check: HIGH
Automated check by AgenTrust Contributor Check. |
imran-siddique
approved these changes
Oct 8, 2026
ogasurfproject-jpg
pushed a commit
to ogasurfproject-jpg/horizon-shield
that referenced
this pull request
Oct 9, 2026
…ss window agentrust-io/trace-spec#480 (merged 2026-10-08) adds an informative page on checking a record after its 24 hour window by replaying freshness at a time T taken from evidence that the bytes existed. Link it from the pin module and say what kind of T a pin gives and what it does not.
ogasurfproject-jpg
pushed a commit
to ogasurfproject-jpg/trace-registry-mirror
that referenced
this pull request
Oct 9, 2026
agentrust-io/trace-spec#480 names the earliest independent observation of a registry entry, such as a mirror's copy, as the producer-independent bound. Say that a witness record here gives that time as a Bitcoin block.
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.
Adds an informative page,
docs/verifying-after-the-freshness-window.md, as suggested by @imran-siddique in Discussion #47: a docs PR beside the transparency member, built on replay at a pinned now indocs/verification-outcome-statements.mdand on the anchors in trace-registry, implementation-neutral.Problem. Section 3.2.2 refuses a record older than the maximum age and measures against the issuer's
iat. That is right for admission and leaves nothing to check a record against weeks later (audit, dispute, incident review).What the page says. A separate, historical check: hold the record, the trusted key, the inclusion proof and the freshness bounds; establish T from a Registry Anchor Format v1 inclusion check without contacting the issuer; replay only the freshness comparison at T; retain everything as "Retaining one verification call" describes. It gives the bounded statement replay supports (signature verifies, the anchored bytes existed no later than T,
iatlies between T minus the maximum age and T plus the skew), the non-claims (the record's claims, the exact signing time, key revocation, which section 3.2.3 places by entry order rather than time, and the independence ofts, which the batch producer writes and which can be the issuer), and the cases where there is no bound or the check fails, including a replay that fails on age only because anchoring lagged.What it does not do. It changes no schema field, wire format, required claim or conformance requirement, has no uppercase RFC 2119 keyword, and states that a replay at T is not a conformant section 3.2.2 verification at the present time. No implementation is named. The open retention question stays where section 3.1.2 and trace-tests#92 put it.
Other edits. One nav entry in each of the two lists in
mkdocs.yml, one line under Related inverification-outcome-statements.md, and one sentence under "SCITT-anchored records" inverification.mdpointing to the page.Checks.
python tools/check_dashes.pypasses. The docs build the waydocs.ymlassembles them (mkdocs build --config-file .mkdocs_build.yml) with no new warning, and every in-page and cross-page anchor the new page uses resolves in the built site (20 of 20). This is a docs-only change, so no test can observe it; I did not run pytest locally.Independent reader. Before opening this, the page and the cited sources (the two docs pages,
spec/trace-v0.2.md,spec/registry-anchor-v1.md, CONTRIBUTING) were read by a fresh AI agent session that had seen none of the drafting. It found eight problems, all changed: the revocation bullet treated revocation as a time question, which contradicts section 3.2.3; the draft said every appraisal step runs as at T, when only the freshness comparison moves; "without changing any rule" hid that replay at T is not a section 3.2.2 verification now; the success statement was imprecise about whatiatis bounded to;tswas described as written by the registry, when section 4 has the batch producer write it, possibly the issuer; the inclusion proof was missing from the inputs; a failure on age alone was not covered; and "the earlier bound is tighter" invited choosing a bound after the fact, now "replay at each bound and report each". It also suggested citing section 3.1.2 instead of open question 3 for retention, noting that Level 2 appraisal cannot complete when the entry is unreachable, the envelope-profile caveat, and the link from "SCITT-anchored records"; those are in.Related work, for context only. The intake that prompted the question now runs against the 33 vectors in trace-tests
tests/vectorswith a stated expectation per file, all as expected; the results are on Discussion #47.If any sentence reads stronger than the cited text supports, I would rather change it than defend it.