diff --git a/scripts/shared-copy.json b/scripts/shared-copy.json index f1ed7f1..9f4e8dc 100644 --- a/scripts/shared-copy.json +++ b/scripts/shared-copy.json @@ -48,7 +48,9 @@ "no network call to (us|Observer)", "no call to (us|Observer)", "no Observer Protocol API in the path", - "makes no network call at all" + "makes no network call at all", + "our uptime", + "permission from us" ], "claimPatternsAreRegex": "Case-insensitive regexes, matched by check-shared-copy.mjs. Written from the site's own examples rather than from one remembered sentence: the claim is spelled 'call back to us' on index.html and 'callback to Observer' on docs.html, and a literal lower-case list saw neither the capitalised heading nor the Observer variant. Four assertions were invisible to this block on 2026-08-09 for exactly that reason. When you add a home for the claim, add its WORDING here, not just its file.", "claimPatternNote": "Any occurrence of these in an HTML file MUST sit inside an element tagged data-shared-copy=\"offline-scope\". That is what makes a tenth instance a build failure rather than a discovery. Add the tag, or add the file to mustAppearIn if it is a new home for the claim. Some tagged instances REFER to the claim rather than asserting it (docs.html's resolution-hosting rationale is one). They are tagged anyway: the enumeration's job is to know everywhere the phrase appears, and a human scoping the claim decides per instance." diff --git a/sdk.html b/sdk.html index a631f04..7591ead 100644 --- a/sdk.html +++ b/sdk.html @@ -76,9 +76,15 @@

Verifying a credential

Everything it checks, you can re-check

-

- The DID document is public, the schema URLs are frozen and immutable, and revocation status lists - are static public files. Verification requires neither our permission nor our uptime. +

+ The DID document is public and the schema URLs are frozen and immutable, so verification needs no + permission from us: nothing to authenticate to, and nothing we can withhold to make a credential + stop verifying. It is not independent of reachability, though. + onUnreachable: 'cache-then-deny' is the only implemented mode, so a revocation list + that cannot be fetched is served from cache inside the staleness window and denied + outside it — and Observer's own clause-zero status list is served by + api.observerprotocol.org rather than as a static file. It fails closed, and it will + refuse us too.