[pull] main from jason5ng32:main - #128
Merged
Merged
Conversation
Co-authored-by: Codex <codex@openai.com> Signed-off-by: WilliamK112 <164879897+WilliamK112@users.noreply.github.com>
Clarify Taiwan-facing terminology across IP details, WebRTC, DNS leak, advanced DNSSEC, ping, and MTR copy without changing the source meaning.\n\nCo-authored-by: OpenAI Codex <noreply@openai.com>
A weekday × hour heatmap of Cloudflare Radar HTTP traffic for the IP's country, opened from a button beside the Country field. Country-level rather than per-ASN because global ASNs have no single diurnal rhythm, and ~250 cache keys let a 30-day edge cache absorb nearly every request. Defaults to likely-human traffic with a switch for all traffic (the other scope prefetches for instant flipping); hours render in the IP's own timezone. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Verbatim markup move out of IpDetailPanel so the map lives at the same component layer as CountryTraffic. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Split CountryTraffic and LocationMap into bare content panels plus
dialog shells, and turn the enableMap/enableCountryTraffic booleans
into mapMode/countryTrafficMode ('dialog' | 'inline' | 'off'). IPCard
keeps the dialogs; QueryIP — itself a Dialog, where stacking another
one is confusing — now offers both affordances as a single-select
Collapsible under the metadata grid, mirroring its ASN panels.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fix(i18n): refine Traditional Chinese terminology
Feat(connectivity): add Germany country list
Co-authored-by: OpenAI Codex <codex@openai.com>
- Multi-list model in the connectivityLists preference (utils/connectivity-lists.js), migrated from the flat connectivityTargets / customConnectivityTargets eras; legacy keys kept for rollback, never written - Header gains a list picker once a second list exists; in-page switching is per-visit, the startup list is a preference - Curated imports pick a destination per list (or spin up a new list named after the preset); custom adds pick a destination once a second list exists - Per-card retest moves to the latency figure (retry icon on failed cards); card titles optionally open the site in a new tab via a new setting, off by default (titles are plain text otherwise) - Preferences gets a dedicated Connectivity section (default list + three switches) and a reworked two-line PrefRow layout that fixes vertical centering and tip wrapping - List names allow 40 chars, truncated with an ellipsis where tight Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Feat(connectivity): add Music & Audio list
genius.com serves its favicon with Cross-Origin-Resource-Policy: same-origin, so the browser blocks our cross-origin probe and the card always reads as unreachable even though the site is fine. Musixmatch covers the same lyrics ground and probes cleanly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…atched endpoint /api/cfradar, /api/cfradar-traffic and /api/outages all proxied Cloudflare Radar with their own route, guard wiring and cache TTL — every new Radar dataset meant another copy of that boilerplate. All Radar data now rides the single /api/cfradar route: ?view= dispatches over the RADAR_VIEWS registry in common/cf-radar.js, where each view declares its guards, edge-cache TTL and fetch function. cacheable() accepts a per-request TTL resolver so 30-day profiles and the 1-hour outage feed share the route without losing their cache behavior. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…iders CAIDA's p2c-only walk missed how hypergiants actually reach the backbone (settlement-free clique peering) and recursed into misinferred small "providers", producing topologies unrelated to bgp.tools/Radar. Index p2p rows, emit kind-tagged peering edges, and drop non-Tier-1 providers of clique-adjacent nodes behind dual trusted bars. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Peering edges made star graphs (origin + 15+ Tier 1s) tall single columns with per-edge lanes hatching the corridors. Take over positioning from dagre (keep its layering/order): pin Tier 1s to one terminal column that wraps into staggered sub-columns, stack and center columns, nudge single-node columns crossed by skip edges, bundle edges per target, and bend right after the source so long edges run at target height instead of under boxes. Render peering dashed with legend entries in all full locales, and release the Drawer's flex-1 hosts during capture so tall graphs screenshot whole. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e ASN panel Three new Radar segments on the asn view: BGP route stats (IPv4/IPv6 prefix counts), AS relationships (upstream / downstream / peering counts, falling back to the local CAIDA snapshot when Radar has no rows), and speed-test aggregates shown as an "average connection quality" group with a source tooltip. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Both ASN endpoints sit behind 30-day caches that also live in visitors' browsers, where no purge reaches — a ?v= bump is the only way changed payloads actually arrive. Start both at v=2. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Docs(readme): add CI workflow badge to all four READMEs
Sync with Dev
This branch had an error being deployed
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )