From 9b5430754375897afd53e2de363aa03727009104 Mon Sep 17 00:00:00 2001 From: Mohammad Shahbaz Alam Date: Thu, 2 Jul 2026 11:08:14 +0400 Subject: [PATCH 1/3] fix: resolve SEO audit issues (hreflang redirects, orphan page, broken links) - Strip trailing slash from hreflang alternates on dotted versioned routes in the llms-html-injector post-build plugin (matches the canonical fix) so Smart Accounts Kit changelog/version pages stop pointing hreflang at 308s. - Redirect the orphaned /smart-accounts-kit/1.5.0 x402 advanced-permissions page to the current equivalent in vercel.json. - Fix broken external links: Wagmi Vue, Circle USDC addresses, and Pimlico API-key docs; drop the dead Web3Auth React Playground example. - Render the OpenUPM registry URL as plain copyable text (new CopyableNoFollow `plain` prop) so crawlers stop flagging the 44 Unity pages. Tooling: - Add ambient *.module.css / *.module.scss declarations to src/globals.d.ts so the isolated tsc-files pre-commit hook can type-check CSS-module components. - Remove the Vale check from the lint-staged pre-commit hook (CI-only) and document why it must not be re-added. Co-authored-by: Cursor --- .cursor/rules/contributor-workflow.mdc | 7 +++++++ .../_evm-get-account.mdx | 2 +- .../_evm-installation.mdx | 2 +- embedded-wallets/sdk/vue/README.mdx | 2 +- package.json | 5 +---- scripts/vale-staged.sh | 7 +++++++ src/components/CopyableNoFollow/index.tsx | 19 +++++++++++++++---- src/globals.d.ts | 15 +++++++++++++++ src/pages/tutorials/erc20-paymaster.mdx | 4 ++-- .../tutorials/sending-gasless-transaction.mdx | 2 +- src/plugins/llms-html-injector/index.js | 10 ++++++++++ src/utils/example-maps.tsx | 12 ------------ vercel.json | 5 +++++ 13 files changed, 66 insertions(+), 26 deletions(-) diff --git a/.cursor/rules/contributor-workflow.mdc b/.cursor/rules/contributor-workflow.mdc index 5fd0598e27d..34bdb462b59 100644 --- a/.cursor/rules/contributor-workflow.mdc +++ b/.cursor/rules/contributor-workflow.mdc @@ -85,6 +85,13 @@ that enforces Microsoft style, Consensys terminology, and spelling. Fix any lint requesting review. If a warning is a false positive, add the term to the Vale vocabulary file rather than rewriting valid technical language. +> **Warning:** Do not wire Vale into the Husky `pre-commit` hook (`lint-staged` in `package.json`). +> Vale is intentionally CI-only. It frequently reports false positives on valid technical content +> (for example, code identifiers like `wagmi-tab`, product names, and intentional ellipses) and lints +> the entire staged file rather than just your diff, so running it on commit blocks unrelated, +> pre-existing content and stalls otherwise-valid commits. Let the PR CI run Vale; contributors can +> still run it on demand with `npm run docs:ci`. + ## Pull requests - Summarize what changed and why in the PR description. Do not just list files. diff --git a/embedded-wallets/connect-blockchain/_unity-connect-blockchain/_evm-get-account.mdx b/embedded-wallets/connect-blockchain/_unity-connect-blockchain/_evm-get-account.mdx index 70a12a542b4..45af306aa9f 100644 --- a/embedded-wallets/connect-blockchain/_unity-connect-blockchain/_evm-get-account.mdx +++ b/embedded-wallets/connect-blockchain/_unity-connect-blockchain/_evm-get-account.mdx @@ -14,7 +14,7 @@ Install via **Package Manager** using OpenUpm: - add a new **Scoped Registry** (or edit the existing OpenUPM entry) - Name package.openupm.com - - URL + - URL - `Scope(s)` com.nethereum.unity diff --git a/embedded-wallets/connect-blockchain/_unity-connect-blockchain/_evm-installation.mdx b/embedded-wallets/connect-blockchain/_unity-connect-blockchain/_evm-installation.mdx index 39f445d1fca..4024dddc92c 100644 --- a/embedded-wallets/connect-blockchain/_unity-connect-blockchain/_evm-installation.mdx +++ b/embedded-wallets/connect-blockchain/_unity-connect-blockchain/_evm-installation.mdx @@ -14,7 +14,7 @@ Install via **Package Manager** using OpenUpm: - add a new **Scoped Registry** (or edit the existing OpenUPM entry) - Name package.openupm.com - - URL + - URL - `Scope(s)` com.nethereum.unity diff --git a/embedded-wallets/sdk/vue/README.mdx b/embedded-wallets/sdk/vue/README.mdx index 82f6ce636cd..4048a078650 100644 --- a/embedded-wallets/sdk/vue/README.mdx +++ b/embedded-wallets/sdk/vue/README.mdx @@ -227,7 +227,7 @@ Use composables from `@web3auth/modal/vue/solana`. ### Ethereum integration -Ethereum composables are provided through [`@wagmi/vue`](https://wagmi.sh/vue), which works with Embedded Wallets. This allows you to leverage a wide range of Ethereum composables for account management, transactions, and more. +Ethereum composables are provided through [`@wagmi/vue`](https://wagmi.sh/vue/getting-started), which works with Embedded Wallets. This allows you to leverage a wide range of Ethereum composables for account management, transactions, and more. For implementation details and examples, refer to the [Ethereum Composables](./ethereum-composables.mdx) section. diff --git a/package.json b/package.json index 4422c02560e..9d5497054d6 100644 --- a/package.json +++ b/package.json @@ -29,10 +29,7 @@ "**/*.{js,jsx,ts,tsx}": "eslint --fix --max-warnings=5 --no-warn-ignored", "**/*.{ts,tsx}": "tsc-files --noEmit src/globals.d.ts", "**/*.css": "stylelint --fix", - "**/*.{md,mdx}": [ - "prettier --write", - "bash scripts/vale-staged.sh" - ], + "**/*.{md,mdx}": "prettier --write", "**/*.{ts,js,tsx,jsx,json,css,scss,html,yml,yaml}": "prettier --write" }, "dependencies": { diff --git a/scripts/vale-staged.sh b/scripts/vale-staged.sh index 163343e3acd..c47eb02701e 100755 --- a/scripts/vale-staged.sh +++ b/scripts/vale-staged.sh @@ -1,5 +1,12 @@ #!/usr/bin/env bash # Run Vale (Consensys docs-spelling-check) on files passed by lint-staged. +# +# WARNING: Do NOT re-add this to the Husky pre-commit hook (`lint-staged` in +# package.json). Vale is intentionally CI-only: it produces false positives on +# valid technical content (code identifiers like `wagmi-tab`, product names, +# intentional ellipses) and lints the whole staged file, not just the diff, so +# running it on commit blocks unrelated pre-existing content. Let PR CI run Vale. +# Contributors can still run it on demand with `npm run docs:ci`. set -euo pipefail diff --git a/src/components/CopyableNoFollow/index.tsx b/src/components/CopyableNoFollow/index.tsx index e7610dcacc6..322879e97ce 100644 --- a/src/components/CopyableNoFollow/index.tsx +++ b/src/components/CopyableNoFollow/index.tsx @@ -11,9 +11,16 @@ type CopyableNoFollowProps = { url: string /** Optional link text; defaults to url */ children?: React.ReactNode + /** + * Render the value as plain, non-link text (keeping the copy button) instead + * of a nofollow anchor. Use for registry/endpoint URLs that are not meant to + * be browsed (for example, `package.openupm.com`), so crawlers don't flag + * them as broken links. + */ + plain?: boolean } -export default function CopyableNoFollow({ url, children }: CopyableNoFollowProps) { +export default function CopyableNoFollow({ url, children, plain }: CopyableNoFollowProps) { const [copied, setCopied] = useState(false) const handleCopy = useCallback(async () => { @@ -28,9 +35,13 @@ export default function CopyableNoFollow({ url, children }: CopyableNoFollowProp return ( - - {children ?? url} - + {plain ? ( + {children ?? url} + ) : ( + + {children ?? url} + + )}