Skip to content

[pull] main from TryGhost:main - #1453

Merged
pull[bot] merged 16 commits into
code:mainfrom
TryGhost:main
Aug 28, 2026
Merged

[pull] main from TryGhost:main#1453
pull[bot] merged 16 commits into
code:mainfrom
TryGhost:main

Conversation

@pull

@pull pull Bot commented Aug 28, 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 : )

vershwal and others added 16 commits August 28, 2026 16:34
ref https://linear.app/ghost/issue/HKG-1978

- We are moving all background jobs to the new class-based jobs service so
  they can later run on a durable queue backend; this was the last members
  job still on the legacy worker-thread path
- The job runs in-process now, so the worker model-event bridge had no
  remaining producers and could be removed entirely
- We wrapped the delete, status flip, and history insert in one transaction
  with row locks because the issue rated this job high risk: a partial run
  previously could strand members as comped with their product rows gone
- Eligibility is re-derived from database state on every run so a repeat or
  redelivered run is a safe no-op, which the durable backend will rely on
- member.edited events are emitted only after commit so webhooks can never
  fire for a rolled-back change
- The schedule (randomized daily 00:00–05:59) and the UTC-day cutoff are
  unchanged to keep production behavior identical
- The cutoff is now a plain datetime string because the old ISO format
  compared incorrectly on SQLite and cleaned same-day rows early
ref https://linear.app/ghost/project/4b2edbd66469/ - Milestone 7

Each commit references an individual Linear issue

Adds completion emails for CSV imports with outcome totals,
imported-content links, and context-aware Admin filters. Emails include
a complete report.csv and a re-uploadable errors.csv for actionable
failures. JSON imports remain unchanged.
no ref

This change should have no user impact.

I think this is a useful change on its own, but it'll make an upcoming
change easier too.
no ref

This change should have no user impact.

The previous conditional meant that this line did nothing. Let's remove
it.
no ref

We were doing some redundant checks here. Let's remove them.
no ref

This was a simple find-replace to match the new home of our docs.
no ref

- `EmailAddressParser` was a class that only had static methods. This
replaces the class with "normal" exported functions.

- Fully TypeScriptified the module.

- Because it's just a regular module, changed imports from
`EmailAddressParser` (capital E) to `emailAddressParser` (lowercase E).

This change should have no user impact.
closes https://linear.app/ghost/issue/NY-1539

Members who completed magic-link signup on a private site returned to
the signup form even though their member session was active. This made
signup appear incomplete and obscured the separate access-code step.

The private page now shows the access-code form when a member session is
present and keeps the signup form for anonymous visitors. We use this
access code form in a few different scenarios, so there's a small
refactor as well to make it more reusable.

quick overview of this page if an access code hasn't been entered:
- if signups are turned off, or only paid signups allowed: access code
form shows (existing behavior)
- if signups are turned on and a user is not signed in on that browser:
subscribe form shows (existing behavior)
- if signups are turned on and a user IS signed in: access code form
shows (new behavior)

<img width="534" height="942" alt="image"
src="https://github.com/user-attachments/assets/2f2f302f-7365-4d9a-bc0c-86067640af22"
/>
no ref

This refactor maintains "clean" dependency injection for the email
analytics service, instead of reaching into globals in one spot.
no ref

`automations-repository.test.ts` was testing
`database-automations-repository.ts`. Let's rename the test file to
match what's actually being tested.
@pull pull Bot locked and limited conversation to collaborators Aug 28, 2026
@pull pull Bot added the ⤵️ pull label Aug 28, 2026
@pull
pull Bot merged commit 0913088 into code:main Aug 28, 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.

4 participants