From 4f311eaa7943a9ab8533fc952b3832b459f8f880 Mon Sep 17 00:00:00 2001 From: Eric Seidel Date: Mon, 19 Oct 2026 23:02:08 -0600 Subject: [PATCH 1/4] fix: drop unresolvable host.identifier from ai-catalog, link it as describedby did:web:shorebird.dev has no did.json behind it, so the identifier points at nothing. service-desc is for API descriptions (it still names the OpenAPI document); the ai-catalog describes the site, which is what describedby means. Matches shorebirdtech/website#426. Co-Authored-By: Claude Opus 5.5 --- .cspell.yaml | 1 + functions/_middleware.ts | 2 +- public/.well-known/ai-catalog.json | 1 - src/components/starlight/Head.astro | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.cspell.yaml b/.cspell.yaml index 693f12e8..e0d9b3f4 100644 --- a/.cspell.yaml +++ b/.cspell.yaml @@ -45,6 +45,7 @@ words: - codesign - codesigning - cupertino + - describedby - elif - emailaddress - eseidel diff --git a/functions/_middleware.ts b/functions/_middleware.ts index b5a47725..5dc9e30c 100644 --- a/functions/_middleware.ts +++ b/functions/_middleware.ts @@ -75,7 +75,7 @@ function scoreFor(entries: AcceptEntry[], target: string): number { // Link response headers for agent discovery (RFC 8288) const AGENT_LINK_HEADERS = [ '; rel="api-catalog"', - '; rel="service-desc"', + '; rel="describedby"; type="application/json"', '; rel="agent-skills"', '; rel="agent-instructions"', '; rel="agent"', diff --git a/public/.well-known/ai-catalog.json b/public/.well-known/ai-catalog.json index b4a03f94..9597d34b 100644 --- a/public/.well-known/ai-catalog.json +++ b/public/.well-known/ai-catalog.json @@ -1,7 +1,6 @@ { "specVersion": "0.1.0", "host": { - "identifier": "did:web:shorebird.dev", "domain": "shorebird.dev", "displayName": "Shorebird", "description": "Code push and over-the-air update platform for Flutter applications across all supported platforms." diff --git a/src/components/starlight/Head.astro b/src/components/starlight/Head.astro index ee5c3004..989af44d 100644 --- a/src/components/starlight/Head.astro +++ b/src/components/starlight/Head.astro @@ -46,7 +46,7 @@ const markdownPath = unlistedPages.includes(entry.id) title="LLMs Overview" /> From 1b0059ece5a11534210d5e0d915a24f4632975a9 Mon Sep 17 00:00:00 2001 From: Eric Seidel Date: Mon, 19 Oct 2026 23:10:15 -0600 Subject: [PATCH 2/4] fix: advertise the ai-catalog with its own rel="ai-catalog" relation The AI Catalog spec registers rel="ai-catalog" and the media type application/ai-catalog+json, and isitagentready.com looks for that relation. Also set specVersion to the spec's Major.Minor "1.0". Co-Authored-By: Claude Opus 5.5 --- .cspell.yaml | 1 - functions/_middleware.ts | 2 +- public/.well-known/ai-catalog.json | 2 +- public/_headers | 2 +- src/components/starlight/Head.astro | 4 ++-- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.cspell.yaml b/.cspell.yaml index e0d9b3f4..693f12e8 100644 --- a/.cspell.yaml +++ b/.cspell.yaml @@ -45,7 +45,6 @@ words: - codesign - codesigning - cupertino - - describedby - elif - emailaddress - eseidel diff --git a/functions/_middleware.ts b/functions/_middleware.ts index 5dc9e30c..205ce27f 100644 --- a/functions/_middleware.ts +++ b/functions/_middleware.ts @@ -75,7 +75,7 @@ function scoreFor(entries: AcceptEntry[], target: string): number { // Link response headers for agent discovery (RFC 8288) const AGENT_LINK_HEADERS = [ '; rel="api-catalog"', - '; rel="describedby"; type="application/json"', + '; rel="ai-catalog"; type="application/ai-catalog+json"', '; rel="agent-skills"', '; rel="agent-instructions"', '; rel="agent"', diff --git a/public/.well-known/ai-catalog.json b/public/.well-known/ai-catalog.json index 9597d34b..69075dbe 100644 --- a/public/.well-known/ai-catalog.json +++ b/public/.well-known/ai-catalog.json @@ -1,5 +1,5 @@ { - "specVersion": "0.1.0", + "specVersion": "1.0", "host": { "domain": "shorebird.dev", "displayName": "Shorebird", diff --git a/public/_headers b/public/_headers index bfb5fa8c..2cd82026 100644 --- a/public/_headers +++ b/public/_headers @@ -32,7 +32,7 @@ Access-Control-Allow-Origin: * /.well-known/ai-catalog.json - Content-Type: application/json; charset=utf-8 + Content-Type: application/ai-catalog+json; charset=utf-8 Access-Control-Allow-Origin: * /.well-known/agent-skills/index.json diff --git a/src/components/starlight/Head.astro b/src/components/starlight/Head.astro index 989af44d..97a00897 100644 --- a/src/components/starlight/Head.astro +++ b/src/components/starlight/Head.astro @@ -46,8 +46,8 @@ const markdownPath = unlistedPages.includes(entry.id) title="LLMs Overview" /> Date: Mon, 19 Oct 2026 23:12:54 -0600 Subject: [PATCH 3/4] chore: re-run CI against the renamed PR title Co-Authored-By: Claude Opus 5.5 From b1075d19d2383b684965ca56af5f201b2dd54101 Mon Sep 17 00:00:00 2001 From: Abhishek Doshi Date: Wed, 21 Oct 2026 16:30:09 +0530 Subject: [PATCH 4/4] fix: serve the ai-catalog with its registered media type, no charset --- public/_headers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/_headers b/public/_headers index 2cd82026..f36bc400 100644 --- a/public/_headers +++ b/public/_headers @@ -32,7 +32,7 @@ Access-Control-Allow-Origin: * /.well-known/ai-catalog.json - Content-Type: application/ai-catalog+json; charset=utf-8 + Content-Type: application/ai-catalog+json Access-Control-Allow-Origin: * /.well-known/agent-skills/index.json