Repository navigation
[pull] main from TryGhost:main - #1442
Merged
Merged
Conversation
Missing documentation, explaining how everything is meant to fit together.
Feature flags are one of the most critical parts of how we build and ship new code safely.
…30255) ref https://linear.app/ghost/issue/HKG-1996/update-mailgun-event-alert-for-background-job-logs - The `ghost/email-analytics-failing` Elastic rule counted log lines matching `[EmailAnalytics] Job complete`. HKG-1990 reworded that string to the shared `[Background Job]` format, so the count went to zero and the rule fired continuously. Mailgun ingestion was never affected. - Rewording a human-readable message should not be able to break an alert. This emits the completion as structured fields so the rule can key on `system.event` and `system.job_type` instead of a message regex. - Uses the `system: {event, job_type, duration_ms}` shape the jobs service already logs completions with (per review), extended with `task` for the sub-fetch and `event_count` for the processed events. `system.*` is the namespace existing Elastic rules already query, and remote-flags and gifts emit `system.event` in production today, so indexing is verifiable up front. - No behaviour change: same call site, same conditions, same message text. `_logJobCompletion` still returns early at zero events, so these documents continue to mean "events were actually processed". - Only this one call site is converted; the other background jobs keep their message-only logging for now.
no ref - lazy-require archiver when site exporter is actually called, instead of on boot
no ref - x402 adapters dependencies were loaded unconditionally on boot due to configuration defaults, even if machinePayments is not configured or enabled - adds a enabled flag to x402 config block to only load deps when actually used
no ref Private-site landing pages bypass ghost_head, so they did not identify their Ghost version like other frontend pages.
no ref - enabled is now set to true by default - lazy-load x402 modules on first payment challenge, mirroring the mppx adapter
ref https://linear.app/ghost/issue/BER-3891/ Free members choose paid plans from their account after signing in, so the signup gift promotion was never rendered for them. This reuses the signup promotion beneath the plan picker while preserving its existing setting, labs flag, and giftable offering gates.
Ref https://linear.app/ghost/issue/BER-3852 The signup gift promotion sat inline after "Already a member?", separated by a middle dot, which crowded the footer and read as one long run-on line. It now sits on its own row below. Portal gift entry points now lead with the same gift icon Admin uses (Lucide's Gift), tinted with the brand colour to match the link text. The shared renderer keeps signup and free-member plan selection aligned. In Admin, the "Display option to purchase gift" toggle moved to the bottom of the signup options form, grouping it with the other display-level settings instead of splitting the name and tier controls.
Closes https://linear.app/ghost/issue/BER-3874/hide-gift-card-and-email-preview-graphical-elements-on-mobile The gift purchase screen stacked its preview panel above the form below 880px. It's now hidden there, with the back and close controls aligned on one row above the form.
no ref Full conversion of the acceptance specs that predated (or drifted from) the harness conventions — everything routes through screen helpers + the `@tryghost/test-data` selector registry; assertion meaning unchanged (`git diff` adds/removes zero `it(` lines).
no ref The unit lane carried four copies of the boot payloads and three unrelated MSW idioms. Now: `@tryghost/test-data` is the one fixture source and `serverFixture` the one MSW idiom.
no ref Co-authored-by: UserExistsError <23325451+UserExistsError@users.noreply.github.com>
no ref The `appSettings` context (framework `AppProvider`/`AppContext` + the admin wrapper deriving a 5-key object from `useBrowseSettings`) duplicated settings reads at ~35 sites. Named selector hooks on the settings query replace it; both providers are deleted.
no ref `@tryghost/shade/app` carried analytics and member domain functions plus a Koenig loader in the design-system context. They now live with their domains; the `/app` entry is design-system-only (`ShadeApp`, `ShadeAppProps`, `useFocusContext`).
ref https://linear.app/ghost/issue/GVA-982 This is an experiment. This change adds a AI help chat, powered by DocsBot, behind a config gate: ``` "docsbot": { "enabled": true, "id": "..." }, ```
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
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
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 : )