fix(stats): align deep route metadata with /data (#31930)

This commit is contained in:
Adam 2026-06-11 12:47:45 -05:00 committed by GitHub
commit e07e420637
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 32 additions and 11 deletions

View file

@ -10,7 +10,11 @@ export async function statsProxy(evt: APIEvent) {
targetUrl.hostname = Resource.App.stage === "production" ? "stats.opencode.ai" : "stats.dev.opencode.ai" targetUrl.hostname = Resource.App.stage === "production" ? "stats.opencode.ai" : "stats.dev.opencode.ai"
targetUrl.port = "" targetUrl.port = ""
if (targetUrl.pathname.startsWith(`${dataPath}/_build/`) || targetUrl.pathname === `${dataPath}/banner.jpg`) { if (
targetUrl.pathname.startsWith(`${dataPath}/_build/`) ||
targetUrl.pathname === `${dataPath}/banner.jpg` ||
targetUrl.pathname === `${dataPath}/banner.png`
) {
targetUrl.pathname = targetUrl.pathname.slice(dataPath.length) targetUrl.pathname = targetUrl.pathname.slice(dataPath.length)
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

View file

@ -32,7 +32,10 @@ import {
type ThemePreference, type ThemePreference,
} from "../stats-shell" } from "../stats-shell"
const statsModelFallbackUrl = "https://stats.opencode.ai" const statsCanonicalBaseUrl = "https://opencode.ai/data/"
const statsUnfurlPath = "banner.png"
const statsUnfurlAlt = "OpenCode Data wordmark on a dark patterned background"
const statsUnfurlUrl = new URL(statsUnfurlPath, statsCanonicalBaseUrl).toString()
const modelHeaderLinks: readonly HeaderLink[] = [ const modelHeaderLinks: readonly HeaderLink[] = [
{ href: "#overview", label: "Overview" }, { href: "#overview", label: "Overview" },
{ href: "#usage", label: "Usage" }, { href: "#usage", label: "Usage" },
@ -118,8 +121,8 @@ export default function StatsModel() {
) )
const modelUrl = createMemo(() => const modelUrl = createMemo(() =>
new URL( new URL(
`${import.meta.env.BASE_URL}${catalogEntry()?.id ?? `${labParam()}/${stats()?.slug ?? modelParam()}`}`, catalogEntry()?.id ?? [labParam(), stats()?.slug ?? modelParam()].filter((part) => part.length > 0).join("/"),
event?.request.url ?? (typeof window === "undefined" ? statsModelFallbackUrl : window.location.href), statsCanonicalBaseUrl,
).toString(), ).toString(),
) )
const updateThemePreference = (preference: ThemePreference) => { const updateThemePreference = (preference: ThemePreference) => {
@ -147,9 +150,16 @@ export default function StatsModel() {
<Meta property="og:title" content={modelTitle()} /> <Meta property="og:title" content={modelTitle()} />
<Meta property="og:description" content={modelDescription()} /> <Meta property="og:description" content={modelDescription()} />
<Meta property="og:url" content={modelUrl()} /> <Meta property="og:url" content={modelUrl()} />
<Meta name="twitter:card" content="summary" /> <Meta property="og:image" content={statsUnfurlUrl} />
<Meta property="og:image:type" content="image/png" />
<Meta property="og:image:width" content="1200" />
<Meta property="og:image:height" content="630" />
<Meta property="og:image:alt" content={statsUnfurlAlt} />
<Meta name="twitter:card" content="summary_large_image" />
<Meta name="twitter:title" content={modelTitle()} /> <Meta name="twitter:title" content={modelTitle()} />
<Meta name="twitter:description" content={modelDescription()} /> <Meta name="twitter:description" content={modelDescription()} />
<Meta name="twitter:image" content={statsUnfurlUrl} />
<Meta name="twitter:image:alt" content={statsUnfurlAlt} />
<Header githubStars={githubStars() ?? "150K"} links={modelHeaderLinks} brandHref={import.meta.env.BASE_URL} /> <Header githubStars={githubStars() ?? "150K"} links={modelHeaderLinks} brandHref={import.meta.env.BASE_URL} />
<div data-component="container"> <div data-component="container">
<div data-component="content"> <div data-component="content">

View file

@ -28,7 +28,10 @@ import {
type ThemePreference, type ThemePreference,
} from "../stats-shell" } from "../stats-shell"
const statsLabFallbackUrl = "https://stats.opencode.ai" const statsCanonicalBaseUrl = "https://opencode.ai/data/"
const statsUnfurlPath = "banner.png"
const statsUnfurlAlt = "OpenCode Data wordmark on a dark patterned background"
const statsUnfurlUrl = new URL(statsUnfurlPath, statsCanonicalBaseUrl).toString()
const labHeaderLinks: readonly HeaderLink[] = [ const labHeaderLinks: readonly HeaderLink[] = [
{ href: "#overview", label: "Overview" }, { href: "#overview", label: "Overview" },
{ href: "#usage", label: "Usage" }, { href: "#usage", label: "Usage" },
@ -72,10 +75,7 @@ export default function StatsLab() {
`Explore ${labName()} models used in OpenCode, with recent token usage, context windows, release dates, and model-specific data.`, `Explore ${labName()} models used in OpenCode, with recent token usage, context windows, release dates, and model-specific data.`,
) )
const labUrl = createMemo(() => const labUrl = createMemo(() =>
new URL( new URL(lab()?.id ?? labParam(), statsCanonicalBaseUrl).toString(),
`${import.meta.env.BASE_URL}${lab()?.id ?? labParam()}`,
event?.request.url ?? (typeof window === "undefined" ? statsLabFallbackUrl : window.location.href),
).toString(),
) )
const updateThemePreference = (preference: ThemePreference) => { const updateThemePreference = (preference: ThemePreference) => {
applyThemePreference(preference) applyThemePreference(preference)
@ -102,9 +102,16 @@ export default function StatsLab() {
<Meta property="og:title" content={labTitle()} /> <Meta property="og:title" content={labTitle()} />
<Meta property="og:description" content={labDescription()} /> <Meta property="og:description" content={labDescription()} />
<Meta property="og:url" content={labUrl()} /> <Meta property="og:url" content={labUrl()} />
<Meta name="twitter:card" content="summary" /> <Meta property="og:image" content={statsUnfurlUrl} />
<Meta property="og:image:type" content="image/png" />
<Meta property="og:image:width" content="1200" />
<Meta property="og:image:height" content="630" />
<Meta property="og:image:alt" content={statsUnfurlAlt} />
<Meta name="twitter:card" content="summary_large_image" />
<Meta name="twitter:title" content={labTitle()} /> <Meta name="twitter:title" content={labTitle()} />
<Meta name="twitter:description" content={labDescription()} /> <Meta name="twitter:description" content={labDescription()} />
<Meta name="twitter:image" content={statsUnfurlUrl} />
<Meta name="twitter:image:alt" content={statsUnfurlAlt} />
<Header githubStars={githubStars() ?? "150K"} links={labHeaderLinks} brandHref={import.meta.env.BASE_URL} /> <Header githubStars={githubStars() ?? "150K"} links={labHeaderLinks} brandHref={import.meta.env.BASE_URL} />
<div data-component="container"> <div data-component="container">
<div data-component="content"> <div data-component="content">