forked from TryGhost/Ghost
-
Notifications
You must be signed in to change notification settings - Fork 0
Update Ghost to the latest version #9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
nbayramberdiyev
wants to merge
911
commits into
main
Choose a base branch
from
update-ghost
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
closes https://linear.app/ghost/issue/PROD-2079/ - Outlook has trouble with `em` based heights and large font sizes, with background sometimes leaking through in weird ways. We had such an issue with the post title that became apparent with dark backgrounds - fixed by switching from `line-height: 1.1em` to the unitless `1.1`, and adding an extra nested table to house the title text
no issue We've upgraded Ghost’s newsletter templates with new design settings. Keep an eye on or subscribe to https://ghost.org/changelog/ for full details.
ref https://linear.app/ghost/issue/PROD-1757/what-happens-when-paid-members-are-turned-off - The current structure of post analytics overview wasn't flexible and focused enough to work well with various states of Ghost (e.g. what if paid members are turned off)
ref https://linear.app/ghost/issue/PROD-1860 - added new tb endpoint `api_post_visitor_counts` to fetch visitor counts for multiple posts, unfiltered, for all time - added display of visitor counts and member attribution to posts in the posts list behind the traffic analytics alpha flag - created new post analytics service for use in the Ember app(s) - added test coverage I've put this behind the alpha flag because we're going to need design changes here to accommodate the extra pieces of data. The current display gets very full and doesn't look particularly good once you start getting that many numbers in there.
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@playwright/test](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`1.53.0` -> `1.53.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.53.0/1.53.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>microsoft/playwright (@&TryGhost#8203;playwright/test)</summary> ### [`v1.53.1`](https://redirect.github.com/microsoft/playwright/compare/v1.53.0...3c60cb476613ee50c040b488d96f390be3985a89) [Compare Source](https://redirect.github.com/microsoft/playwright/compare/v1.53.0...v1.53.1) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - Between 05:00 PM and 11:59 PM, only on Friday ( * 17-23 * * 5 ), Only on Sunday and Saturday ( * * * * 0,6, ), Between 12:00 AM and 12:59 PM, only on Monday ( * 0-12 * * 1 ) (UTC). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/TryGhost/Ghost). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42MC4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
- This encourages ai agents to remember to use yarn instead of npm - Also removed .cursor from gitignore, as we want to have shared rules Note: personal rules can be kept inside cursor itself - Also added an "ai" folder to gitignore for storing plans
ref TryGhost@83d5563 - meant to commit this with the previous commit - this enables everyone to add shared .cursor rules - and keep planning files in /ai
- I want to write up an issue around Ghost 6.0 - But don't want to use the bug template - Therefore temporarily enabling blank issues
ref https://linear.app/ghost/issue/PROD-1860/update-post-index-page-to-reflect-metrics-shown-on-new-dashboard - This change is part of adding more analytics on the post list and it's still in alpha. - Removed empty columns from rows that don't have visitor or member data
ref https://linear.app/ghost/issue/PROD-2036/state-combinations - Added a custom app settings object to both Posts and Stats app to control various states of the app (e.g. paid memberships are off). With this change we keep all settings in Ember instead of handling this logic inside each individual React app.
no issue - Minor tidying
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [terser](https://terser.org) ([source](https://redirect.github.com/terser/terser)) | [`5.43.0` -> `5.43.1`](https://renovatebot.com/diffs/npm/terser/5.43.0/5.43.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>terser/terser (terser)</summary> ### [`v5.43.1`](https://redirect.github.com/terser/terser/blob/HEAD/CHANGELOG.md#v5431) [Compare Source](https://redirect.github.com/terser/terser/compare/v5.43.0...da1e6fb2acd90e62bac69967718b89d6f00aab79) - Prevent niche optimizations that would move around block declarations - Add `lhs_constants` to `CompressOptions` type ([#&TryGhost#8203;1621](https://redirect.github.com/terser/terser/issues/1621)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - Between 05:00 PM and 11:59 PM, only on Friday ( * 17-23 * * 5 ), Only on Sunday and Saturday ( * * * * 0,6, ), Between 12:00 AM and 12:59 PM, only on Monday ( * 0-12 * * 1 ) (UTC). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/TryGhost/Ghost). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42MC4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ref https://linear.app/ghost/issue/PROD-2092/ - the feature is now GA so we can remove all of the flag conditionals to clean up unused code and ensure tests are representative of the GA state - flag left in place for now to enable testing of any further fixes and polish - it's also still required to be passed through to Lexical renderer pending similar flag cleanup there
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [lucide-react](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)) | [`0.516.0` -> `0.517.0`](https://renovatebot.com/diffs/npm/lucide-react/0.516.0/0.517.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>lucide-icons/lucide (lucide-react)</summary> ### [`v0.517.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.517.0): Version 0.517.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.516.0...0.517.0) #### What's Changed - feat(icons): adds `barrel` icon by [@&TryGhost#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in [https://github.com/lucide-icons/lucide/pull/1955](https://redirect.github.com/lucide-icons/lucide/pull/1955) **Full Changelog**: lucide-icons/lucide@0.516.0...0.517.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - Between 05:00 PM and 11:59 PM, only on Friday ( * 17-23 * * 5 ), Only on Sunday and Saturday ( * * * * 0,6, ), Between 12:00 AM and 12:59 PM, only on Monday ( * 0-12 * * 1 ) (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/TryGhost/Ghost). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42MC4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [lucide-react](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)) | [`0.517.0` -> `0.518.0`](https://renovatebot.com/diffs/npm/lucide-react/0.517.0/0.518.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>lucide-icons/lucide (lucide-react)</summary> ### [`v0.518.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.518.0): Version 0.518.0 [Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.517.0...0.518.0) #### What's Changed - fix(icons): updated `egg` and `egg-off` icons by [@&TryGhost#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in [https://github.com/lucide-icons/lucide/pull/3299](https://redirect.github.com/lucide-icons/lucide/pull/3299) - fix(icons): renamed `*-help` and `*-question` icons to `*-question-mark` by [@&TryGhost#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/2540](https://redirect.github.com/lucide-icons/lucide/pull/2540) - chore(scripts): Refactor scripts to typescript by [@&TryGhost#8203;ericfennis](https://redirect.github.com/ericfennis) in [https://github.com/lucide-icons/lucide/pull/3316](https://redirect.github.com/lucide-icons/lucide/pull/3316) - feat(icons): added `drone` icon by [@&TryGhost#8203;shopped](https://redirect.github.com/shopped) in [https://github.com/lucide-icons/lucide/pull/3247](https://redirect.github.com/lucide-icons/lucide/pull/3247) #### New Contributors - [@&TryGhost#8203;shopped](https://redirect.github.com/shopped) made their first contribution in [https://github.com/lucide-icons/lucide/pull/3247](https://redirect.github.com/lucide-icons/lucide/pull/3247) **Full Changelog**: lucide-icons/lucide@0.517.0...0.518.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - Between 05:00 PM and 11:59 PM, only on Friday ( * 17-23 * * 5 ), Only on Sunday and Saturday ( * * * * 0,6, ), Between 12:00 AM and 12:59 PM, only on Monday ( * 0-12 * * 1 ) (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/TryGhost/Ghost). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42MC4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ref https://linear.app/ghost/issue/PROD-1796/testing-add-acceptance-test-suite-for-stats-and-posts-app * Updated initial traffic analytics tests since they did not work properly. * The tests passed with and without mocked data, and the URL was the root URL, which led to blank page. * Updated the URLs, added page objects to make them easier to read and be able to reuse that code. * Added test when external resources can not be read
ref TryGhost#23361 Added missing Hindi translations for various UI strings in `comments.json` and corrected existing ones for accuracy and consistency. Now, all fields are fully translated and aligned with Ghost’s localization practices.
ref https://linear.app/ghost/issue/PROD-1757/what-happens-when-paid-members-are-turned-off - Some parts of analytics didn't make sense when paid memberships are off, this PR conditionally shows them.
ref https://linear.app/ghost/issue/PROD-53/ Added analytics setting for `web_analytics`. We will use this to control whether or not we display/utilize/record 'web traffic' data (page hits).
ref https://linear.app/ghost/issue/PROD-53 - refactored app context/props to be more general for admin react apps - wired up web analytics setting in Settings > Analytics - wired up analytics settings to posts/stats apps and added hook for analytics specific settings helpers We've added a Web Analytics setting to the Analytics grouping within the Settings app. This is currently behind the `trafficAnalytics` feature flag until we're ready to release it fully, as is everything using the new `web_analytics` setting (falls back to the flag). The intent of these changes is to have a generic context and hook for utilizing these settings, which is going to be very common across the Posts and Stats app, both of which display analytics. I can imagine other apps/areas of the code base wanting to use a similar structure for other types of settings, and we may need to introduce one for Members as well.
no ref Added a few test ids to start. Test ids will be added more broadly to make writing browser tests much easier.
) ref https://linear.app/ghost/issue/PROD-2062 - Added `useSearchParams` to manage URL search parameters in GrowthKPIs and Newsletters components - Introduced `handleTabChange` function to update the current tab and synchronize it with the URL - Updated tab click handlers to utilize the new function for better state management and navigation We were already accepting query params on loading, but we weren't setting it when switching tabs in the app.
ref https://linear.app/ghost/issue/PROD-2023 - Hid Feedback table in Posts > Newsletter if disabled for the newsletter - Updated PostAnalyticsProvider to fetch post data using useBrowsePosts and provide it through context - Unified to one Post type across the app for more consistency/less boilerplate - Refactored components in PostAnalytics to consume post data from context to cut down on duplicative fetching - Adjusted Newsletter and Overview components to utilize shared post data and loading states from context This is a fairly substantial refactor. The initial intent was to change the handling of Newsletter > Clicks, but it became clear we were fetching post data all over the place, and our extended post types were getting to be unwieldy. Instead, now we fetch once for the app and share that data across the whole app, as we should've from the start. I've also updated `postId` to be passed via `useGlobalData` to cut down on the use of `useParams`. Instead of using `post.id` this can be helpful as the `postId` is always available via the url, whereas we have to fetch the post data on first load.
ref https://linear.app/ghost/issue/PROD-1894 - added empty state - filtered posts with no results (no free/paid/mrr activity) When we weren't finding data in the lookback period, top posts was returning results that incidentally from the start of the posts table (oldest data).
…ost#23945) no ref - limited to 10 results and added View all button - fixed NaN rendering in some cases
…ryGhost#23947) ref https://linear.app/ghost/issue/PROD-2102 The homepage is unique in that it doesn't have a post_type set at all. Pages have the type of 'page', while posts have a type of 'post'. When wanted to search pages, we really want to see anything that's not a post, so that's what I've updated the filter to do.
no issue - the underlying collections code and the labs UI for the `collectionsCard` flag has already been removed but we still had the feature flag and corresponding editor card and post model support hanging around - removed all `collectionsCard` related code and bumps Koenig to version containing removal of the card itself
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@tiptap/extension-document](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/extension-document)) | [`2.14.0` -> `2.14.1`](https://renovatebot.com/diffs/npm/@tiptap%2fextension-document/2.14.0/2.14.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@tiptap/extension-hard-break](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/extension-hard-break)) | [`2.14.0` -> `2.14.1`](https://renovatebot.com/diffs/npm/@tiptap%2fextension-hard-break/2.14.0/2.14.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@tiptap/extension-paragraph](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/extension-paragraph)) | [`2.14.0` -> `2.14.1`](https://renovatebot.com/diffs/npm/@tiptap%2fextension-paragraph/2.14.0/2.14.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@tiptap/extension-placeholder](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/extension-placeholder)) | [`2.14.0` -> `2.14.1`](https://renovatebot.com/diffs/npm/@tiptap%2fextension-placeholder/2.14.0/2.14.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@tiptap/extension-text](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/extension-text)) | [`2.14.0` -> `2.14.1`](https://renovatebot.com/diffs/npm/@tiptap%2fextension-text/2.14.0/2.14.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@tiptap/react](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/react)) | [`2.14.0` -> `2.14.1`](https://renovatebot.com/diffs/npm/@tiptap%2freact/2.14.0/2.14.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/extension-document)</summary> ### [`v2.14.1`](https://redirect.github.com/ueberdosis/tiptap/compare/v2.14.0...0611ee766c253ba3200f6f6993607d6b1b55caed) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.14.0...0611ee766c253ba3200f6f6993607d6b1b55caed) </details> <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/extension-hard-break)</summary> ### [`v2.14.1`](https://redirect.github.com/ueberdosis/tiptap/compare/v2.14.0...0611ee766c253ba3200f6f6993607d6b1b55caed) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.14.0...0611ee766c253ba3200f6f6993607d6b1b55caed) </details> <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/extension-paragraph)</summary> ### [`v2.14.1`](https://redirect.github.com/ueberdosis/tiptap/compare/v2.14.0...0611ee766c253ba3200f6f6993607d6b1b55caed) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.14.0...0611ee766c253ba3200f6f6993607d6b1b55caed) </details> <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/extension-placeholder)</summary> ### [`v2.14.1`](https://redirect.github.com/ueberdosis/tiptap/compare/v2.14.0...0611ee766c253ba3200f6f6993607d6b1b55caed) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.14.0...0611ee766c253ba3200f6f6993607d6b1b55caed) </details> <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/extension-text)</summary> ### [`v2.14.1`](https://redirect.github.com/ueberdosis/tiptap/compare/v2.14.0...0611ee766c253ba3200f6f6993607d6b1b55caed) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.14.0...0611ee766c253ba3200f6f6993607d6b1b55caed) </details> <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/react)</summary> ### [`v2.14.1`](https://redirect.github.com/ueberdosis/tiptap/compare/v2.14.0...0611ee766c253ba3200f6f6993607d6b1b55caed) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.14.0...0611ee766c253ba3200f6f6993607d6b1b55caed) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - Between 05:00 PM and 11:59 PM, only on Friday ( * 17-23 * * 5 ), Only on Sunday and Saturday ( * * * * 0,6, ), Between 12:00 AM and 12:59 PM, only on Monday ( * 0-12 * * 1 ) (UTC). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/TryGhost/Ghost). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42MC4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
- Created complete e2e testing framework in /e2e directory with TypeScript support - Added Playwright configuration with single worker and retry disabled for stability - Implemented page object pattern with HomePage class for maintainable test structure - Added CI integration with Ghost startup, health checks, and artifact collection - Created basic homepage test as proof of concept - Added comprehensive documentation with setup instructions and extension guidelines - Configured proper build artifacts and gitignore entries for test results - Added yarn workspace integration and test scripts at root level Caveats: - In CI, these run against a site started with `yarn dev`. This includes the local version of the apps (i.e. portal) but isn't representative of the built artifact that we actually run in production. Ideally these tests would run against a completely built docker image, but for now this'll do. - It's currently using sqlite for the DB, because we were hitting rate limits when pulling the mysql image. We should change this to MySQL ASAP.
The test was missing verification of the overwrite confirmation modal's cancel button functionality. Added this check to ensure the behavior remains correct when we implement upcoming changes to the theme handling code.
ref https://linear.app/ghost/issue/PROD-2106 - added GET /ghost/api/admin/search-index/pages Admin API endpoint - this endpoint returns up to 10k pages, sorted by most recently updated and with only the necessary fields for search in Admin or the editor - wired up the new endpoint with the basic search and flex search providers in Admin
ref https://linear.app/ghost/issue/PROD-2057/ In the web traffic components where we show sources, we don't link to Direct. We will no longer do that within the Growth tab (Ghost data) in order to be consistent.
ref https://linear.app/ghost/issue/PROD-2106 - added `GET /ghost/api/admin/search-index/tags` Admin API endpoint - this endpoint returns up to 10k tags, sorted by most recently updated and with only the necessary fields for search in Admin or the editor - wired up the new endpoint with the basic search and flex search providers in Admin
ref https://linear.app/ghost/issue/CON-150/add-heicheif-support-to-ghost-media-iliner - Only Safari supports HEIC images ([ref](https://caniuse.com/?search=HEIC)), but other platforms allow users to upload them - Ghost does not support them in any way, so they are not inlined, resulting in broken-looking migrations (Other platforms handle this by transforming to JPGs either at the point of upload, or at the CDN level, leaving the original image in exports) - Transforming `.heic` and `.heif` images to `.jpg` when extracting the body from the response solves this, as every step after this only sees a JPG image
ref https://linear.app/ghost/issue/PROD-1605/ When posts list filtering was first implemented we had no way of filtering tags server-side so we resorted to fetching all tags to populate the tags filter dropdown in one big list. Many things have changed since: - sites have grown, some now have 10s of thousands of tags - we're removing `?limit=all` support so we can no longer get every tag in one API request - our API now supports "contains" queries with `?filter=tags.name:~'query'` To improve this, we've: - removed the all-tags fetch from the `posts` route - updated tags filter dropdown behaviour - added search field - added initial load of 100 entries when filter is opened - search is performed via a new `tags-manager` service so the functionality can be re-used in other parts of the app later on - added infinite scroll to tags filter dropdown - uses `vertical-collection`'s `lastReached` option to call a new `loadMoreTags` action when fired - `posts` controller keeps track of the initial tags list and the searched tags list so it can add tags to them as needed - updated mirage posts endpoint to filter by tag for easier testing - fixed missing logging of mirage requests when logging is enabled
…#24195) ref https://linear.app/ghost/issue/PROD-2106 - removed `'created_at'` and `'published_at'` fields from `'GET /ghost/api/content/search-index/posts'` endpoint, as they're not being read by Sodo Search
ref https://linear.app/ghost/issue/PROD-2182/mismatch-in-growth-tab-analytics-between-new-and-old-dashboard - The difference value between consecutive data points was misleading in the Growth chart tooltips
…ryGhost#24197) ref https://linear.app/ghost/issue/PROD-2106 - added `'GET /ghost/api/admin/search-index/users'` Admin API endpoint - this endpoint returns up to 10k staff users, with only the necessary fields for search in Admin or the editor - wired up the new endpoint with the basic search and flex search providers in Admin - cleaned up old code in basic search and flex search provicers in Admin
no issue - having duplicate tag names in the database can be confusing when working on tags-related functionality but when generating larger numbers of tags this was a frequent occurrence - we were already adding a random number to the slug to avoid slug-level duplicates, moved that number into the name to avoid the UI looking like it has duplicate entries
ref [BAE-336](https://linear.app/ghost/issue/BAE-336/ghost-hide-ui-in-admin-x-when-limits-reached) Ghost is introducing new pricing tiers with theme restrictions. The admin interface needed support for enforcing these limits before the pricing changes go live. Without these changes, users on restricted plans would be able to install, upload, and activate any theme, bypassing their plan's intended limitations. The UI had no mechanism to enforce theme allowlists or provide feedback about restrictions. We implemented comprehensive theme limit enforcement by creating a centralized `useCheckThemeLimitError` hook that handles all limit logic. This hook is integrated at every theme interaction point - the change theme button, direct route navigation, marketplace installations, uploads, and preview actions. When limits apply, users see upgrade modals explaining their plan's restrictions. The centralized approach ensures consistent behavior across all components. We added extensive acceptance tests covering single-theme limits, multi-theme allowlists, and edge cases. During implementation, we also resolved a modal interaction issue where the Cancel button wasn't properly closing the overwrite confirmation. Once the new pricing goes live, users on restricted plans will see appropriate messaging and upgrade paths that align with their plan's theme allowances. The modular implementation makes it easy to adjust restrictions as pricing models evolve.
…#24201) The requests to the Tinybird API that are made directly to Tinybird are not properly waiting for the token to be available before initiating the request to Tinybird, which results in an HTTP 403 response. The request is then retried when the token becomes available, so there's no user-facing impact apart from the red in the network tab, but we should fix this to keep the network tab green and avoid any console errors. This fixes the condition by: - Unwrapping the `isLoading` state from the `useTinybirdToken` hook - Setting the endpoint to `undefined` on the Tinybird `useQuery()` hook until the token value is defined. This prevents the HTTP request from being made initially - Once the token comes back from the API, `isLoading` becomes false, the `token` becomes defined, and we set the endpoint to the correct value, which triggers the first API request. This same bug is present in other requests in the stats app — I'll include a fix for those in a follow up commit.
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@playwright/test](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`1.53.1` -> `1.53.2`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.53.1/1.53.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>microsoft/playwright (@&TryGhost#8203;playwright/test)</summary> ### [`v1.53.2`](https://redirect.github.com/microsoft/playwright/compare/v1.53.1...8c38de4d13d1e8e28cc97d4ad81cc398a6b2fb32) [Compare Source](https://redirect.github.com/microsoft/playwright/compare/v1.53.1...8c38de4d13d1e8e28cc97d4ad81cc398a6b2fb32) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - Between 05:00 PM and 11:59 PM, only on Friday ( * 17-23 * * 5 ), Only on Sunday and Saturday ( * * * * 0,6, ), Between 12:00 AM and 12:59 PM, only on Monday ( * 0-12 * * 1 ) (UTC). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/TryGhost/Ghost). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
no ref This commit completes coverage of the utils and hooks files in the Stats app.
ref https://linear.app/ghost/issue/PROD-1605/ ref TryGhost@05666f4 - updated `<GhPsmTagsInput />` - now uses server-side "contains" filter when searching instead of a client-side contains filter - loads first 100 tags on open - has infinite scroll pagination - fixed double-encoding of search string when performing server-side filtering - added "contains" filter param extraction to `extractFilterParam` mirage util - added "contains" filtering to mocked tags endpoint
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@tiptap/core](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/core)) | [`2.23.0` -> `2.23.1`](https://renovatebot.com/diffs/npm/@tiptap%2fcore/2.23.0/2.23.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@tiptap/extension-blockquote](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/extension-blockquote)) | [`2.23.0` -> `2.23.1`](https://renovatebot.com/diffs/npm/@tiptap%2fextension-blockquote/2.23.0/2.23.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@tiptap/extension-document](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/extension-document)) | [`2.23.0` -> `2.23.1`](https://renovatebot.com/diffs/npm/@tiptap%2fextension-document/2.23.0/2.23.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@tiptap/extension-hard-break](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/extension-hard-break)) | [`2.23.0` -> `2.23.1`](https://renovatebot.com/diffs/npm/@tiptap%2fextension-hard-break/2.23.0/2.23.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@tiptap/extension-link](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/extension-link)) | [`2.23.0` -> `2.23.1`](https://renovatebot.com/diffs/npm/@tiptap%2fextension-link/2.23.0/2.23.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@tiptap/extension-paragraph](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/extension-paragraph)) | [`2.23.0` -> `2.23.1`](https://renovatebot.com/diffs/npm/@tiptap%2fextension-paragraph/2.23.0/2.23.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@tiptap/extension-placeholder](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/extension-placeholder)) | [`2.23.0` -> `2.23.1`](https://renovatebot.com/diffs/npm/@tiptap%2fextension-placeholder/2.23.0/2.23.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@tiptap/extension-text](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/extension-text)) | [`2.23.0` -> `2.23.1`](https://renovatebot.com/diffs/npm/@tiptap%2fextension-text/2.23.0/2.23.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@tiptap/pm](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/pm)) | [`2.23.0` -> `2.23.1`](https://renovatebot.com/diffs/npm/@tiptap%2fpm/2.23.0/2.23.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@tiptap/react](https://tiptap.dev) ([source](https://redirect.github.com/ueberdosis/tiptap/tree/HEAD/packages/react)) | [`2.23.0` -> `2.23.1`](https://renovatebot.com/diffs/npm/@tiptap%2freact/2.23.0/2.23.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/core)</summary> ### [`v2.23.1`](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) </details> <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/extension-blockquote)</summary> ### [`v2.23.1`](https://redirect.github.com/ueberdosis/tiptap/releases/tag/v2.23.1) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...v2.23.1) ### Releases #### [@&TryGhost#8203;tiptap/extension-drag-handle-react](https://redirect.github.com/tiptap/extension-drag-handle-react)@​2.23.1 ##### Patch Changes - [`5b3d723`](https://redirect.github.com/ueberdosis/tiptap/commit/5b3d723): Fix a bug that causes rerenders on the react drag handle breaking its tippy connection #### [@&TryGhost#8203;tiptap/extension-mention](https://redirect.github.com/tiptap/extension-mention)@​2.23.1 ##### Patch Changes - [`63c9453`](https://redirect.github.com/ueberdosis/tiptap/commit/63c9453): Show mention indicator when converting document to HTML #### [@&TryGhost#8203;tiptap/react](https://redirect.github.com/tiptap/react)@​2.23.1 ##### Patch Changes - [@&TryGhost#8203;tiptap/extension-bubble-menu](https://redirect.github.com/tiptap/extension-bubble-menu)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-floating-menu](https://redirect.github.com/tiptap/extension-floating-menu)@​2.23.1 #### [@&TryGhost#8203;tiptap/starter-kit](https://redirect.github.com/tiptap/starter-kit)@​2.23.1 ##### Patch Changes - [@&TryGhost#8203;tiptap/core](https://redirect.github.com/tiptap/core)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-blockquote](https://redirect.github.com/tiptap/extension-blockquote)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-bold](https://redirect.github.com/tiptap/extension-bold)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-bullet-list](https://redirect.github.com/tiptap/extension-bullet-list)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-code](https://redirect.github.com/tiptap/extension-code)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-code-block](https://redirect.github.com/tiptap/extension-code-block)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-document](https://redirect.github.com/tiptap/extension-document)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-dropcursor](https://redirect.github.com/tiptap/extension-dropcursor)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-gapcursor](https://redirect.github.com/tiptap/extension-gapcursor)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-hard-break](https://redirect.github.com/tiptap/extension-hard-break)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-heading](https://redirect.github.com/tiptap/extension-heading)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-history](https://redirect.github.com/tiptap/extension-history)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-horizontal-rule](https://redirect.github.com/tiptap/extension-horizontal-rule)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-italic](https://redirect.github.com/tiptap/extension-italic)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-list-item](https://redirect.github.com/tiptap/extension-list-item)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-ordered-list](https://redirect.github.com/tiptap/extension-ordered-list)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-paragraph](https://redirect.github.com/tiptap/extension-paragraph)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-strike](https://redirect.github.com/tiptap/extension-strike)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-text](https://redirect.github.com/tiptap/extension-text)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-text-style](https://redirect.github.com/tiptap/extension-text-style)@​2.23.1 - [@&TryGhost#8203;tiptap/pm](https://redirect.github.com/tiptap/pm)@​2.23.1 #### [@&TryGhost#8203;tiptap/vue-2](https://redirect.github.com/tiptap/vue-2)@​2.23.1 ##### Patch Changes - [@&TryGhost#8203;tiptap/extension-bubble-menu](https://redirect.github.com/tiptap/extension-bubble-menu)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-floating-menu](https://redirect.github.com/tiptap/extension-floating-menu)@​2.23.1 #### [@&TryGhost#8203;tiptap/vue-3](https://redirect.github.com/tiptap/vue-3)@​2.23.1 ##### Patch Changes - [@&TryGhost#8203;tiptap/extension-bubble-menu](https://redirect.github.com/tiptap/extension-bubble-menu)@​2.23.1 - [@&TryGhost#8203;tiptap/extension-floating-menu](https://redirect.github.com/tiptap/extension-floating-menu)@​2.23.1 </details> <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/extension-document)</summary> ### [`v2.23.1`](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) </details> <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/extension-hard-break)</summary> ### [`v2.23.1`](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) </details> <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/extension-link)</summary> ### [`v2.23.1`](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) </details> <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/extension-paragraph)</summary> ### [`v2.23.1`](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) </details> <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/extension-placeholder)</summary> ### [`v2.23.1`](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) </details> <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/extension-text)</summary> ### [`v2.23.1`](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) </details> <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/pm)</summary> ### [`v2.23.1`](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) </details> <details> <summary>ueberdosis/tiptap (@&TryGhost#8203;tiptap/react)</summary> ### [`v2.23.1`](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) [Compare Source](https://redirect.github.com/ueberdosis/tiptap/compare/v2.23.0...6700c3e7767e6940917743a3f9c03bcbe13b47af) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - Between 05:00 PM and 11:59 PM, only on Friday ( * 17-23 * * 5 ), Only on Sunday and Saturday ( * * * * 0,6, ), Between 12:00 AM and 12:59 PM, only on Monday ( * 0-12 * * 1 ) (UTC). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/TryGhost/Ghost). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ref TryGhost@71967d3 We want the filterFeatures function to always run, otherwise if we don't have a limiter, it never runs and populates the `allowedFeatures` array.
ref TryGhost@3181686 The e2e tests are still failing quite frequently after increasing the timeout. This commit adds debug logging to the `Start Ghost` step which seems to be hanging or timing out. It also removes portal, comments, announcementBar, etc apps from the command, which may be contributing to resource limitations in the Github Actions runner. Hopefully removing the apps will help Ghost boot more reliably in these tests, and if not hopefully the debug logging will point to what's going wrong.
ref https://linear.app/ghost/issue/PROD-1961/remove-the-tracker-token-from-ghost-config-and-tracker-script The `ghost-stats.js` script has always required a tracker token to be provided via data attribute rendered by ghost_head. When sending events directly to Tinybird without the analytics service between them, this is a hard requirement. But now that the analytics service has its own tracker token, this is no longer a required value for the `ghost-stats` script, and shouldn't be used in production at all. Sometimes it is useful to setup Ghost with a tracker token in local development though, so this makes the token optional from the perspective of the `ghost-stats` script, and changes `ghost_head` so the token is only rendered if `NODE_ENV` is not production.
…apps (TryGhost#24203) The first requests directly to the Tinybird APIs after a page load are returning a 403 in some cases, because the requests aren't waiting for the token to load from the API. This commit adds a custom hook to `admin-x-framework` that wraps Tinybird's `useQuery()` hook for making requests to Tinybird, and includes the logic to delay the request until the token is returned from Ghost's API. --------- Co-authored-by: Steve Larson <[email protected]>
ref https://linear.app/ghost/issue/PROD-2221/ - instead of showing an empty chart, we show a line at zero when there's no data returned
ref https://linear.app/ghost/issue/PROD-2178/handling-empty-states - Fixed empty state for visitors chart on the overview - Added empty state for latest posts - Added empty state for top posts - Updated empty state of newsletters charts and table - Updated empty state of locations view
ref TryGhost/Ghost-CLI#1952 (comment) ref TryGhost@3c5f111 ref TryGhost#23589 - I've been trying to resolve issues with our api tokens that were surfaced when we added 2FA to user auth, meaning many tools need to swap to using API tokens - As well as finding that our staff tokens didn't have the same permissions as the user they represent we also discovered that the backup integration wasn't that useful, as it couldn't do a member export - Turns out it also can only do a db backup, and not a db export, despite having all permissions on the DB because of our "NotImplemented" middleware - This PR solves that last problem, giving integrations GET on the /db/ endpoint. This doesn't really change any permissions as they already have POST, allowing them to do a backup. - Note: this changes the response when Zapier tries to do an export - it's still not permitted, but now it gets a 403 no permission error, instead of 501. As of TryGhost#24209 this will be true for all of these errors anyway.
ref https://linear.app/ghost/issue/PROD-2178/handling-empty-states - Added empty states to Growth sources and Web visitors charts - Updated web overview on post analytics right after posting - Updated post placeholder image when missing feature image
ref https://linear.app/ghost/issue/FEA-279/admin-longer-staff-bios Increases the soft limit on users.bio from 200 to 250 characters
no ref - The currently available help cards were missing from the overview page in site-wide analytics
ref https://linear.app/ghost/issue/ENG-2433/ - breadcrumb will now show analytics instead of posts, including the tab - solution doesn't require the beta flag because we're directly parsing the url to return to, and only in the case of coming from analytics.
# Conflicts: # apps/admin-x-activitypub/package.json # ghost/core/core/server/services/email-service/BulkEmailProvider.js # ghost/core/core/server/services/email-service/EmailServiceWrapper.js # ghost/core/core/server/services/email-service/MailgunEmailProvider.js # ghost/core/package.json # ghost/core/test/unit/server/services/email-service/bulk-email-provider.test.js # ghost/core/test/unit/server/services/email-service/mailgun-email-provider.test.js # ghost/email-service/index.js # ghost/email-service/lib/MailgunEmailProvider.js # ghost/email-service/test/mailgun-email-provider.test.js
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.