Re-theme the UptimeFlare fork's chrome (surfaces, borders, type, header
wordmark, footer line) to the openshopgraph.org design tokens, sourced
from openshopgraph-frontend-v2 src/styles/site-tokens.css. Monitor set,
check logic and page title/links config are untouched.
- Copy the site's self-hosted Cabinet Grotesk / Switzer / Martian Mono
woff2 faces (~124 KB) into public/fonts and remap Mantine's CSS
variables (--mantine-font-family[-headings/-monospace]) to the same
stacks; drop the next/font/google Inter import (font-CDN-free, same
rule as the main site's CSP).
- Remap Mantine surface/text/border variables per color scheme
(--mantine-color-body/text/white/dark-6/dark-4/anchor/dimmed,
--mantine-primary-color-filled) to --paper/--ink/--card/--hair from
site-tokens.css; keeps following prefers-color-scheme via Mantine's
existing defaultColorScheme="auto" script, matching the main site's
light/dark behavior. Semantic monitor-state colors (green/red icons)
are left alone on purpose.
- Bump --mantine-radius-{sm,md,lg} to the main site's softer values.
- Replace the generic UptimeFlare <Image> logo in Header.tsx with the
OSG two-dot wordmark (same glyph as BaseLayout.astro's .top-brand
mark), linking to https://openshopgraph.org.
- Set pageConfig.customFooter to a one-line footer matching the main
site's "Verified data, not ads." tone instead of the stock UptimeFlare
attribution line.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The DO migration (new_tag=v1) may only be applied once. The old
durable-object-namespace detection wrongly reported 'migration needed'
even though the namespace already existed at tag v1, so Terraform
re-sent the v1 migration on an already-migrated worker and Cloudflare
rejected the apply with 412 / code 10079. Gate migration on
worker-script existence instead.
Co-authored-by: Test User <test@example.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
* Update token usage in sync workflow
* sync: fallback to PAT_TOKEN secret when override-token is empty
Explain briefly:
UI input field doesn’t evaluate ${{ secrets.* }}, users may paste it and it becomes a literal string.
Add fallback to secrets.PAT_TOKEN to make workflow_dispatch easier and safer.
* More detailed desc
---------
Co-authored-by: lyc8503 <me@lyc8503.net>
Globalping rejects measurementOptions.ipVersion when the measurement target is an IP address.
Add an IP-target guard so ipVersion is only sent for domain targets, preventing validation errors when checking IP:port monitors.
The API for status is showing CORS issue: "Response body is not available to scripts (Reason: CORS Missing Allow Origin)" when using from other domain/localhost. To solve this ,CORS header is added. It also possible to specify allowed domain in Env Var in cloudflare and call them directly.