Skip to content

Removed unused Ember onboarding checklist#27768

Merged
kevinansfield merged 1 commit into
TryGhost:mainfrom
kevinansfield:codex/remove-ember-onboarding-cleanup
May 11, 2026
Merged

Removed unused Ember onboarding checklist#27768
kevinansfield merged 1 commit into
TryGhost:mainfrom
kevinansfield:codex/remove-ember-onboarding-cleanup

Conversation

@kevinansfield
Copy link
Copy Markdown
Member

@kevinansfield kevinansfield commented May 7, 2026

ref https://linear.app/ghost/issue/BER-3624/

What changed

  • Removed the old Ember onboarding checklist components, helpers, and share modal.
  • Reduced the remaining Ember onboarding service to only initialize preferences before handing off to React.
  • Removed retired dashboard CSS and stale dashboard-derived selectors from the Ember admin styles.
  • Updated Ember onboarding acceptance coverage to focus on the setup-to-React handoff.

Why

The onboarding checklist now lives in React, so the old Ember implementation and its dashboard-era styling were dead code still shipping in the admin bundle.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 7, 2026

Review Change Stack
No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 015f16ed-522c-463a-a1a4-29399217b115

📥 Commits

Reviewing files that changed from the base of the PR and between 9dd6f95 and 7879328.

📒 Files selected for processing (13)
  • ghost/admin/app/components/dashboard/onboarding-checklist.hbs
  • ghost/admin/app/components/dashboard/onboarding-checklist.js
  • ghost/admin/app/components/dashboard/onboarding/share-modal.hbs
  • ghost/admin/app/components/dashboard/onboarding/share-modal.js
  • ghost/admin/app/components/dashboard/onboarding/step.hbs
  • ghost/admin/app/helpers/is-onboarding-step-completed.js
  • ghost/admin/app/helpers/onboarding-step-class.js
  • ghost/admin/app/services/onboarding.js
  • ghost/admin/app/styles/app-dark.css
  • ghost/admin/app/styles/app.css
  • ghost/admin/app/styles/layouts/content.css
  • ghost/admin/app/styles/layouts/dashboard.css
  • ghost/admin/tests/acceptance/onboarding-test.js
💤 Files with no reviewable changes (10)
  • ghost/admin/app/components/dashboard/onboarding/step.hbs
  • ghost/admin/app/components/dashboard/onboarding-checklist.js
  • ghost/admin/app/helpers/onboarding-step-class.js
  • ghost/admin/app/styles/app.css
  • ghost/admin/app/components/dashboard/onboarding/share-modal.hbs
  • ghost/admin/app/components/dashboard/onboarding-checklist.hbs
  • ghost/admin/app/styles/layouts/content.css
  • ghost/admin/app/components/dashboard/onboarding/share-modal.js
  • ghost/admin/app/helpers/is-onboarding-step-completed.js
  • ghost/admin/app/styles/app-dark.css
🚧 Files skipped from review as they are similar to previous changes (1)
  • ghost/admin/tests/acceptance/onboarding-test.js

Walkthrough

This pull request removes the Ember-based onboarding checklist UI from the dashboard and simplifies the onboarding service to coordinate with a React-based onboarding implementation. The change deletes seven Ember components and helpers, refactors the OnboardingService to remove public getters and action methods while retaining startChecklist to initialize onboarding state, updates stylesheet imports to replace dashboard.css with billing/post-history/post-preview layouts, removes onboarding and attribution box styling rules, and refactors acceptance tests to validate service state initialization and React redirect behavior for owner and non-owner users.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and concisely summarizes the main change: removal of unused Ember onboarding checklist components and related code.
Description check ✅ Passed The description is directly related to the changeset, providing clear context about what was removed, why it was removed, and the migration to React-based onboarding.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Comment @coderabbitai help to get the list of available commands and usage tips.

@kevinansfield kevinansfield marked this pull request as ready for review May 7, 2026 12:58
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
ghost/admin/app/services/onboarding.js (1)

6-17: 💤 Low value

Consider guarding against overwriting existing onboarding state.

startChecklist() unconditionally overwrites any existing userSettings.onboarding data. If called more than once (e.g., user revisits /setup/done), this would reset progress like completedSteps and startedAt.

If the route already guards against re-entry for users with existing onboarding state, this is fine. Otherwise, a simple guard would prevent accidental resets:

🛡️ Optional guard to preserve existing onboarding state
 async startChecklist() {
     const userSettings = JSON.parse(this.session.user.accessibility || '{}');

+    if (userSettings.onboarding) {
+        return; // Already initialized
+    }
+
     userSettings.onboarding = {
         completedSteps: [],
         checklistState: 'started',
         startedAt: new Date().toISOString()
     };

     this.session.user.accessibility = JSON.stringify(userSettings);
     await this.session.user.save();
 }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ghost/admin/app/services/onboarding.js` around lines 6 - 17, startChecklist
currently unconditionally replaces
session.user.accessibility.userSettings.onboarding and will reset progress;
modify startChecklist to first parse this.session.user.accessibility into
userSettings and check if userSettings.onboarding already exists and is an
object—if it does, do not overwrite existing
completedSteps/checklistState/startedAt (or only set missing fields like
checklistState='started' when absent); if onboarding is absent, initialize it as
now; after merging/preserving existing fields, stringify back to
this.session.user.accessibility and call await this.session.user.save(). Use the
function name startChecklist and properties this.session.user.accessibility,
userSettings.onboarding, and this.session.user.save to locate the change.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@ghost/admin/app/services/onboarding.js`:
- Around line 6-17: startChecklist currently unconditionally replaces
session.user.accessibility.userSettings.onboarding and will reset progress;
modify startChecklist to first parse this.session.user.accessibility into
userSettings and check if userSettings.onboarding already exists and is an
object—if it does, do not overwrite existing
completedSteps/checklistState/startedAt (or only set missing fields like
checklistState='started' when absent); if onboarding is absent, initialize it as
now; after merging/preserving existing fields, stringify back to
this.session.user.accessibility and call await this.session.user.save(). Use the
function name startChecklist and properties this.session.user.accessibility,
userSettings.onboarding, and this.session.user.save to locate the change.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c4569e1b-f922-4bfd-9ffc-326c6dc453b6

📥 Commits

Reviewing files that changed from the base of the PR and between 59b314d and 9dd6f95.

📒 Files selected for processing (13)
  • ghost/admin/app/components/dashboard/onboarding-checklist.hbs
  • ghost/admin/app/components/dashboard/onboarding-checklist.js
  • ghost/admin/app/components/dashboard/onboarding/share-modal.hbs
  • ghost/admin/app/components/dashboard/onboarding/share-modal.js
  • ghost/admin/app/components/dashboard/onboarding/step.hbs
  • ghost/admin/app/helpers/is-onboarding-step-completed.js
  • ghost/admin/app/helpers/onboarding-step-class.js
  • ghost/admin/app/services/onboarding.js
  • ghost/admin/app/styles/app-dark.css
  • ghost/admin/app/styles/app.css
  • ghost/admin/app/styles/layouts/content.css
  • ghost/admin/app/styles/layouts/dashboard.css
  • ghost/admin/tests/acceptance/onboarding-test.js
💤 Files with no reviewable changes (10)
  • ghost/admin/app/styles/app.css
  • ghost/admin/app/components/dashboard/onboarding/step.hbs
  • ghost/admin/app/helpers/is-onboarding-step-completed.js
  • ghost/admin/app/components/dashboard/onboarding-checklist.hbs
  • ghost/admin/app/helpers/onboarding-step-class.js
  • ghost/admin/app/components/dashboard/onboarding/share-modal.js
  • ghost/admin/app/components/dashboard/onboarding-checklist.js
  • ghost/admin/app/components/dashboard/onboarding/share-modal.hbs
  • ghost/admin/app/styles/app-dark.css
  • ghost/admin/app/styles/layouts/content.css

no issue

The onboarding checklist now lives in React, so the old Ember components, helpers, dashboard styles, and checklist-specific tests no longer need to ship in the admin bundle.
@kevinansfield kevinansfield force-pushed the codex/remove-ember-onboarding-cleanup branch from 9dd6f95 to 7879328 Compare May 11, 2026 11:50
@kevinansfield kevinansfield enabled auto-merge (squash) May 11, 2026 12:15
@kevinansfield kevinansfield merged commit 39614f9 into TryGhost:main May 11, 2026
41 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants