Skip to content

[pull] main from TryGhost:main - #1513

Merged
pull[bot] merged 9 commits into
code:mainfrom
TryGhost:main
Sep 24, 2026
Merged

pull[bot] merged 9 commits into
code:mainfrom
TryGhost:main

Conversation

@pull

@pull pull Bot commented Sep 24, 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 : )

9larsons and others added 9 commits September 24, 2026 10:06
…30956)

ref https://linear.app/ghost/issue/PLA-293

Registers a new `globalSearchReact` private Labs flag for moving the Cmd-K search modal from Ember to React.
…30945)

no ref

The React editor would prompt for save on whitespace changes. This removes that, and we always trim the title for change detection.
…rows (#30949)

no ref

Tier and snippets menu now use pagination as expected.
)

no ref

Contributors have no permission to read tiers. On a site with paid members enabled, opening the React editor's post preview as a Contributor still browsed paid tiers, the API refused the request with a 403, and the refusal showed up as an error toast over the preview. This is now removed.
no ref

Cleanup: the React editor's change tracker included some fields that were unread.
no ref

This is an improvement on the Ember editor - we now fetch pages of 100 up to 1000 labels. Eventually we may want to improve this to support search-as-you-type.
Adds a location map to member profiles, using the country and US state
data Ghost already stores. This is the implementation intended for
general release after internal testing; the private `memberLocationMap`
Labs flag remains off by default in this PR.

- Uses `country_code` as the source of truth and resolves US regions
from state names, postal abbreviations, and `US-XX` codes. Pins indicate
approximate country/state locations, not member coordinates.
- Renders a continuous Mercator world map from local, public-domain
Natural Earth geometry. No external map service, API key, or location
data transmission is involved. The view includes surrounding geography
and keeps the pin centered.
- Places the avatar beside the member heading and removes the duplicate
sidebar identity when enabled. Unknown countries show no map; US members
without a recognized state show an overview without a pin. New-member
forms retain their existing layout.
- Lazy-loads the map and keeps header controls usable if the download
fails. The current map chunk is about 510 kB compressed.
- Uses `MemberLocationMap` naming throughout. Temporary spike notes and
the standalone sample preview (including its HTML, entry point, and Vite
config) are removed. A short NOTICE records the dataset source and
public-domain status; regeneration commands live in the generator
header.

Internal rollout:

Enable developer experiments, then **Settings → Labs → Private features
→ Member location maps**. The flag controls the entire map/header change
and defaults off; disabled or older-backend configurations preserve the
existing member page. Test the integrated member page with country
locations, US state names/codes, Alaska and Hawaii, missing locations,
and narrow/light/dark layouts. Check load time on slower connections and
the locations represented in actual member data; small territories may
be absent from the Natural Earth 50m dataset.

After internal sign-off, a follow-up PR will remove the private flag and
its toggle, make this header the default, remove the old flag-off layout
branches, and update the rollout tests. This PR does not enable general
availability.

Validation:

- After cleanup: 35 map/header/formatting unit tests and 5 browser
acceptance cases passed, including disabled/missing flags, unknown
locations, and new-member forms.
- Admin TypeScript, focused lint, and a production React bundle build
passed. The build used a temporary output directory with the Ember
publishing hook disabled to preserve the running local Admin assets.
- After syncing with `main` (`33fbb7f603`): 19 Core Labs unit tests,
repository formatting, and repository lint passed. The full `pnpm check`
test phase reported 22 Core failures across 8 files outside the map
feature, including email rendering, gift preview, staff notifications,
automation, and request-queue tests, with many timeouts. Remaining broad
suites were stopped after these failures; this was not a green
full-suite result.
- Earlier validation covered config/settings APIs, member
editing/navigation, and visual checks across desktop/mobile and
light/dark themes. CI runs again for the updated PR.

- [x] I've read and followed the Contributor Guide
- [x] I've explained my change
- [x] I've written automated tests
#30952)

no ref

Filled in some missing role-based tests for the React editor.
…an publish (#30963)

no ref

The React editor's post preview modal now shows its Publish button for every user who can publish.
@pull pull Bot locked and limited conversation to collaborators Sep 24, 2026
@pull pull Bot added the ⤵️ pull label Sep 24, 2026
@pull
pull Bot merged commit 08dd522 into code:main Sep 24, 2026
3 checks passed
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