[pull] main from jason5ng32:main - #120
Merged
Merged
Conversation
…ialog Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Dates across the app now render in the UI language instead of the browser/OS locale, in one consistent medium style: account created-at, achievement unlock times, shared-report timestamps (new isoToDateTime), the OONI observation window, IP history day headers and Service Status incident dates. unixToDateTime gains a locale param and rejects unusable input. Deliberate ISO exceptions (ASN history columns, AI report intro, Service Status refresh clock) now carry comments saying why. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
All user-visible stamps go through utils/time-utils.js with the app locale; exceptions must carry a comment. Also drop the hardcoded primitives count from the ui/ description so it can't go stale. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…docs The backend now meters the ipinfo quota by distinct target IPs per month instead of request count. Quota-exhausted copy and the usage dialog say so in all four locales, and the store's quotaExceeded getter documents why its ipinfo flag must stay display-only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Searchable, virtualized country selector over the full ISO 3166-1 set, localized via Intl.DisplayNames. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
POST /api/persona/evaluate — thin proxy to the private evaluator, with smoke tests and the AGENTS note on its header handling. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
New sign-in-gated advanced tool: declare a target country, run the browser-side probes, and get a graded report of how closely the persona sites can see matches the one you expect — with four-locale copy and Node-runner coverage for every non-visual piece. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The one tool whose measurements leave the browser gets its own section: what travels with a run, that nothing is stored, and the two opt-in inputs — a coarsened position and a card issuer prefix checked against a third-party database.
The tool now emits persona:finished, and the report carries the grade against the declared country plus each check's verdict. Verdict-only by design: the live results' detail objects hold what the visitor supplied (issuing bank, the country a shared position resolved to), and a report link is readable by anyone who has it, so the builder drops them. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…lus multi-round latency bars Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… fast on unknown default ids Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e pass's own targets Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
vaul-vue swallows open-auto-focus, so the trigger stayed focused inside #mainpart while it was aria-hidden — Chrome blocked that, and Tab then walked the hidden page. Also drop the leftover Bootstrap scrollspy tabindex wrapping the homepage. Co-Authored-By: Cursor Grok 4.6 <noreply@cursor.com> Co-authored-by: Cursor <cursoragent@cursor.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>
…ol data Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…beacon backend The Earth Online entry and panel now show on any deployment whose backend has CLOUDFLARE_API_KEY (runtime cloudFlare configs flag); the social sections (composer / feed / visitor map / beacon) stay gated on the pulse beacon backend. VITE_PULSE_URL is renamed to VITE_PULSE_BEACON_URL, no legacy fallback. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… timer Shortcuts now register on mount (base keys work from first paint) and the map rebuilds when /api/configs lands, so config-gated keys (i/D/P/p) no longer vanish when the fetch loses the old 2-second race. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
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 : )