Commit 3d34960
AI Launchpad: sidebar-top menu, entity decoding, id_map task dedupe (#50704)
* AI Launchpad: move the Site Setup menu item to the top of the sidebar
Site Setup is the primary surface while onboarding, so it now sits above
Dashboard (menu position 1) instead of just below it.
* AI Launchpad: decode HTML entities in user-generated content
blogname/blogdescription are stored HTML-escaped (sanitize_option runs
esc_html on save), and React escapes again on render, so titles like
"Copons' Travelogue" showed literal entities in the wizard Name and
description prefills and the preview-card title. Decode with
@wordpress/html-entities at the two places API data enters the client:
the app's initial read and the tailored list's refetch.
This also stops progressive double-escaping: finishing the wizard with
an unedited encoded prefill used to write the entities back through the
PUT, re-escaping them on every pass.
* AI Launchpad: collapse id_map twin tasks onto a single id
Four catalog id_map pairs sat on the AI task menu as two ids for the
same underlying task, so the model could offer both and users could see
near-duplicate cards. The menu now offers one of each pair — the one
with the stronger title/behavior:
- connect_social_media over drive_traffic (concrete title, already the
post_sharing_enabled remap target and CTA-override entry)
- first_post_published over first_post_published_newsletter (draft-aware
title; the AI subtitle carries the newsletter flavor)
- site_launched over link_in_bio_launched (identical titles, canonical id)
- import_subscribers over subscribers_added (the latter is gated on a
Calypso onboarding goal AI Launchpad users don't have)
Dropped ids stay valid on PUT and remap onto the kept twin on read (the
never-offered videopress_launched twin included), so persisted outputs
and stray AI emissions keep rendering; skips, listeners, analytics, and
the tracked_completed reporting baseline all follow the remap, keeping
completion events from re-firing under the new id.
drive_traffic's backfill-pool slot goes to mobile_app_installed, whose
completion is computed and self-caching, keeping the pool at the four
fillers the six-task floor needs; pool candidates now build one at a
time and stop at the target so its remote completion lookup is only
paid when the cheaper fillers were not enough.
Committed via a GitHub action: https://github.com/Automattic/jetpack/actions/runs/29910617692
Upstream-Ref: Automattic/jetpack@bcb3d9e1 parent 8363ce7 commit 3d34960
2 files changed
Lines changed: 8 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
946 | 946 | | |
947 | 947 | | |
948 | 948 | | |
949 | | - | |
| 949 | + | |
950 | 950 | | |
951 | 951 | | |
952 | 952 | | |
| |||
1100 | 1100 | | |
1101 | 1101 | | |
1102 | 1102 | | |
1103 | | - | |
| 1103 | + | |
1104 | 1104 | | |
1105 | 1105 | | |
1106 | 1106 | | |
| |||
1271 | 1271 | | |
1272 | 1272 | | |
1273 | 1273 | | |
1274 | | - | |
| 1274 | + | |
1275 | 1275 | | |
1276 | 1276 | | |
1277 | 1277 | | |
| |||
1804 | 1804 | | |
1805 | 1805 | | |
1806 | 1806 | | |
1807 | | - | |
| 1807 | + | |
1808 | 1808 | | |
1809 | 1809 | | |
1810 | 1810 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
946 | 946 | | |
947 | 947 | | |
948 | 948 | | |
949 | | - | |
| 949 | + | |
950 | 950 | | |
951 | 951 | | |
952 | 952 | | |
| |||
1100 | 1100 | | |
1101 | 1101 | | |
1102 | 1102 | | |
1103 | | - | |
| 1103 | + | |
1104 | 1104 | | |
1105 | 1105 | | |
1106 | 1106 | | |
| |||
1271 | 1271 | | |
1272 | 1272 | | |
1273 | 1273 | | |
1274 | | - | |
| 1274 | + | |
1275 | 1275 | | |
1276 | 1276 | | |
1277 | 1277 | | |
| |||
1804 | 1804 | | |
1805 | 1805 | | |
1806 | 1806 | | |
1807 | | - | |
| 1807 | + | |
1808 | 1808 | | |
1809 | 1809 | | |
1810 | 1810 | | |
| |||
0 commit comments