Skip to content

[pull] main from jason5ng32:main - #116

Merged
pull[bot] merged 40 commits into
Cosr-Backup:mainfrom
jason5ng32:main
Jul 17, 2026
Merged

[pull] main from jason5ng32:main#116
pull[bot] merged 40 commits into
Cosr-Backup:mainfrom
jason5ng32:main

Conversation

@pull

@pull pull Bot commented Jul 17, 2026

Copy link
Copy Markdown

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 : )

jason5ng32 and others added 30 commits July 14, 2026 21:32
Scanners send garbage Referer headers; new URL() threw and surfaced as an
unhandled 500. Parse failure now means "not an allowed origin" → 403.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The WebRTC test resolves the same public IP from several STUN servers and
each card looked it up independently — N identical /api/maxmind requests.
Lookups now share a module-level in-flight map plus a session result cache
keyed by ip+lang; null results and rejections stay retryable. Imports switch
to relative paths so the Node test runner can load the composable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
whoiser follows ARIN ReferralServer lines into rwhois://host:port URLs
without splitting off the port, so lookups on NTT-style space (e.g.
204.1.92.8) died with getaddrinfo ENOTFOUND and threw away the ARIN
data it already had. RIR RDAP is the authoritative HTTPS+JSON successor
with no referral layer, so the IP path now queries it first (IANA
bootstrap, longest-prefix match), formatted into the same __raw shape
the frontend already renders; whoiser remains as fallback pinned to
follow: 1 so it can never chase a referral again.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fix: Handle undefined module in dynamic import
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Mount waits on the locale messages, but their dynamic import used to
start only after index.js had downloaded and executed — one serialized
round-trip on the boot critical path. A build-time plugin now injects a
head script that picks the language (same order as locales/i18n.js) and
adds modulepreload links, so the packs download in parallel with the
main bundle. ~460ms faster mount on a simulated slow-4G link.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The SDK chunk used to start downloading at boot, competing with the
locale pack the first render waits on. It now loads in the mount
chain's finally (same slot as the flag icons). Until init, temporary
window listeners buffer uncaught errors/rejections and any of them
triggers an immediate load, so a boot that never reaches mount still
reports — strictly better coverage than the old always-eager load.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jason5ng32 and others added 10 commits July 17, 2026 02:10
GA shows <10 daily Turkish-language visitors after years of a native
UI, while ~100 Russian-language visitors show the longest engagement
on the site despite seeing English. Swap keeps the maintenance surface
at four locales. Stored lang=tr preferences fall back gracefully, and
MaxMind natively carries ru geo names (it never had tr ones).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@pull pull Bot locked and limited conversation to collaborators Jul 17, 2026
@pull pull Bot added the ⤵️ pull label Jul 17, 2026
@pull
pull Bot merged commit e366904 into Cosr-Backup:main Jul 17, 2026
1 of 2 checks passed
@4everland
4everland Bot requested a deployment to production July 17, 2026 12:27 Abandoned
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant