Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
f51236f
Fixed the IndexNow development unit test (#29859)
ErisDS Aug 10, 2026
1691d77
Fixed test:types failures in kg-converters and adapter-base-schedulin…
9larsons Aug 10, 2026
6f6f195
🐛 Fixed theme settings reset when editing Source or Casper (#29839)
kevinansfield Aug 10, 2026
af0da3d
Renamed `gift-reminders` controller to `gifts` (#29848)
kevinansfield Aug 10, 2026
a121383
Added "automation run analytics" private flag (#29857)
EvanHahn Aug 10, 2026
dc4d1c8
Quieted ghost-admin dev-server noise (#28997)
9larsons Aug 10, 2026
77f2685
🐛 Fixed missing tiers in previous part of webhook (#29810)
cathysarisky Aug 10, 2026
7315774
Removed unused events map from member count history (#29831)
irontaek Aug 10, 2026
e18dddb
Fixed session verification to bind with user id (#29865)
acburdine Aug 10, 2026
ff33543
Applied external `got` client to Slack hooks (#29864)
acburdine Aug 10, 2026
fa23298
Added regression test for content-adapter dependency resolution (#29830)
wakqasahmed Aug 10, 2026
a5b43cb
Fixed feedback api to omit member relation for less privileged staff …
acburdine Aug 10, 2026
75f1bca
Added feedback confirm prompt if not a newsletter feedback link (#29866)
acburdine Aug 10, 2026
8f6a78d
Updated benchmarks to run on Blacksmith (#29868)
acburdine Aug 10, 2026
cbdf028
🐛 Fixed admin toolbar redirect loops on subdirectory sites (#29838)
louisghost Aug 10, 2026
c459636
🐛 Made the member.edited webhook fire on cancellation and reinstateme…
cathysarisky Aug 10, 2026
4b95c4c
🐛 Fixed contrast_text_color returning incorrect text color for some l…
eojuma Aug 10, 2026
aeaf544
Consolidate E2E testing guidance and retire ADR experiment (#29844)
ErisDS Aug 10, 2026
5405426
Removed third-party spacergif.org request from video card poster (#29…
wakqasahmed Aug 10, 2026
25b1a82
Updated release script to handle mid-release commit (#29870)
acburdine Aug 10, 2026
3ad7a69
Fixed flaky tag detail acceptance test (#29871)
9larsons Aug 10, 2026
33d716a
v6.57.1
github-actions[bot] Aug 10, 2026
a0f9059
Bumped version to 6.57.2-rc.0
github-actions[bot] Aug 10, 2026
c8be291
Fixed docker build to upload core image as artifact in forks (#29873)
acburdine Aug 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## 0.2.1

### Patch Changes

- Fixed the test suite type-check against the typed @tryghost/logging error signature.
5 changes: 5 additions & 0 deletions .changeset/changelogs/@tryghost!kg-converters@1.2.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## 1.2.4

### Patch Changes

- Fixed the test suite type-check failing under TypeScript 7.
5 changes: 5 additions & 0 deletions .changeset/changelogs/@tryghost!kg-default-cards@10.3.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## 10.3.4

### Patch Changes

- Removed a third-party network request (spacergif.org) from the web-rendered video card's poster image, replacing it with a local transparent placeholder. Email rendering is unaffected.
7 changes: 7 additions & 0 deletions .changeset/changelogs/@tryghost!kg-default-nodes@2.1.5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
## 2.1.5

### Patch Changes

- Removed a third-party network request (spacergif.org) from the web-rendered video card's poster image, replacing it with a local transparent placeholder. Email rendering is unaffected.

- Fixed contrast text colors for light backgrounds
5 changes: 5 additions & 0 deletions .changeset/changelogs/@tryghost!koenig-lexical@1.9.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## 1.9.1

### Patch Changes

- Fixed contrast text colors for light backgrounds
21 changes: 21 additions & 0 deletions .changeset/ledger.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,40 @@
dir: packages/adapters/scheduling-base
intents:
- fifty-maps-sing
"@tryghost/adapter-base-scheduling@0.2.1":
dir: packages/adapters/scheduling-base
intents:
- typed-logging-args
"@tryghost/adapter-base-sso@0.1.1":
dir: packages/adapters/sso-base
intents:
- major-areas-fail
- plain-singers-cheat
"@tryghost/kg-converters@1.2.4":
dir: koenig/kg-converters
intents:
- tidy-types-check
"@tryghost/kg-default-cards@10.3.4":
dir: koenig/kg-default-cards
intents:
- spacy-poodles-hunt
"@tryghost/kg-default-nodes@2.1.4":
dir: koenig/kg-default-nodes
intents:
- floppy-bobcats-spend
"@tryghost/kg-default-nodes@2.1.5":
dir: koenig/kg-default-nodes
intents:
- spacy-poodles-hunt
- warm-hotels-make
"@tryghost/koenig-lexical@1.9.0":
dir: koenig/koenig-lexical
intents:
- bright-walls-preview
"@tryghost/koenig-lexical@1.9.1":
dir: koenig/koenig-lexical
intents:
- warm-hotels-make
ghost-storage-base@3.0.0:
dir: packages/adapters/storage-base
intents:
Expand Down
6 changes: 6 additions & 0 deletions .changeset/spacy-poodles-hunt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@tryghost/kg-default-nodes": patch
"@tryghost/kg-default-cards": patch
---

Removed a third-party network request (spacergif.org) from the web-rendered video card's poster image, replacing it with a local transparent placeholder. Email rendering is unaffected.
5 changes: 5 additions & 0 deletions .changeset/tidy-types-check.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tryghost/kg-converters": patch
---

Fixed the test suite type-check failing under TypeScript 7.
5 changes: 5 additions & 0 deletions .changeset/typed-logging-args.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tryghost/adapter-base-scheduling": patch
---

Fixed the test suite type-check against the typed @tryghost/logging error signature.
6 changes: 6 additions & 0 deletions .changeset/warm-hotels-make.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@tryghost/kg-default-nodes": patch
"@tryghost/koenig-lexical": patch
---

Fixed contrast text colors for light backgrounds
32 changes: 27 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -484,8 +484,7 @@ jobs:
# Changing the runner label or the hyperfine version makes new results
# incomparable with the existing history - treat both as pinned.
job_perf-tests:
runs-on:
labels: ubuntu-latest-4-cores
runs-on: blacksmith-2vcpu-ubuntu-2404
needs: [job_setup]
if: (needs.job_setup.outputs.changed_core == 'true' && needs.job_setup.outputs.is_development == 'true') || needs.job_setup.outputs.has_perf_tests_label == 'true'
name: Performance tests
Expand Down Expand Up @@ -533,10 +532,10 @@ jobs:
# bump would land in the code series as a regression with no Ghost commit behind it.
job_perf-tests-image:
name: Performance tests (production image)
runs-on:
labels: ubuntu-latest-4-cores
runs-on: blacksmith-2vcpu-ubuntu-2404
needs: [job_setup, job_docker]
# Registry path only: the core image is pushed to GHCR, never saved as an artifact.
# Registry path only: benchmarks are a canonical-repo series, so this pulls the
# core image from GHCR rather than loading the artifact-path tarball.
if: |
needs.job_docker.result == 'success' &&
needs.job_docker.outputs.use-artifact == 'false' &&
Expand Down Expand Up @@ -1401,6 +1400,29 @@ jobs:
cache-from: type=registry,ref=${{ steps.strategy.outputs.image-core-name }}:cache-main
cache-to: ${{ steps.strategy.outputs.should-push == 'true' && format('type=registry,ref={0}:cache-{1},mode=max', steps.strategy.outputs.image-core-name, github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || 'main') || '' }}

# Uploaded here, before the full image is even built: on the artifact path
# consumers (Ghost-Moya CD) need the core image — server only, no admin —
# and would otherwise have to fall back to `docker-image-production`.
- name: Save core image as artifact
if: steps.strategy.outputs.use-artifact == 'true'
run: |
IMAGE_TAG=$(echo "${{ steps.meta-core.outputs.tags }}" | head -n1)
echo "Saving image: $IMAGE_TAG"
# Written outside the repo root: a stray tarball there would change the
# `.` context between the core and full builds and bust the deploy-stage
# COPY cache (same reason the admin artifact lands in RUNNER_TEMP below).
docker save "$IMAGE_TAG" | gzip > "${RUNNER_TEMP}/docker-image-core.tar.gz"
ls -lh "${RUNNER_TEMP}/docker-image-core.tar.gz"

- name: Upload core image artifact
if: steps.strategy.outputs.use-artifact == 'true'
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: docker-image-core
path: ${{ runner.temp }}/docker-image-core.tar.gz
retention-days: 1
if-no-files-found: error

# Synchronise with job_build_admin only now, after core is built: the full
# image is core + admin. No `needs` edge, so the two jobs run concurrently
# and core builds during the wait.
Expand Down
40 changes: 0 additions & 40 deletions adr/0001-aaa-test-structure.md

This file was deleted.

101 changes: 0 additions & 101 deletions adr/0002-page-objects-pattern.md

This file was deleted.

22 changes: 0 additions & 22 deletions adr/README.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ const features: Feature[] = [{
title: 'Automations',
description: 'Toggle the automations beta. Unexpected problems can occur if you turn this off after previously turning it on.',
flag: 'automations'
}, {
title: 'Automation run analytics',
description: 'Track run-level analytics for automations.',
flag: 'automationRunAnalytics'
}, {
title: 'Stripe Automatic Tax (private beta)',
description: 'Use Stripe Automatic Tax at Stripe Checkout. Needs to be enabled in Stripe',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -764,7 +764,11 @@ const ThemeCodeEditorModal: React.FC<{themeName: string}> = ({themeName}) => {
const formData = new FormData();
formData.append('file', blob, `${nextThemeName}.zip`);

const response = await fetch(`${getGhostPaths().apiRoot}/themes/upload/`, {
// when saving under a new name, carry over the original theme's
// settings so activating the copy keeps the site's design
const uploadQuery = isSaveAs ? `?copy_settings_from=${encodeURIComponent(previousThemeName)}` : '';

const response = await fetch(`${getGhostPaths().apiRoot}/themes/upload/${uploadQuery}`, {
method: 'POST',
credentials: 'include',
headers: {
Expand Down
5 changes: 4 additions & 1 deletion apps/admin/src/settings/site/theme.acceptance.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,10 @@ describe("Theme settings", () => {
fakeThemeWorld();
await fakeThemeDownload("casper");
await fakeThemeDownload("casper-edited");
const uploadApi = fakeAdminEndpoint("POST", "/themes/upload/", { themes: [theme({ name: "casper-edited" })] });
// saving under a new name carries over the original theme's settings
const uploadApi = fakeAdminEndpoint("POST", "/themes/upload/?copy_settings_from=casper", {
themes: [theme({ name: "casper-edited" })],
});
await renderAdminApp("/settings/theme/edit/casper");

const editor = await editorTextbox();
Expand Down
1 change: 1 addition & 0 deletions apps/admin/src/tags/detail/tag-detail.acceptance.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ describe('Tag detail (tagDetailsReact on)', () => {

await expect.element(page.getByTestId('tag-detail-title')).toHaveTextContent('New tag');
const nameInput = page.getByLabelText('Name', {exact: true});
await expect.element(nameInput).toBeVisible();
await userEvent.type(nameInput.element(), 'Weekly News');
await expect.element(page.getByLabelText('Slug', {exact: true})).toHaveValue('weekly-news');

Expand Down
11 changes: 10 additions & 1 deletion apps/ember-admin/.ember-cli
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,14 @@

Setting `disableAnalytics` to true will prevent any data from being sent.
*/
"disableAnalytics": true
"disableAnalytics": true,

/**
Default to Node's native FS watcher instead of Watchman. Watchman
repeatedly trips its "MustScanSubDirs UserDropped" recrawl warning
in this monorepo (Docker bind mounts + Vite dev writes), spamming
~6 lines per rebuild. The node watcher is quieter and good enough
for our tree size.
*/
"watcher": "node"
}
6 changes: 5 additions & 1 deletion apps/ember-admin/lib/asset-delivery/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,11 @@ module.exports = {
} else {
fs.ensureSymlinkSync(adminXPath, assetsAdminXPath);
}
} else {
} else if (this.env === 'production') {
// In dev the admin-x apps may not have finished their first
// build yet and Nx will trigger another Ember rebuild once
// they do. Only flag a missing dist for production where it
// indicates a real pipeline failure.
console.log(`${app} folder not found`);
}
}
Expand Down
Loading
Loading