Skip to content

TAN-7916: Use the Content Builder for all project and folder descriptions#14065

Open
EdwinKato wants to merge 119 commits into
masterfrom
TAN-7916-content-builder-all-descriptions
Open

TAN-7916: Use the Content Builder for all project and folder descriptions#14065
EdwinKato wants to merge 119 commits into
masterfrom
TAN-7916-content-builder-all-descriptions

Conversation

@EdwinKato

@EdwinKato EdwinKato commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

with Claude's help

Use the Content Builder for all project and folder descriptions

All project and folder descriptions now live on the Content Builder — there is a single description format and a single editing surface, with no WYSIWYG (classic) editor.

Three mechanisms combine so that no description is ever off the Content Builder:

  • New buildables are provisioned with an enabled Content Builder description layout at creation (project → empty canvas; folder → title + published-projects layout).
  • All existing buildables are moved onto the builder by a single one-time migration: non-blank descriptions are wrapped in a lossless bridge widget (RichTextMultiloc, preserving text, images, videos and CTA buttons); blank descriptions are given a default layout.
  • The editor is now link-only ("Edit description in Content Builder"); the toggle, the inline WYSIWYG editor and the conditional lock are gone.

description_multiloc is retained, untouched, as a recoverable safety net (it is sunset later in a separate release).

Deployment

This PR ships code only — the migration is a no-op until the rake task is run. The task processes all (creation-finalized) tenants in a single run. Dry-run first and capture the output with tee.

# 1. Dry run, all tenants — no DB writes. Review the counts.
docker compose run --rm web bundle exec rake single_use:migrate_descriptions_to_content_builder DRY_RUN=true | tee descr_dry_run.log

# 2. Run for real, all tenants.
docker compose run --rm web bundle exec rake single_use:migrate_descriptions_to_content_builder | tee descr_migration.log
  • Optional: HOST=<host> scopes the run to a single tenant (handy for a spot-check before the full run); omit it to process all tenants at once.
  • The summary reports: migrated (projects/folders), new layouts, re-enabled disabled "stragglers" (and how many held builder content), blank descriptions given a default layout, skipped (already on the builder), and errors.
  • Safety net: description_multiloc is never modified, and before a disabled layout that held builder content is overwritten its previous craftjs_json is written to the log, so any overwrite is recoverable. The task is idempotent — re-running skips buildables already on the builder.

Changelog

Changed

  • Project and folder descriptions are now edited exclusively in the Content Builder. New projects and folders are set up on the Content Builder automatically, and existing classic-editor (WYSIWYG) descriptions are migrated across losslessly — text, images, videos and CTA buttons are preserved.
  • A folder can now be created without a description; its description is added in the Content Builder afterwards.

Technical

  • New project/folder descriptions are provisioned with an enabled Content Builder layout at creation via a content_builder engine patch on the project/folder side-effect services (ContentBuilder::DescriptionLayoutService).
  • The one-time migration now backfills every buildable, including blank descriptions (default layout), and reports migration errors to ErrorReporter.

For translators

  • Removed two unused strings: app.containers.AdminPage.ProjectDescription.toggleLabel and app.containers.AdminPage.ProjectDescription.toggleTooltip (the description-builder toggle they labelled has been removed). extract-intl will drop them from the locale files.

@notion-workspace

Copy link
Copy Markdown

@cl-dev-bot

cl-dev-bot commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator
Messages
📖 Changelog provided 🎉
📖 Notion issue: TAN-7916
📖

Run the e2e tests

📖 Check translation progress

Generated by 🚫 dangerJS against 916aec4

@EdwinKato EdwinKato changed the title TAN-7916: Migrate WYSIWYG descriptions to a Content Builder bridge widget TAN-7916: Migrate WYSIWYG descriptions to the Content Builder and lock the editor toggle Jun 15, 2026
EdwinKato and others added 30 commits June 17, 2026 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants