Skip to content

[pull] main from TryGhost:main - #1412

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

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

Conversation

@pull

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

EvanHahn and others added 19 commits August 13, 2026 11:25
no ref

Ghost [dropped SQLite in production years ago][0]. Developers don't need
to test migrations with SQLite.

This change should have no user impact.

[0]: https://ghost.org/changelog/5/
no ref

_I recommend reviewing this [one commit at a
time](https://github.com/TryGhost/Ghost/pull/29890/commits)._

This change should have no user impact.

This change:

- tests email analytics database queries
- stops using a global reference to the database, and injects the
dependencies (DI)

In addition to automated testing, I also manually tested this. I sent a
newsletter, opened it in Gmail, and verified that I saw the open appear
in the newsletter's analytics.
no ref
- update all action references to latest versions
- update Docker digest pins to latest (except for mysql)
- update pnpm to latest
- add renovate rule to pin mysql to v8.x
- pin tb-cli to v4.6.13 due to an upstream bug/change
no ref

This change should have no user impact. It adds a type declaration for
`core/server/data/index.js`.
no ref

_I recommend reviewing this [one commit at a
time](https://github.com/TryGhost/Ghost/pull/29892/commits)._

This change should have no user impact.

This change:

- tests the email analytics initializer
- stops using global references and injects the dependencies (DI)

In addition to automated testing, I also manually tested this. I sent a
newsletter, opened it in Gmail, and verified that I saw the open appear
in the newsletter's analytics.
This PR contains the following updates:
This PR contains the following updates:
- autoprefixer@10.5.4
- postcss@8.5.26

Co-authored-by: tryghost-renovate[bot] <269725441+tryghost-renovate[bot]@users.noreply.github.com>
no ref
- switch rebaseWhen to 'conflicted', removing the consistent rebase force-push cycle that led to PRs being stuck
- widen automerge window to allow for CI re-runs
- reduce Renovate log noise by default, allow debug logging on manual runs
no ref
- update nx to latest v23
- update secretlint monorepo
- update knip/lint-staged/dep-cruiser
Co-authored-by: tryghost-renovate[bot] <269725441+tryghost-renovate[bot]@users.noreply.github.com>
no ref
- update vitest et. al to latest
- update deps in scripts/* package
- update types dependencies
no ref
- cleanup remaining jest type-only references (import from Vitest directly)
- remove jest/jest types dependency
no ref
- pin vitest/ui to catalog
- pin prettier to catalog
- bump nock/esbuild/prettier/stylelint/typescript-eslint to latest
no ref
- remove unnecessary node-fetch/cross-fetch deps from repo, as fetch is available natively in the last few majors of Node
no ref

This change should have no impact on functionality.

Before this change, we initialized newsletter-specific metrics in
`EmailAnalyticsService`, which should be unaware of newsletters.

Now, it's moved higher up. I think this is a useful cleanup.

_(Note: this PR's branch name is a misnomer, left over from a previous
direction.)_
ref
#29890 (review)

Big picture
-----------

We sometimes failed to create the job row for the "missing" job. This
could cause:

- unnecessary extra fetches from Mailgun
- events to be dropped entirely, if the site was off for awhile

Details
-------

There are four jobs for email analytics:

1. opened
2. non-opened
3. scheduled
4. missing

Before this change, `setJobTimestamp` failed to upsert the job row. For
the first three job types, it turned out that was fine, because they
were already created by previous code paths. But not for the "missing"
job!

Before this change, we'd only create the "missing" job row when:

- no missing events were found
- there was an error processing the batch

Now, we create it at the right time as intended.
…29963)

no ref

This fixes several type errors and makes it possible to convert this
module to TypeScript.

This should have no user impact.
Migrates the remaining Codex documentation into the codebase. 
This is part of work to bring all codebase docs into the codebase, 
and make sure the information is consistent, correct and coherent.
@pull pull Bot locked and limited conversation to collaborators Aug 13, 2026
@pull pull Bot added the ⤵️ pull label Aug 13, 2026
@pull
pull Bot merged commit 089f7e8 into code:main Aug 13, 2026
2 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.

3 participants