[pull] main from jason5ng32:main#113
Merged
Merged
Conversation
Turn the nav's "Advanced Tools" item into a discoverable menu of its sub-tools instead of a bare scroll link: - Desktop: a NavigationMenu (shadcn-vue) opens on hover; clicking the label keeps the original behavior of scrolling to the section. - Mobile drawer: an inline Collapsible, expanded by default, so phone users see the bottom-of-page tools when they open the nav. - Picking a tool scrolls to the Advanced Tools section, then opens that tool's in-page drawer (no jump to a standalone page). The list mirrors Advanced.vue's original-site gating so unavailable tools aren't shown. Also swap the Preferences icon to Cog (nav button + panel header), and add the navigation-menu primitive via shadcn-vue. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
shields.io's stars badge kept failing on GitHub token-pool exhaustion
("Unable to select the next GitHub token from pool"). Serve the count
from our own backend instead and render the badge ourselves.
- api/github-stars.js: fetch stargazers_count unauthenticated (no token),
edge-cached for a day in backend-server.js. Behind Cloudflare the origin
hits GitHub at most once per cache window, well under the 60 req/hour
unauthenticated limit; error responses stay no-store so failures aren't
cached.
- Nav.vue: replace the shields.io <img> with our own GitHub badge on
desktop and add the count to the mobile drawer's "Star on GitHub" row,
both fed by /api/github-stars (fetched on mount). Count is hidden until
it lands / on error, so the link never depends on the fetch.
- format-star-count.js: pure compact formatter (1234 -> 1.2k) with tests.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ents Split the single "Auto Run" switch into per-module switches (Connectivity / WebRTC / DNS Leak); IP info always runs and has no switch. Preferences move to the v7 key and any old `autoStart` value migrates onto the three switches. - use-refresh-orchestrator runs each module per its own switch and flags the rest loaded immediately, so allHasLoaded still resolves (it gates the info-mask button, the user-info fetch, the brand shimmer). - Connectivity summary toast now fires on manual runs too, not only at startup: handelCheckStart takes a boot/manual/refresh trigger. The multiple-refresh and notification options move to Program Settings (they apply to manual runs). - Fix language switching after the version bump: i18n reads the active language from the same prefs key as the store (shared via data/default-preferences.js), so a v6 → v7 migration no longer strands the saved choice. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The blur now skips IP slots showing a non-sensitive placeholder — WebRTC and DNS-leak waiting/error states, and the IPv4/IPv6 error strings — via a shared createMaskGate(t). A masked screenshot then shows the status word instead of a pointlessly blurred label; real addresses still blur. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Cut changelog-style narration from comments ("previously…", "replaced in v7",
"…fixes that", the shields.io backstory) so they explain the current code, not
how it got here. Codify this in AGENTS.md's Comments section.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
macchecker / cfradar / asn-connectivity / asn-history serve registry or append-only data that changes on a monthly-or-slower cadence, so bump their edge TTL from 1 week to 30 days. Drop the now-unused ONE_HOUR_CACHE and ONE_WEEK_CACHE constants. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The static map renders at zoom 3, where ~0.176° spans a single pixel, so rounding the request lat/lon to 1 decimal (~0.1°) leaves the marker visually unchanged while collapsing every IP in the same grid cell onto one CF edge-cache key. The cache key is the client URL, so the rounding lives on the frontend; the displayed lat/lon keep full precision. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Pass asn-history's MIN_PEERS to the routing-history call so RIPEstat drops sub-threshold rows during its scan instead of returning noise we filter out anyway. Trims the response and cuts latency on long-history prefixes (e.g. 1.1.1.0/24 from timeout-prone to ~5s) without changing the result. The threshold stays single-sourced in the handler; fetchRoutingHistory just forwards it. Co-Authored-By: Claude Opus 4.8 <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 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 : )