Skip to content

[pull] main from TryGhost:main#1007

Merged
pull[bot] merged 7 commits intocode:mainfrom
TryGhost:main
Mar 25, 2026
Merged

[pull] main from TryGhost:main#1007
pull[bot] merged 7 commits intocode:mainfrom
TryGhost:main

Conversation

@pull
Copy link

@pull pull bot commented Mar 25, 2026

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

peterzimon and others added 7 commits March 25, 2026 13:34
ref 10a99e9
ref https://linear.app/ghost/issue/DES-1307/twcss-4-round-2

- This is a followup PR to migrate TWCSS config files to CSS variables. It sets back classname order rule to `error` and fixes all misformated files in Admin.
ref
https://linear.app/ghost/issue/BER-3469/price-formatting-bug-with-price-helper

Discounted prices with trailing zeros (e.g. $35.40) were rendered
without the trailing zero ($35.4) in the `{{price}}` theme helper. This
is because the short number format used `minimumFractionDigits: 0`,
which allowed `Intl.NumberFormat` to drop trailing zeros.
Now enforces 2 decimal places when the amount has a fractional part,
while still hiding decimals for whole amounts (e.g. $5 stays as $5).
ref https://linear.app/ghost/issue/PLA-10/
- Migrated 3 portal member action tests (log out, unsubscribe from
newsletter, unsubscribe from all newsletters) from
`ghost/core/test/e2e-browser/portal/` to the Playwright `e2e/` test
suite
- Added `PortalAccountHomePage` and `PortalNewsletterManagementPage`
page objects for portal iframe interactions
- Added `data-testid` to portal popup notification component for
reliable success notification assertions
- Differentiated newsletter toggle vs comment toggle test IDs
(`newsletter-toggle` / `comment-toggle`) in portal newsletter management
- Deleted old `member-actions.spec.js` from e2e-browser
ref https://linear.app/ghost/issue/PLA-9/
- adds fake Stripe coupon support for offer-backed checkout sessions
- records checkout discounts and carries them into fake subscription
state
- adds a minimal admin offers helper for top-level e2e setup
- adds a thin offer checkout smoke test to prove the capability end to
end
DuckDuckGo Tracker Radar scores navigator.vendor, navigator.platform,
and navigator.maxTouchPoints as high-entropy fingerprinting APIs. Since
comments-ui loads from cdn.jsdelivr.net (which has a domain-level
fingerprinting score of 3), Safari's Advanced Fingerprinting Protection
— on by default for all users since Safari 26 — restricts API access
and storage for our script, breaking the comment editor.

This Vite build plugin replaces those API accesses in ProseMirror and
tiptap dependencies with navigator.userAgent-only equivalents at build
time. The patched detection produces identical results for all major
browser/OS combinations, with the only difference being iPadOS 13+
(which already sends a desktop Mac UA and works fine with desktop
handling). Includes equivalence tests covering 13 browser fingerprints
and a bundle scan test that verifies the built UMD output contains none
of the blocked APIs.
Changed the condition from `github.repository_owner == 'TryGhost'` to
`github.repository == 'TryGhost/Ghost'` so that forks owned by the
TryGhost org cannot inadvertently trigger the Ghost(Pro) CD pipeline.
ref https://linear.app/ghost/issue/PLA-9/
- migrates the remaining Portal offer redemption coverage into top-level
e2e
- adds the Portal offer page object and redemption flow support
- deletes the legacy browser offers spec
@pull pull bot locked and limited conversation to collaborators Mar 25, 2026
@pull pull bot added the ⤵️ pull label Mar 25, 2026
@pull pull bot merged commit 254ec47 into code:main Mar 25, 2026
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.

4 participants