OpenConceptLab/ocl_online#299 | Banner: subscription dates (Nov 1 / Dec 1 grace period), "Learn more" and "See pricing" - #54
Merged
Conversation
…ec 1 grace period), "Learn more" and "See pricing" Replaces the TBv3 preview announcement with the subscription-dates one the community site shows, under the same announcement id, so the banner comes back for everyone who dismissed the previous one. - ANNOUNCEMENT_ID is now 'subscription-dates-2026-10'. - announcement.title and announcement.text carry the new dates (en/es/zh). - Two links, separated by " · ": "Learn more" (announcement.link_label, the launch letter) and "See pricing" (new announcement.pricing_label, /pricing). TBV2_ANNOUNCEMENT_URL becomes TBV2_ANNOUNCEMENT_LEARN_MORE_URL and TBV2_ANNOUNCEMENT_PRICING_URL, both with utm_campaign=subscription_dates. - Each link keeps its label on one line (whiteSpace: nowrap), so narrow screens wrap between the links rather than inside one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019j2N6BFoNmA32L2DHKZV41
paynejd
commented
Oct 1, 2026
paynejd
left a comment
Member
Author
There was a problem hiding this comment.
Codex adversarial review, pass 1 (codex-cli 0.159.2, commit b744b62)
Read-only. Posted verbatim. The destination pages it couldn't reach from its sandbox return 200 (checked after today's openconceptlab.org deploy).
Clean—no findings in git diff origin/master...HEAD.
Checked keys, both links, dismissal with the new ID, accessibility, external-link safety, single-line labels, es/zh translations, and URLs/UTM tags. ESLint, JSX compilation, in-memory rendering/dismissal checks, and git diff --check passed.
No files modified. Full build and browser layout weren’t tested; live URL reachability couldn’t be verified because network access failed.
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.
Linked Issue
Refs OpenConceptLab/ocl_online#299
Summary
Replaces TBv2's announcement banner (the "try TBv3" nudge) with the subscription-dates banner that openconceptlab.org shows from today, so every OCL app carries the same announcement.
AnnouncementBanner.jsx:ANNOUNCEMENT_IDis nowsubscription-dates-2026-10, the community site's id. A new id shows the banner again to everyone who dismissed the previous one. The single link becomes two, in this order, separated by·:announcement.link_label, unchanged) → the letter to the OCL communityannouncement.pricing_label) →/pricingBoth keep the existing link styling, open in a new tab as before, and add
whiteSpace: 'nowrap', so on narrow screens the text wraps between the links, never inside a label. The component records no GA events, before or after this change.constants.js:TBV2_ANNOUNCEMENT_URLbecomesTBV2_ANNOUNCEMENT_LEARN_MORE_URLandTBV2_ANNOUNCEMENT_PRICING_URL, both taggedutm_source=tbv2&utm_medium=banner&utm_campaign=subscription_dates.translations.json(en, es, zh): newannouncement.titleandannouncement.text, plusannouncement.pricing_label.link_labelanddismisskeep their values.Test Plan
node:14(amd64, as on the runner):start-prod.shsecret-shape check passes.npm cipasses../node_modules/eslint/bin/eslint.js --ext .jsx,.js src/is clean.announcement.*keys.node:14) and loaded the app in a browser:white-space: nowrap, there's no horizontal scroll, and the app bar sits below the strip.Notes
🤖 Generated with Claude Code
https://claude.ai/code/session_019j2N6BFoNmA32L2DHKZV41