docs/spec: close Go verifier findings on Anchor Format §1 escaping rules, verifier-compatibility README, and Acta crosswalk (#448 items 3, 16, 19)
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 20/100
- Tipo di issue
- Documentazione
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- documentation
Direzione di ricerca
Start with the three named documents: spec/registry-anchor-v1.md §1 (lines 54-65), examples/verifier-compatibility/README.md, and the two 3.3.2 references in docs/crosswalks/acta-decision-receipts.md, checked against spec/trace-v0.2.md §3.3. Any code changes touch src/agentrust_trace/sign.py:anchor_bytes and conformance/src/trace_tests/inclusion.py:canonical_claim_bytes, which need unit tests. Linked PR #537 is already open, so coordinate with it before starting. Done means the five escaping rules are stated and the stale text is corrected.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What is wrong
Checked on main at commit 6fb2570254023ee78d9bdc9f6c2c696ad7a9862c:
Three verified findings from the independent Go verifier report (#448 items 3, 16, and 19) remain open across spec/registry-anchor-v1.md, examples/verifier-compatibility/README.md, and docs/crosswalks/acta-decision-receipts.md:
-
#448 Item 19 —
spec/registry-anchor-v1.md§1 definescanonical_claim_bytesvia a Pythonjson.dumpscall rather than stating the five language-independent serialization rules.
Inspec/registry-anchor-v1.md:54-65:- The four prose bullets state: sorted object keys by Unicode code point,
","and":"separators, non-ASCII characters escaped (ensure_ascii) as ASCII bytes, and no trailing newline, followed byjson.dumps(claim, sort_keys=True, separators=(",", ":"), ensure_ascii=True).encode("ascii"). - Five byte-affecting rules that Python's
json.dumps(..., ensure_ascii=True)performs are left unstated in the prose rules:- Mandatory two-character short escapes (
\",\\,\b,\f,\n,\r,\t) forU+0022,U+005C,U+0008,U+000C,U+000A,U+000D,U+0009, with/(U+002F) unescaped. - Lowercase four-hex-digit
\uXXXXescapes for all other control characters (U+0000toU+001F) and all BMP characters aboveU+007F(noting thatU+007FDELETE is emitted literally as byte0x7Fbyensure_ascii=TruewhileU+0080and above are escaped). - Characters above the Basic Multilingual Plane (
U+10000toU+10FFFF) encoded as lowercase UTF-16 surrogate pairs\ud8xx\udcxx. - Lone UTF-16 surrogates (
U+D800toU+DFFF) rejected as outside the profile. - Negative zero (
-0) serialized as0.
Without these rules stated in §1, a non-Python implementation (Go, Rust, TypeScript) following the four prose bullets can emit\u000ainstead of\n, uppercase\u00E9instead of\u00e9, or escape/as\/, producing a different leaf hash for the same claim.
- Mandatory two-character short escapes (
- The four prose bullets state: sorted object keys by Unicode code point,
-
#448 Item 3 —
examples/verifier-compatibility/README.mdstill states that no normative text has been accepted and thatdocs/verification.mdsays nothing about version skew.
examples/verifier-compatibility/README.md:3-11says:**No normative text for them has been accepted.** Do not read a passing vector here as a conformance requirement.
Nothing in docs/verification.md currently says what a verifier must do about version skew
However,spec/trace-v0.2.md§3.3 anddocs/verification.md("Step 4: Check the EAT profile", lines 26-34) now normatively require a nonemptyaccepted_profilesset and require the verification result to record bothprofileandaccepted_profiles(Obligations 2 and 3 of #116), while only Obligations 1 (emitter version declarations) and 4 (downgrade disclosure) remain deferred. -
#448 Item 16 —
docs/crosswalks/acta-decision-receipts.mdcites section3.3.2(the v0.1 section number) in two places where v0.2 section3.3.3is meant.
Indocs/crosswalks/acta-decision-receipts.md:- Line 25:
The verification pattern in 3.3.2 is deliberately domain-agnostic - Line 61:
Serves exactly the external-evidence-by-digest role 3.3.2 describes.
Inspec/trace-v0.2.md, action receipts is section3.3.3(3.3.2was the section number inspec/trace-v0.1.md, and the rest ofacta-decision-receipts.mdalready cites3.3.3).
- Line 25:
Spec section or file
spec/registry-anchor-v1.md§1examples/verifier-compatibility/README.mddocs/crosswalks/acta-decision-receipts.md- Related: #448 (items 3, 16, 19)
Expected behavior
- State the exact string-escaping, surrogate-pair, lone-surrogate exclusion, and
-0rules inspec/registry-anchor-v1.md§1 (and enforce lone-surrogate rejection insrc/agentrust_trace/sign.py:anchor_bytesandconformance/src/trace_tests/inclusion.py:canonical_claim_bytesif needed, with unit tests pinning all five rules). - Update
examples/verifier-compatibility/README.mdto reflect that Obligations 2 and 3 of #116 are now inspec/trace-v0.2.md§3.3 anddocs/verification.md, while Obligations 1 and 4 remain deferred. - Update the two stale
3.3.2references indocs/crosswalks/acta-decision-receipts.mdto3.3.3.
Impact
Non-Python implementations of registry-anchor-v1 §1 can compute different anchor leaf digests on control characters, non-ASCII strings, or non-BMP characters, and readers of examples/verifier-compatibility/README.md and docs/crosswalks/acta-decision-receipts.md meet outdated normative status and section numbers.
Contributor: Raghuvar Durga (@drk-ram)
- Lingua principale
- Python
- Stelle
- 37
- Fork
- 33
- Merge medio
- 1g 4h
- PR unite (30g)
- 111
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di agentrust-io/trace-spec
-
prototype(azure_execution_binding): bind HCLAkPub exponent e and key size, reject duplicate JSON keys, and harden _secure_boot_state and authenticode_sha256Forse già presa @drk-ram l’ha presa 2 giorni fa. Apertaneeds-review:MEDIUM
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
agentrust-io/trace-spec#613 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
content_marking: validate record.alg against record.hash prefix, reject unknown assertion fields, and check anchor agreementForse già presa @drk-ram l’ha presa 2 giorni fa. Apertaneeds-review:MEDIUM
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
agentrust-io/trace-spec#614 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
adapters: validate data_class, policy/appraisal enums, and URI fields in TraceAGTAdapter and TraceSandboxAdapterForse già presa @drk-ram l’ha presa 2 giorni fa. Apertaneeds-review:MEDIUM
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
agentrust-io/trace-spec#615 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
trust-record-verify: reject non-object inputs in parentRecordHash, verifyDelegationLink, and bundleDigestForse già presa @drk-ram l’ha presa 2 giorni fa. Apertaneeds-review:MEDIUM
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
agentrust-io/trace-spec#616 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
intent_bridge,successor_observation: validate caller options and trusted JWKs at entry and deep-copy observation before predicateForse già presa @drk-ram l’ha presa 2 giorni fa. Apertaneeds-review:MEDIUM
Difficoltà 4/5 1-2 giorni Idoneità per principianti 35/100
agentrust-io/trace-spec#617 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di agentrust-io/trace-spec
Issue simili
-
Project submission:Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
slavakurilyak/awesome-ai-agents#845 ·
I maintainer di solito rispondono entro 1 giorno
-
tests: pin that the atomic writers in utils/paths.py stage the temporary file in the target's directoryForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertadifficulty:2 enhancement good first issue
Difficoltà 1/5 1-3 ore Idoneità per principianti 92/100
MakazhanAlpamys/Soup#2178 ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG] dcg.waggr permutation p-values are folded twice, so near-zero scores get the smallest p-valuesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
scverse/rapids-singlecell#854 ·
I maintainer di solito rispondono entro 1 giorno
-
Slang input: int8_t4_packed and uint8_t4_packed are copied into CrossGLForse già presa @ninglinLiu l’ha presa oggi. Apertaarea:frontend backend:slang bug direction:input
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
random_elements(unique=True) on an OrderedDict: ZeroDivisionError once only zero weights remain, AssertionError with use_weighting=FalseForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 13 giorni