Skip to content

[pull] main from jason5ng32:main - #120

Merged
pull[bot] merged 71 commits into
Cosr-Backup:mainfrom
jason5ng32:main
Aug 22, 2026
Merged

pull[bot] merged 71 commits into
Cosr-Backup:mainfrom
jason5ng32:main

Conversation

@pull

@pull pull Bot commented Aug 22, 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 August 14, 2026 02:10
…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>
jason5ng32 and others added 25 commits August 20, 2026 11:34
…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>
@pull pull Bot locked and limited conversation to collaborators Aug 22, 2026
@pull pull Bot added the ⤵️ pull label Aug 22, 2026
@pull
pull Bot merged commit 60cac96 into Cosr-Backup:main Aug 22, 2026
2 of 3 checks passed
@4everland
4everland Bot requested a deployment to production August 22, 2026 06:27 Abandoned

This branch had an error being deployed

1 failed deployment
production — 60cac96e Deployed Aug 22, 2026 by pull[bot] via Push README to Docker Hub #11
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.

2 participants