Skip to content
CAI
Software that uses CAICheck a score

jason5ng32/MyIP

49.3

Weak · 2 October 2026

31.1k

lines of production code

JavaScript

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a web-based network diagnostics and IP intelligence platform that provides users with tools to analyze their connection, identity, and network topology. It features a comprehensive suite of advanced utilities including DNS leak testing, ASN connectivity mapping, IP calculation, and browser fingerprinting, all supported by a robust backend API that aggregates data from multiple geolocation and routing sources. The application offers a modern, responsive frontend with localized support, user achievement tracking, and the ability to generate and share detailed diagnostic reports.

How it got here

2023–2024 — Frontend modernization and API expansion

16 changes.

The project underwent a significant frontend overhaul, migrating from Bootstrap to Tailwind CSS v4 and shadcn-vue while replacing Vuex with Pinia for state management. Concurrently, the backend was restructured into a modular API architecture, introducing new diagnostic tools such as ASN connectivity graphs and enhanced DNS leak tests. This period also established comprehensive repository governance, official Docker support, and expanded internationalization with lazy-loaded locale packs.

2025–2026 — UI modernization and feature expansion

29 changes.

The project modernized its frontend by migrating UI components to shadcn-vue and reka-ui, replacing legacy Bootstrap implementations with accessible, mobile-friendly primitives. This period also introduced significant new features, including a comprehensive IP Info suite, advanced diagnostic tools like DNS leak and Persona Check tests, and a centralized composable architecture for cross-cutting concerns.

Features

Add Brand and IPError SVG icon components

New SVG icon components, Brand.vue and IPError.vue, have been added to the frontend icon library. These components render scalable vector graphics that adapt to the application's dark mode setting and include explicit sizing constraints to ensure consistent rendering across different browsers, particularly addressing layout inflation issues in Firefox.

frontend/components/svgicons · high confidence

Add IP Calculator advanced tool

The IP Calculator advanced tool is now available in the frontend components. It provides detailed analysis for IPv4 and IPv6 addresses, including network math (CIDR, netmask, broadcast, usable hosts), multiple address representations (decimal, hex, octal, binary, PTR), obfuscated notations, and embedded IPv6 forms. The tool features a visual prefix-length slider with a bit-map display for both IPv4 and IPv6, allowing users to adjust the prefix and see real-time changes. It also includes a subnet splitter to divide a CIDR block into smaller subnets, and a range/prefix aggregator to find the minimal set of CIDRs covering a range or list of prefixes. Results are presented in organized sections with copy functionality for individual values or entire lists.

frontend/components/advanced-tools/ip-calculator · high confidence

Add OTP input component suite

Added a new set of Vue UI components for one-time password entry, including InputOTP, InputOTPGroup, InputOTPSeparator, and InputOTPSlot. These components provide a structured way to capture multi-digit codes with features like active slot highlighting, caret animation, and separator support, leveraging the vue-input-otp library.

frontend/components/ui/input-otp · high confidence

Add Slider UI component

A new Slider component has been added to the frontend UI library, exposing a reusable control built on reka-ui. Users can now include this component in their forms or interfaces to allow value selection via a draggable thumb, supporting features like disabled states, orientation changes, and custom styling through class props.

frontend/components/ui/checkbox, frontend/components/ui/select, frontend/components/ui/slider · high confidence

Add Toggle Group UI components

Added the Toggle Group component pair (ToggleGroup and ToggleGroupItem) to the frontend UI library, built on top of reka-ui. These components allow users to select multiple toggle options within a group, supporting configurable variants, sizes, and spacing via Tailwind CSS classes and CSS variables.

frontend/components/ui/toggle-group · high confidence

Add shadcn-based Progress component

A new Progress component has been added to the UI library, built on reka-ui and styled with Tailwind CSS. This component provides a visual indicator for progress values, supporting customizable styling via class props and semantic color overrides for the indicator bar, and is exported for use throughout the application.

frontend/components/ui/progress · high confidence

Add shadcn-vue Separator component

A new UI Separator component has been added to the frontend library, wrapping the 'reka-ui' primitive. This component allows users to visually divide content with horizontal or vertical orientations and supports custom styling via Tailwind CSS classes.

frontend/components/ui/separator · high confidence

Add shadcn-vue button-group UI primitives

The frontend now includes a new set of UI components for grouping buttons, imported from shadcn-vue. This adds ButtonGroup, ButtonGroupSeparator, and ButtonGroupText, which provide consistent styling and layout options (horizontal or vertical orientation) for organizing related actions in the interface.

frontend/components/ui/button-group · high confidence

Added PWA manifest and favicon assets

The application now includes a \manifest.webmanifest\ file defining the PWA configuration, including the app name 'IPCheck.ing', standalone display mode, and icon assets for iOS and maskable support. A new \favicon.svg\ file has also been added to provide the site icon.

public · high confidence

Added Switch UI component

A new Switch toggle component is now available in the UI library, built on reka-ui. It supports two-way binding via v-model, disabled states, and customizable CSS classes, allowing users to easily integrate accessible toggle switches into forms and settings.

frontend/components/ui/switch · high confidence

Centralized static data and configuration for frontend modules

The \frontend/data\ directory now serves as the single source of truth for static configuration and reference data previously scattered across components or hardcoded in logic. This includes curated connectivity import lists (country and theme sets like India, Russia, AI, and Music), achievement definitions and trigger rules, IP database source configurations, default user preferences (v7), section navigation IDs, advanced tool registry, persona check reference tables, Cloudflare colo mappings, and Pulse (Earth Online) status presets. This centralization ensures consistent data access for UI components, stores, and composables while removing legacy hardcoded tables.

frontend/data · high confidence

Expanded public DNS resolver list with regional coverage

The curated list of public DNS resolvers available via the /api/dnsresolver endpoint has been significantly expanded to include providers from additional regions, specifically Korea (KT), Taiwan (HiNet, GIGA), Russia (Yandex.DNS, SkyDNS), and Czechia (CZ.NIC ODVR), alongside existing global options like Google, Cloudflare, and Quad9. This addition allows users to query DNS services from a wider variety of geographic locations, with the system automatically grouping results by country code.

api/data · high confidence

Introduce Persona Check tool with browser and network signal probes

Added a new Persona Check utility in the frontend that collects browser and network signals to evaluate a user's digital persona. This includes validating credit card BIN prefixes, probing installed fonts and geolocation, reading locale settings (keyboard layout, speech voices), and fetching server-side network data via Cloudflare. The module also defines the data structures, verdicts, and detail keys used to render the resulting Persona Check report.

frontend/utils/persona · high confidence

Introduce User Achievements system and rework Advanced Tools navigation

Users can now view and track earned achievements via a new Achievements panel, accessible through the navigation drawer, which displays earned and unearned badges with flip-to-reveal details. The Advanced Tools section has been rebuilt to use a card grid that opens tools in an in-page drawer via the \?tool=\<slug\>\ query parameter, with support for standalone pages and lazy-loaded components. Additionally, the Additional section now includes a dedicated dialog for displaying curl commands to retrieve IP information.

frontend/components · high confidence

Introduce comprehensive API handler architecture and new diagnostic tools

The API backend is restructured into a modular handler-per-route layout under \api/\, governed by conventions in \api/AGENTS.md\ (e.g., using \fetchUpstream\ for timeouts, centralized guards in \common/guards.js\, and response enrichment middleware). This change introduces several new diagnostic capabilities: an ASN connectivity graph (\/api/asn-connectivity\) visualizing Tier-1 peering and transit paths using local CAIDA data; an ASN routing history endpoint (\/api/asn-history\) showing BGP prefix visibility with relative peer percentages; an advanced DNS leak test (\/api/dnsleaktest\) proxying the private API; and a country-annotated DNS resolver list (\/api/dnsresolver\) supporting SOA and CAA record lookups. Existing geolocation sources (ipinfo, ipapi, ip2location, etc.) are refactored to use a shared \makeGeoHandler\ factory, and the Cloudflare Radar route is consolidated into a single dispatch endpoint (\/api/cfradar\).

api · high confidence

Introduce new accessible Drawer component based on vaul-vue

Added a new Drawer component suite (Drawer, DrawerContent, DrawerClose) in frontend/components/ui/drawer, replacing the previous Sheet-based implementation with vaul-vue to provide native drag gestures and improved mobile UX. The new component includes specific fixes for accessibility and usability: it silences missing-description a11y warnings by providing fallback aria-describedby content, prevents Safari page jumps on close by handling close-auto-focus, suspends keyboard shortcuts while the overlay is open, and ensures text inside the drawer remains selectable by using handle-only dragging mode.

frontend/components/ui/drawer · high confidence

Introduce standalone tool pages and shared report routing

The frontend router now supports dedicated full-page views for individual advanced tools at /tools/:slug and read-only shared diagnostic reports at /r/:id, in addition to the existing homepage and privacy policy routes. These new routes enable sharing and SEO-friendly access to specific tools and reports, while maintaining the existing in-page drawer functionality on the homepage. The router uses lazy loading for these components to optimize the initial bundle size and includes scroll behavior logic to handle navigation between pages and drawer interactions.

frontend/router · high confidence

Local CAIDA ASN data and new API guardrails

The application now maintains local, auto-updating snapshots of CAIDA datasets (AS-to-org mappings and AS relationships) to provide faster, more reliable ASN connectivity graphs and org-name lookups, with a fallback to upstream sources if the local cache is missing. Additionally, a new set of Express middleware guards enforces stricter validation on API routes, requiring publicly routable IPs for IP-based queries, validating report IDs, and whitelisting DNS record types to prevent proxy abuse.

common · high confidence

New Button component with action variant

Added a new Button component (Button.vue) and its variants (variants.js) to the UI library, introducing a new 'action' semantic color token for specific trigger buttons like IP queries. The component supports multiple variants (default, destructive, outline, secondary, ghost, link, success, action) and sizes, leveraging class-variance-authority for styling.

frontend/components/ui/button · high confidence

New Combobox UI component suite

Added a new set of UI components for the frontend, including Combobox, ComboboxAnchor, ComboboxTrigger, ComboboxInput, ComboboxList, ComboboxItem, and ComboboxEmpty. These components are built on top of the reka-ui library and provide a flexible, accessible combobox interface for users to select options from a list with search capabilities.

frontend/components/ui/combobox · high confidence

New DNS leak test providers and robust fallback logic

The DNS leak test utility now supports six additional providers (bash.ws, browserleaks.net, fastly.com, ip-api.com, ipleak.net, and myipstack.com) alongside existing ones, each generating unique subdomains to force fresh DNS lookups. The system includes a retry mechanism that validates resolved IPs before proceeding and a fallback chain that shares probes across test slots, ensuring that if one provider fails, the test can fall back to others within the same run to provide a more reliable result.

frontend/utils/dnsleaks · high confidence

New IP Info components: ASN connectivity, history, traffic heatmap, and map panels

The frontend now includes a suite of new components for the IP Info feature: ASNConnectivity.vue renders an interactive upstream routing graph (with zoom, pan, and screenshot capabilities); ASNHistory.vue displays historical BGP announcements per IP prefix; ASNInfo.vue shows basic ASN details, connection quality metrics, and traffic breakdowns; CountryTraffic.vue and CountryTrafficPanel.vue present a 7x24 heatmap of online activity by country; LocationMap.vue and LocationMapPanel.vue display IP coordinates and static maps; IPCard.vue serves as the main card container; and IpDetailPanel.vue orchestrates the metadata, advanced data, and inline/expanded panels. These components replace or supplement previous implementations with a more structured, feature-rich IP information display.

frontend/components/ip-infos · high confidence

New Input and Textarea UI components added

This change introduces new \Input\ and \Textarea\ components to the frontend UI library. These components provide standardized text entry fields with built-in support for v-model binding, Tailwind CSS styling, and accessibility features such as focus rings and invalid state indicators.

frontend/components/ui/input · high confidence

New Spinner UI component for loading states

A new Spinner component has been added to the UI library, providing a consistent loading indicator based on the Lucide Loader2 icon with spin animation and accessibility attributes (role='status', aria-label='Loading'). This component is designed to be used within buttons or other containers to indicate asynchronous operations, such as form submissions or data fetching.

frontend/components/ui/spinner · high confidence

New Toggle UI component with high-contrast pressed state

A new Toggle component is now available in the UI library, built on reka-ui and styled with class-variance-authority. It supports default and outline variants, as well as small, default, and large sizes. The component features a high-contrast pressed state by using the primary color pair instead of the accent color, ensuring better readability in light mode.

frontend/components/ui/toggle · high confidence

New and redesigned advanced network tools

The Advanced Tools section now includes several new capabilities and significant UI overhauls for existing ones. New tools added are Browser Info (displaying user agent, fingerprint, and component breakdowns with exclusion toggles), Enhanced DNS Leak Test (sign-in gated, showing resolver details, DNSSEC posture, and a dedupable query log), and IP Calculator. Existing tools have been redesigned using shadcn-vue components (Cards, Accordions, InputGroups) and semantic colors: Censorship Check now combines OONI historical data with real-time Globalping tests; DNS Resolver supports SOA and CAA record types with region filtering; Global Latency Test and MTR share a unified Globalping country picker and display results in structured tables with world maps; and Whois, MAC Checker, and Invisibility Test have been refactored for consistent styling and improved error handling.

frontend/components/advanced-tools · high confidence

New composable architecture for app-wide features and tooling

The frontend now uses a suite of new composables in the \frontend/composables\ directory to centralize cross-cutting concerns and power new capabilities. The \useAchievementEngine\ and \useAppPersonaCollector\ manage user achievements and persona data by subscribing to app events, while the \useAppCommand\ composable enables a command bus for cross-component triggers. A new \useDocsAssistant\ composable integrates a GitBook-based AI assistant that can read test results and run core diagnostics. The \useGlobalpingMeasurement\ composable standardizes network measurement logic for advanced tools, and \useIpHistory\ provides a local, preference-gated history of detected IPs. Additionally, \useReportCollector\ and \useReportShare\ handle the data collection and sharing of diagnostic reports, \useInfoMask\ manages privacy masking for screenshots, and \useOverlayShortcuts\ ensures keyboard shortcuts are suspended during overlays.

frontend/composables · high confidence

New connectivity, history, and assistant widgets

This change introduces several new frontend components to enhance user interaction and data management. The ConnectivityAddDialog widget allows users to import curated target lists, add custom connectivity targets, and manage multiple user-defined lists with create, rename, reorder, and delete capabilities. A new IPHistory widget provides a local, privacy-focused record of detected IPs, featuring a map visualization, daily grouping, and filters by IP type (IPv4/IPv6) and country. The DocsAssistant and DocsSearch widgets integrate an in-app documentation assistant powered by GitBook, accessible via a floating dock button and a dedicated search input. Additionally, utility widgets like CopyButton (for clipboard operations with visual feedback), CountryPicker (a searchable, virtualized country selector), FitText (auto-sizing text spans), FloatingDock (a collapsible action stack for mobile), and Help (a shortcut key reference) have been added to support these features and improve general UI consistency.

frontend/components/widgets · high confidence

New contributor tooling for DNS health, favicon management, and i18n scaffolding

Added three new scripts to the \scripts/\ directory to support infrastructure and localization workflows. \check-dns-resolvers.js\ performs UDP health checks on curated DNS resolvers, verifying recursive availability and NXDOMAIN responses with configurable retry logic. \fetch-favicons.js\ automatically downloads 64px PNG favicons for connectivity import lists from multiple services (Google, favicon.im, DuckDuckGo), handling missing icons and enforcing PNG format. \i18n-scaffold.js\ and \i18n-status.js\ provide CLI tools to scaffold new locale packs with empty-value skeletons, sync translations against the English fallback, and display a translation progress dashboard for contributors.

scripts · high confidence

New frontend utility modules for analytics, commands, and IP tools

The \frontend/utils\ directory now includes a suite of new utility modules that introduce core application capabilities. \analytics.js\ provides a Google Analytics wrapper with lazy script injection and event queuing, while \app-commands.js\ and \app-events.js\ establish a command bus and event bus for decoupled, framework-agnostic communication between components. IP-related functionality is expanded with \ip-calc.js\ for advanced classification and analysis, \ip-history.js\ for local browser-based history storage with retention policies, and \ip-math.js\ for shared IP arithmetic. Additional utilities include \authenticated-fetch.js\ for secure API calls, \banners.js\ for data-driven info banners, \connectivity-lists.js\ for managing connectivity test lists, and \docs-run-tests.js\ to support the docs assistant's test-running capabilities.

frontend/utils · high confidence

New i18n infrastructure with lazy-loaded locale packs and expanded language support

The frontend now uses a centralized, glob-discovered locale registry that lazy-loads only the active language and its fallback chain, significantly reducing initial bundle size. This change introduces full support for Brazilian Portuguese (pt-BR) and Russian (ru), alongside existing English, French, Simplified Chinese, and Traditional Chinese. The new system also adds translation keys for user account features, including sign-in methods, monthly usage quotas, sponsor benefits, and a new achievement badge system.

frontend/locales · high confidence

New read-only report section components for the shared report page

This change introduces a suite of new Vue components in the report sections directory that render the various test results (connectivity, DNS leak, IP info, speed, etc.) in a read-only format. These components are designed to display the data in a localized and consistent manner, using shared utilities for table styling and country name resolution. The components are intended to be used on the shared report page, allowing users to view the results of a test run in a consistent and easy-to-read format.

frontend/components/report/sections · high confidence

Official Docker support and repository governance files

The project now provides an official Dockerfile and docker-compose.yml, enabling users to deploy the application with a single command. This change also introduces essential repository governance and documentation files, including a LICENSE (MIT), CODE\_OF\_CONDUCT, CONTRIBUTING guide, and AGENTS.md, establishing the project's legal and community standards.

(repo-wide) · high confidence

Share and view diagnostic reports

Users can now share their diagnostic results via a new dialog that allows selecting specific report sections, masking IP address tails, and setting an expiration time for the generated link. The shared report is accessible via a read-only page that displays the results in the viewer's language, with options to copy the report as Markdown for AI assistants or download it as JSON. The viewer page also indicates if the report is stale or unsupported.

frontend/components/report · high confidence

Architecture

Frontend architecture overhaul: Pinia, shadcn-vue, and Tailwind CSS v4

The frontend has been migrated from Vuex to Pinia for state management and from Bootstrap to a Tailwind CSS v4 and shadcn-vue component system. This change introduces a new UI foundation with semantic design tokens, a dedicated \Sonner\ toast component, and a \ToolLoadingSkeleton\ for better loading states. The application shell (\App.vue\) and entry point (\main.js\) have been restructured to support lazy-loading of Firebase Auth and Sentry, improved PWA install gating, and a staged boot overlay. Additionally, the codebase now enforces strict conventions for event-driven achievements, command-based actions, and keyboard shortcut suspension during overlays, all documented in the new \AGENTS.md\.

frontend · high confidence

Behavioural changes

Badge component no longer applies hover effects by default

The Badge component has been refactored to use shadcn-vue and class-variance-authority, and its default styling no longer includes hover color transitions. This change prevents unintended visual feedback when the badge is used as a static label, ensuring that interactive hover effects are only applied when the badge is explicitly wrapped in an interactive element like a link or button.

frontend/components/ui/badge · high confidence

Homepage IP detection now uses a resilient, multi-source fallback chain

The IP address displayed on the homepage card is now determined by a new chain-runner system in \frontend/utils/getips/index.js\ that attempts multiple upstream providers in sequence until a valid IP is found. The system includes dedicated modules for Cloudflare (IPv4/v6), IPCheck.ing (IPv4/v6/dual-stack), IPify (IPv4/v6), MyExternalIP (IPv4/v6), IPIP.net, and Upai. If a primary source fails or returns an invalid response, the system automatically falls back to the next provider in the chain (e.g., Cloudflare falls back to MyExternalIP), ensuring the IP is displayed even if some services are unreachable or slow. This change improves reliability for users on different network stacks (IPv4 vs IPv6) and reduces the likelihood of the IP card failing to load.

frontend/utils/getips · high confidence

Migrate to Tailwind v4 and shadcn-vue with semantic design tokens

The frontend styling has been rebuilt on Tailwind v4 and shadcn-vue, replacing the previous Bootstrap-based system. This introduces a new set of CSS design tokens for light and dark modes, including custom semantic colors for info, success, warning, and action states, ensuring consistent theming across the application. A critical patch is included to fix border color inheritance in Tailwind v4, preventing unexpected black borders on shadcn components. Additionally, the update resolves a text-selection issue in drawers on desktop devices and establishes base typography styles for headings and paragraphs.

frontend/style · high confidence

New shadcn-vue Dialog component suite with accessibility and mobile fixes

The dialog UI components have been replaced with a new implementation based on shadcn-vue (reka-ui). This update introduces a new DialogHeader primitive for consistent headers, ensures mobile dialogs have horizontal margins, and silences accessibility warnings by automatically providing an aria-describedby description. Additionally, keyboard shortcuts are now suspended while any dialog overlay is open to prevent unintended interactions.

frontend/components/ui/dialog · high confidence

Removal of Bootstrap v4.3.1 CSS framework

The \res/bootstrap.min.css\ file has been deleted, removing the Bootstrap v4.3.1 stylesheet from the application's resources. This change eliminates the default Bootstrap styling, grid system, and component classes (such as buttons, forms, and tables) from the user interface, likely as part of a broader migration to a different styling approach or framework.

res · high confidence

Replace Bootstrap accordion with shadcn-vue components

The accordion and collapsible UI components in the frontend have been refactored to use shadcn-vue (built on reka-ui) instead of the previous Bootstrap-based implementation. This change introduces new Vue components (Accordion, AccordionItem, AccordionTrigger, AccordionContent, Collapsible, etc.) that provide more flexible state management, such as supporting both single and multiple selection modes, and includes a custom chevron icon for the trigger. Users will experience consistent styling and behavior for expandable content sections, with the underlying logic now relying on the reka-ui library rather than Bootstrap's JavaScript and CSS classes.

frontend/components/ui/accordion · high confidence

Replace Offcanvas with shadcn-vue Sheet component

The previous Offcanvas implementation has been replaced by a new Sheet component suite (Sheet, SheetContent, SheetClose) built on reka-ui. This change introduces four-way slide-in behavior (top, bottom, left, right) with iOS safe-area support to prevent content from rendering behind status bars or home indicators. It also resolves accessibility warnings by automatically providing visually hidden titles and descriptions when none are supplied, and suspends page keyboard shortcuts while the overlay is open.

frontend/components/ui/sheet · high confidence

Tabs UI components migrated to reka-ui primitives

The tabs UI components in the frontend library have been replaced with new implementations based on the reka-ui library. This change updates the Tabs, TabsContent, TabsList, and TabsTrigger components to use reka-ui primitives, providing a consistent and accessible tab interface. The new components maintain the same API structure while leveraging reka-ui's underlying functionality for improved behavior and styling.

frontend/components/ui/tabs · high confidence

Test coverage

Added comprehensive test coverage for core application logic

Added new test suites covering the achievement system (rules and definitions), the app-wide command and event buses, API handler branches, ASN connectivity topology, authentication hints, and banner data validation, ensuring structural integrity and behavioral correctness of these components.

tests · high confidence

Dependencies

Upgrade to Node.js 24 and pnpm 12.4.2 with dependency updates

The project now requires Node.js 24 and uses pnpm 12.4.2 as the package manager. This change updates the core tooling and refreshes the dependency tree, including major versions for Vite (8.3.0), Vue (3.5.42), and the Sentry SDKs (10.75.0), ensuring compatibility with the latest runtime and package management standards.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 50 → 49 (-0.3)
  • Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 57 → 58 (+0.9)
  • Architecture 76 → 69 (-7.1)
  • Maturity 65 → 64 (-1.3)
  • Readiness 47 → 47 (-0.8)
  • Security 67 → 74 (+7.0)
  • Accessibility 43 → 43 (+0.3)
  • Performance 60 (new)

Resolved (26)

  • Documentation: no contributor guidance (README.md)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • FunctionTooLong: use-speedtest-charts.useSpeedTestCharts (frontend/composables/use-speedtest-charts.js)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • High CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Hotspot: api/google-map.js (api/google-map.js)
  • Hotspot: common/rdap.js (common/rdap.js)
  • Hotspot: common/report-schema.js (common/report-schema.js)
  • Hotspot: frontend/composables/use-achievement-engine.js (frontend/composables/use-achievement-engine.js)
  • Hotspot: frontend/composables/use-globalping-measurement.js (frontend/composables/use-globalping-measurement.js)
  • Medium CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Medium CVE: [GHSA redacted] (pnpm-lock.yaml)
  • Outdated (npm): @khmyznikov/pwa-install
  • Outdated (npm): @photostructure/tz-lookup
  • Outdated (npm): @tanstack/vue-table
  • Outdated (npm): @vueuse/core
  • Outdated (npm): express-rate-limit
  • Outdated (npm): express-slow-down
  • …and 6 more

New (18)

  • Banned license: ua-parser-js
  • Outdated (npm): @iconify/vue
  • Outdated (npm): dotenv
  • Projects may be oversized for their cohesion
  • Repeated repair: common/valid-ip.js (common/valid-ip.js)
  • aggregateCidrs (cognitive 30) (common/ip-math.js)
  • buildScoreExplanation (cognitive 44) (frontend/utils/ip-score-details.js)
  • buildScoreExplanation (cyclomatic 37) (frontend/utils/ip-score-details.js)
  • classifyInput (cognitive 38) (frontend/utils/ip-calc.js)
  • classifyInput (cyclomatic 26) (frontend/utils/ip-calc.js)
  • countryFacets (cognitive 18) (frontend/utils/ip-history.js)
  • createSpeedTestSession (cognitive 16) (frontend/utils/speedtest-session.js)
  • ip-math.aggregateCidrs (cyclomatic 19) (common/ip-math.js)
  • ip-math.parseIPv6 (cyclomatic 17) (common/ip-math.js)
  • parseIPv6 (cognitive 19) (common/ip-math.js)
  • renderWorldMapChart (cyclomatic 22) (frontend/utils/world-map-chart.js)
  • useSpeedTestCharts (cognitive 33) (frontend/composables/use-speedtest-charts.js)
  • world-map-chart.renderWorldMapChart (cognitive 21) (frontend/utils/world-map-chart.js)

Changes since last survey

  • 31 commits — 25 feature/other, 6 fixes

By area

  • frontend/components — 8 commits
  • (repo) — 7 commits
  • (root) — 5 commits
  • frontend/locales — 4 commits
  • common/ip-math.js — 2 commits
  • frontend/data — 2 commits
  • api/data — 1 commit
  • common/valid-ip.js — 1 commit
  • frontend/utils — 1 commit

Notable commits

  • fix: Fix(dns): share fallback probes within each test run
  • fix: Fix(ip): reject leading zeros in IPv4 octets
  • fix: Fix(ip): reject out-of-family prefix containment values
  • fix: Fix(ip): validate subnet split limits before conversion
  • fix: Fix(ipcalculator): parse octal input directly as BigInt
  • fix: Fix(ipcalculator): sync share URLs after prefix changes
  • change: Add Map to IP History
  • change: Chore(history): cap IP history retention at 30 days
  • change: Chore(release): set the v7.6.0 release date
  • change: Feat(history): group IP records with a daily view
  • change: Feat(ipinfo): show how the quality score was reached and rename the proxy field
  • change: Improvements
  • change: Improvements
  • change: Improvements
  • change: Improvements
  • change: Improvements
  • change: Improvements
  • change: Improvements
  • change: Improvements
  • change: Improvements
  • …and 11 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

jason5ng32/MyIP was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 701b610833627db2e03cc35a594994168a39a809 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.