From 73f1ec2b28ca05d79db9fb0ea64bc1902c81fb9a Mon Sep 17 00:00:00 2001
From: Claude
Date: Fri, 9 Oct 2026 21:25:31 +0000
Subject: [PATCH 1/2] Web: show a labeled "AgentID verified" section on the
agent profile
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The AgentID integration only rendered a small green check next to the
agent name (meaning in a hover tooltip), so a linked agent had no visible
mention of AgentID on its profile. Add a dedicated verified-identity
section under the header showing the AgentID badge, "AgentID verified ·
", the verified email, the issuer (linked to agentid.com),
and the linked date, with a one-line note that it is an OIDC identity
layered on the agent's AgentSig key. Gated on agent.agentId.verified;
no change when an agent has no linked AgentID.
Co-Authored-By: Claude Opus 4.8
Claude-Session: https://claude.ai/code/session_01NNqTSRyDjL1LcayDuUeDkr
---
packages/web/src/pages/AgentProfile.tsx | 63 +++++++++++++++++++++++++
1 file changed, 63 insertions(+)
diff --git a/packages/web/src/pages/AgentProfile.tsx b/packages/web/src/pages/AgentProfile.tsx
index 5bc6f0d..c384957 100644
--- a/packages/web/src/pages/AgentProfile.tsx
+++ b/packages/web/src/pages/AgentProfile.tsx
@@ -350,6 +350,69 @@ export default function AgentProfile(): React.ReactElement {
+ {/* Verified identity (AgentID) */}
+ {agent.agentId?.verified && (
+
+
+
+
+ AgentID verified
+ {agent.agentId.displayName && (
+ · {agent.agentId.displayName}
+ )}
+
+
+ {agent.agentId.email && (
+
+ Email
+ {agent.agentId.email}
+ {agent.agentId.emailVerified && (
+ ✓ verified
+ )}
+
+ )}
+
+ Issuer
+
+ {agent.agentId.issuer.replace(/^https?:\/\//, '')}
+
+
+ {agent.agentId.linkedAt && (
+
+ Linked
+
+ {new Date(agent.agentId.linkedAt).toLocaleDateString(undefined, {
+ year: 'numeric',
+ month: 'short',
+ day: 'numeric',
+ })}
+
+
+ )}
+
+
+ Cryptographically verified identity via AgentID (OpenID Connect), layered on this agent’s AgentSig signing key.
+
+
+
+ )}
+
{/* Reputation card */}
Date: Fri, 9 Oct 2026 21:33:38 +0000
Subject: [PATCH 2/2] Web: wrap long AgentID identity text so the card never
overflows on mobile
Greptile P2 on the new verified-identity card: flexWrap moves whole items
to the next line but does not break long unbroken values, so a long masked
email or display name could spill outside the card on narrow phones. Add
overflowWrap: 'anywhere' to the card's text rows and minWidth: 0 to the
flex items (and the display name) so those values wrap within the card.
Verified at 390px with injected long values: the card stays within bounds.
Co-Authored-By: Claude Opus 4.8
Claude-Session: https://claude.ai/code/session_01NNqTSRyDjL1LcayDuUeDkr
---
packages/web/src/pages/AgentProfile.tsx | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/packages/web/src/pages/AgentProfile.tsx b/packages/web/src/pages/AgentProfile.tsx
index c384957..6a512ba 100644
--- a/packages/web/src/pages/AgentProfile.tsx
+++ b/packages/web/src/pages/AgentProfile.tsx
@@ -366,35 +366,35 @@ export default function AgentProfile(): React.ReactElement {
>
-
+
AgentID verified
{agent.agentId.displayName && (
- · {agent.agentId.displayName}
+ · {agent.agentId.displayName}
)}
-
+
{agent.agentId.email && (
-
+
Email
- {agent.agentId.email}
+ {agent.agentId.email}
{agent.agentId.emailVerified && (
✓ verified
)}
)}
-
+
Issuer
{agent.agentId.issuer.replace(/^https?:\/\//, '')}
{agent.agentId.linkedAt && (
-
+
Linked
{new Date(agent.agentId.linkedAt).toLocaleDateString(undefined, {