Repository navigation
Brand the status page, and gate main behind a PR check - #1
Merged
Merged
Conversation
Uses the GPV mark from the dashboard, and the dashboard's neutral palette, so the status page reads as part of the product rather than a stray page on a subdomain. The mark is inlined as SVG paths and the favicon is a data URI, because this page has to render when the rest of the product does not: it still makes no network request of its own. The only new asset is the app icon, served from this domain rather than hotlinked, so an unfurl of an incident link does not depend on the thing that is down. Also adds per-page description, canonical, theme-color and OpenGraph metadata, so pasting an incident link into Discord shows the title and summary. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Runs the same build the deploy runs, against the PR, plus a check that the feed the products read parses and carries the schema they expect. A green check means the Deploy workflow will not be the thing that discovers a broken announcement. main now requires a pull request and this check. Admins can still push directly, which the runbook documents as the deliberate escape hatch: a status page that takes a PR round trip to say "we know, don't file a bug" is the wrong trade when people are already looking at breakage. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
12 seconds for the Validate run, measured on the PR that introduced it, ahead of the 30 seconds the deploy already took. Also corrects the publishing steps: the check has to finish before the merge will go through. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two changes that happen to travel together: the first one is cosmetic, the second one is why this PR exists at all rather than a push to
main.Branding
Uses the GPV mark from the dashboard, and the dashboard's neutral palette (
#fafafa/#0a0a0a/#141414), so the status page reads as part of the product.The mark is inlined as SVG paths and the favicon is a data URI, so the page still makes no network request of its own — the property that matters most for the page people land on when everything else is broken. The one new asset,
icon-256.png, is the real app icon served from this domain rather than hotlinked fromgamepadviewer.com, so an unfurl does not depend on the thing that is down.Also adds per-page
description,canonical,theme-colorand OpenGraph metadata. Pasting an incident link into Discord now shows the incident title and summary instead of a bare URL, which is where most of this gets shared.Severity colours are untouched — they are semantic, and they are what the page is for.
The PR gate
.github/workflows/pr.ymlruns the same build the deploy runs, against the PR, and additionally checks thatalerts.jsonparses and carries thegpv-status/1schema the dashboard and overlay expect. A greenvalidatemeans Deploy will not be the thing that discovers a broken announcement.mainnow requires a pull request and that check. Admins can still push directly, deliberately. This site exists to say "we know, don't file a bug" within seconds, and owing an audience a PR round trip while they are already looking at breakage is the wrong trade. The runbook documents it as the escape hatch, with the warning that the failure mode of skipping the local build is silent: a bad file fails the deploy, the previous page stays live, and the alert never appears.Checked
node build.mjswith zero announcements and with one, index and detail page rendered in both colour schemes, at desktop and mobile widthsdist/alerts.json🤖 Generated with Claude Code