Skip to content

Harden ERC-8004 tracking and add deployment check#395

Merged
GsCommand merged 3 commits into
mainfrom
agent/public-site-followup
Jul 21, 2026
Merged

Harden ERC-8004 tracking and add deployment check#395
GsCommand merged 3 commits into
mainfrom
agent/public-site-followup

Conversation

@GsCommand

Copy link
Copy Markdown
Contributor

What changed

  • Adds a noindex public/deployment-check.html page so production can be checked for stale static HTML after deploys.
  • Hardens trackPinnedCardRegistration() so malformed/legacy card rows are skipped safely instead of throwing.
  • Exposes erc8004Config() and records whether tracking used explicit env config or the safe Base Mainnet defaults.
  • Updates ERC-8004 registration tests to match the current intended behavior after PR Default ERC-8004 registration config #391: missing env vars should use Base defaults, not skip tracking.

Why

Recent site cleanup PRs are merged and Vercel shows the production alias on the latest main deployment, but web-indexed content can still show stale homepage/Claim copy. A dedicated noindex deployment check page gives us a simple live marker to confirm which version the domain is serving.

The test suite was also reporting failures because tests still expected pre-PR #391 behavior where tracking was disabled without env vars. That is no longer correct because the Base registry config is public protocol config and now has safe defaults.

Safety

  • Does not fake ERC-8004 registration.
  • Does not set agent_id, transaction hash, or ENSIP-25 verification.
  • Does not change Claim wizard IDs, API routes, wallet auth, key generation, ENS record generation, SDK config, or activation flow.

Validation to run

  • npm test
  • npm run check:links
  • Verify https://www.commandlayer.org/deployment-check.html after merge/deploy.

@vercel

vercel Bot commented Jul 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
commandlayer-commandlayer-org Ready Ready Preview, Comment Jul 21, 2026 3:17am
commandlayer-org Ready Ready Preview, Comment Jul 21, 2026 3:17am
commandlayer-org111 Ready Ready Preview, Comment Jul 21, 2026 3:17am

Request Review

@GsCommand
GsCommand marked this pull request as ready for review July 21, 2026 03:28
@GsCommand
GsCommand merged commit 12339c7 into main Jul 21, 2026
5 checks passed
@GsCommand
GsCommand deleted the agent/public-site-followup branch July 21, 2026 03:30

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d8d4243d1c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

registryAddress,
agentUri: card.card_ipfs_uri || null,
agentCardCid: card.card_cid || null,
metadata: { config_source: source },

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve existing registration metadata when tracking

When this upsert encounters an existing registration with populated metadata_json, passing a non-null object makes the conflict clause replace the entire JSON value with only config_source. The ALREADY_PINNED path in api/admin/pin-agent-cards.js retracks every card, so retrying that endpoint can silently erase legacy or operational metadata; merge this field into the existing JSON object instead of replacing it.

Useful? React with 👍 / 👎.

return {
chainId: process.env.ERC8004_CHAIN_ID || DEFAULT_ERC8004_CHAIN_ID,
registryAddress: process.env.ERC8004_REGISTRY_ADDRESS || DEFAULT_ERC8004_REGISTRY_ADDRESS,
source: process.env.ERC8004_CHAIN_ID && process.env.ERC8004_REGISTRY_ADDRESS ? 'env' : 'default_base_mainnet',

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Distinguish partial ERC-8004 environment overrides

When exactly one of the two environment variables is configured, the returned config combines that override with the other Base default but labels the result default_base_mainnet. Every resulting row is therefore stamped as using the safe defaults even though it may contain a custom chain or registry address, concealing a potentially invalid hybrid configuration; either require both variables or record the partial source accurately.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant