fix(control-center): make Growth language-first - #416
Closed
i-xtsu-sixyou-ken-mei wants to merge 6 commits into
Closed
fix(control-center): make Growth language-first#416i-xtsu-sixyou-ken-mei wants to merge 6 commits into
i-xtsu-sixyou-ken-mei wants to merge 6 commits into
Conversation
This was referenced Sep 8, 2026
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 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.
Intent
Make the Growth tab reflect the actual social publishing contract: one article is released to every active platform together, while language is the only lane-level variable.
Context
The current Growth UI still exposes stale per-platform content recommendations such as
Prioritize <topic>, title-shaping advice, and Rednote-specific hashtag guidance. That conflicts with the current shared release cohort and language-rotation model.LatestEpisodePanelalso renders a bare metric number without saying it is views, hardcodes24heven when the response window islatest, and loses a published platform entirely when that platform has no usable metric snapshot.Scope
viewsexplicitly.post_url.Out of scope
Product contract / invariants
Affected invariant:
apps/podcast-pipeline/AGENTS.md/ social release contract: each episode releases as one cross-platform cohort; language coverage/rotation remains the lane-level variation.Why:
The UI is being aligned with the existing release invariant rather than presenting obsolete per-platform content decisions.
Acceptance criteria
Prioritize <topic>,Shape the title like this, orWhat to publish next.viewslabel.Implementation
GrowthView.tsxnow rendersPublishingCadence,LanguagePerformanceCard, and a window-awareLatestEpisodePanel.buildEpisodes()now builds summaries from published posts even when no usable metric exists, preservingpostUrlwith null metric fields.buildEpisodes()trackslanguage_codeand replaces a fallback title with the zh-Hant published title when available.Contract alignment
AGENTS.mdremains accurate.Validation
main.09:30,12:00,16:00, so the existing repository contract check continues to compare the same values.Validation gaps
Executable test/type-check commands could not be run in the connector-only environment. CI should run the repository gates on this PR.
Known unrelated failures
None known.
Reviewer notes
Please scrutinize the
buildEpisodes()behavior change: a published lane with unavailable/no standardized metric now intentionally survives into the episode summary with null metric fields so the UI can expose its post link and collection gap.