Skip to content

[pull] main from TryGhost:main#923

Merged
pull[bot] merged 3 commits intocode:mainfrom
TryGhost:main
Feb 17, 2026
Merged

[pull] main from TryGhost:main#923
pull[bot] merged 3 commits intocode:mainfrom
TryGhost:main

Conversation

@pull
Copy link

@pull pull bot commented Feb 17, 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 : )

troyciesco and others added 3 commits February 17, 2026 09:17
closes
[NY-1041](https://linear.app/ghost/issue/NY-1041/oss-issue-welcome-email-sender-still-appears-as-noreply-in-preview)
and #26381

- In #26358 we made it so that
member welcome emails, when sent, would use sender info and reply_to
from the default newsletter
- this PR updates the modal to display that information properly as well
- Since this info is used in both the button that opens the modal and
the modal itself, added a hook to de-duplicate some of the logic for
determining exactly what to display
- No logic yet for updating sender name, email, and reply to
specifically for welcome emails, but this code is written in such a way
that once that's supported it can easily take precedence over default
newsletter values

### State 1 - defaults
The default values for the newsletter (first screenshot) are what
welcome emails use.

<table> <tr> <th>Default Newsletter Settings</th> <th>Welcome Email
Buttons</th> <th>Modal</th> </tr> <tr> <td align="center"><img
src="https://github.com/user-attachments/assets/b41a23a5-0e0b-42a6-b482-9a872c452780"
alt="Screenshot 2026-02-16 at 3 01 30 PM" width="380" /></td> <td
align="center"><img
src="https://github.com/user-attachments/assets/20258e4e-1d4d-4d3d-880c-a91b311b8aa9"
alt="Screenshot 2026-02-16 at 3 02 04 PM" width="380" /></td> <td
align="center"><img
src="https://github.com/user-attachments/assets/63439fd1-7067-47d7-b000-7a22b7bc4f32"
alt="Screenshot 2026-02-16 at 3 01 43 PM" width="620" /></td> </tr>
</table>

### State 2 - custom name and sender email
Updated sender name and sender email for the default newsletter. Sender
name is updated in the button that opens the modal, and name + sender
email are updated in the modal. The test email matches the same values.

<table> <tr> <th>Newsletter Settings</th> <th>Welcome Email Buttons</th>
</tr> <tr> <td align="center"><img
src="https://github.com/user-attachments/assets/5a971b12-3ff0-4195-8a89-a69638b90b75"
alt="Screenshot 2026-02-16 at 3 02 38 PM" width="420" /></td> <td
align="center"><img
src="https://github.com/user-attachments/assets/c5dd8e08-3b53-4f21-8b2e-7955092f50cc"
alt="Screenshot 2026-02-16 at 3 02 48 PM" width="420" /></td> </tr> <tr>
<th>Modal</th> <th>Resulting Test Email</th> </tr> <tr> <td
align="center"><img
src="https://github.com/user-attachments/assets/5eebce17-b11c-40eb-88a7-7edf3a486d0d"
alt="Screenshot 2026-02-16 at 3 02 54 PM" width="420" /></td> <td
align="center"><img
src="https://github.com/user-attachments/assets/20a19864-3a21-4c53-82a0-c521ea7a070e"
alt="Screenshot 2026-02-16 at 3 03 08 PM" width="420" /></td> </tr>
</table>

### State 3 - custom reply to
Same as above, but with a custom reply-to address. It appears in the
modal and in the actual sent email.

<table> <tr> <th>Newsletter Reply-To Setting</th> <th>Modal (w/
Reply-To)</th> <th>Resulting Test Email</th> </tr> <tr> <td
align="center"><img
src="https://github.com/user-attachments/assets/eab3dded-8e52-461c-8665-0565558cf471"
alt="Screenshot 2026-02-16 at 3 03 24 PM" width="380" /></td> <td
align="center"><img
src="https://github.com/user-attachments/assets/c5f1c741-4aac-4648-a82a-cf477c8a5a9e"
alt="Screenshot 2026-02-16 at 3 03 33 PM" width="380" /></td> <td
align="center"><img
src="https://github.com/user-attachments/assets/1633a176-0625-4ebf-b591-1724be037c6a"
alt="Screenshot 2026-02-16 at 3 03 42 PM" width="520" /></td> </tr>
</table>
closes https://linear.app/ghost/issue/ONC-1484/re-account-page-links-are-broken

## Summary
- Portal's `updateStateForPreviewLinks()` (the `hashchange` event handler) called `fetchLinkData()` without arguments, leaving `site` and `member` as `undefined`
- This caused a crash when clicking portal hash links (e.g. `<a href="#/portal/account/profile">`) on an already-loaded page
- Loading the full URL directly (e.g. `http://localhost:2368/#/portal/account/profile`) worked fine because
the initial `fetchData()` code path passed the arguments correctly
- Fixed by passing `this.state.site` and `this.state.member` to `fetchLinkData()` in `updateStateForPreviewLinks()`
- Added tests for both logged-in and logged-out hashchange navigation
…ils (#26446)

ref
https://github.com/TryGhost/Ghost/actions/runs/22108351018/job/63898093273

This is a test only change, and doesn't impact any user-facing Ghost
functionality.

The E2E test suite sometimes fails in CI at the `docker compose up ...`
step during environment setup. Currently it's practically impossible to
debug this with the logs that are output. This change doesn't fix the
problem, but adds more detailed logs that should hopefully make it
easier to debug next time we see the same failure.
@pull pull bot locked and limited conversation to collaborators Feb 17, 2026
@pull pull bot added the ⤵️ pull label Feb 17, 2026
@pull pull bot merged commit 6b90356 into code:main Feb 17, 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.

3 participants

Comments