Skip to content

[pull] main from TryGhost:main#1087

Merged
pull[bot] merged 7 commits into
code:mainfrom
TryGhost:main
Apr 22, 2026
Merged

[pull] main from TryGhost:main#1087
pull[bot] merged 7 commits into
code:mainfrom
TryGhost:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 22, 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 April 22, 2026 07:23
ref https://linear.app/ghost/issue/NY-1238

- Below 480px the share modal now fills the viewport so the empty area
under it no longer closes the modal; it can only be dismissed via the X
- Below 420px the "more" button now renders last in the action row; the
flex \`order\` was applied to the button rather than its wrapper div,
which is the actual flex child, so the wrapper fell back to order 0 and
appeared first
- When the more menu is open, outside clicks are now intercepted in the
capture phase so the first click only closes the menu instead of also
opening a share target or closing the whole modal
#27500)

no issues

Follow-up design/copy pass on the gift redemption staff notification
added in #27414, to bring it in line with the existing "new paid
subscriber" email.

- Subject is now `🎁 Paid subscription started: {name}` — mirrors the
existing `💸 Paid subscription started: {name}` pattern used for regular
paid signups
- Tier row now includes the gift cadence (e.g. `Premium • 1 year`)
instead of just the tier name
- Dropped the `Source: Gift subscription` row — `Gifted by` already
conveys that, and the regular paid email omits source when there's no
attribution
ref https://linear.app/ghost/issue/HKG-1708

The previous reset() scanned every matching key and DEL'd them one by
one. It was O(n), slow against large caches, and needed cluster-aware
routing to hit the right primary node.

To avoid races on first init, concurrent callers within a process
share a single in-flight promise, and SET NX collapses the
cross-process race so only one writer wins.
…27479)

ref #19627
[HKG-1709](https://linear.app/ghost/issue/HKG-1709/deduplicate-concurrent-cache-misses)

- We're preparing to merge changes to the Redis cache adapter(concurrent
read deduplication). These tests lock in the current error-handling
behavior, so any behavioral regression is caught immediately.
- The current adapter silently swallows errors in several paths and the
exact behavior isn't documented by existing tests. The concurrent read
deduplication PR will change the `get` method structure to share
in-flight promises, which makes error paths more sensitive — one failure
now affects all callers waiting on the same key. We need to know exactly
how errors behave today before changing anything.
ref https://linear.app/ghost/issue/BER-3478

Updated the `total_members` helper to include `gift` members in the
count
ref https://linear.app/ghost/issue/BER-3548

Added gift link to the `Links` section of the signup portal modal in
admin
@pull pull Bot locked and limited conversation to collaborators Apr 22, 2026
@pull pull Bot added the ⤵️ pull label Apr 22, 2026
@pull pull Bot merged commit 19a905f into code:main Apr 22, 2026
1 check 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.

6 participants