Skip to content

OpenConceptLab/ocl_online#299 | Banner: subscription dates (Nov 1 / Dec 1 grace period), "Learn more" and "See pricing" - #54

Merged
paynejd merged 1 commit into
masterfrom
OpenConceptLab/ocl_online#299-subscription-banner
Oct 1, 2026
Merged

paynejd merged 1 commit into
masterfrom
OpenConceptLab/ocl_online#299-subscription-banner

Conversation

@paynejd

@paynejd paynejd commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

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_ID is now subscription-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 ·:

    • Learn more (announcement.link_label, unchanged) → the letter to the OCL community
    • See pricing (new announcement.pricing_label) → /pricing

    Both 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_URL becomes TBV2_ANNOUNCEMENT_LEARN_MORE_URL and TBV2_ANNOUNCEMENT_PRICING_URL, both tagged utm_source=tbv2&utm_medium=banner&utm_campaign=subscription_dates.

  • translations.json (en, es, zh): new announcement.title and announcement.text, plus announcement.pricing_label. link_label and dismiss keep their values.

Title Text Links
en Subscriptions open November 1. Existing accounts using premium features have a grace period until December 1. Learn more · See pricing
es Las suscripciones abren el 1 de noviembre. Las cuentas existentes que usan funciones premium tienen un periodo de gracia hasta el 1 de diciembre. Más información · Ver precios
zh 订阅将于 11 月 1 日开放。 使用高级功能的现有账户可享受宽限期至 12 月 1 日。 了解更多 · 查看价格

Test Plan

  • CI's PR-check commands, run locally in Docker node:14 (amd64, as on the runner):
    • the start-prod.sh secret-shape check passes.
    • npm ci passes.
    • ./node_modules/eslint/bin/eslint.js --ext .jsx,.js src/ is clean.
  • The repo has no unit tests, and nothing else referenced the old id, URL constant or copy.
  • All three locale files parse as JSON and carry the same announcement.* keys.
  • Ran the dev server (Docker node:14) and loaded the app in a browser:
    • At 1280px the strip is one line: title, text, then "Learn more · See pricing".
    • At 375px the text wraps to three lines and "See pricing" moves to the next line whole. Each link is a single line box with white-space: nowrap, there's no horizontal scroll, and the app bar sits below the strip.
    • Both links open in a new tab with the URLs above. The console shows no warnings from the banner.
  • On this PR, "PR checks / Eslint", CodeQL (actions, javascript-typescript, python) and Snyk all pass.

Notes

  • Don't merge until Jon's go.
  • The production deploy is manual.
  • This replaces the TBv3 nudge, which is intended.

🤖 Generated with Claude Code

https://claude.ai/code/session_019j2N6BFoNmA32L2DHKZV41

…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 paynejd self-assigned this Oct 1, 2026

@paynejd paynejd left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

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.

@paynejd
paynejd merged commit d292051 into master Oct 1, 2026
6 checks passed
@paynejd
paynejd deleted the OpenConceptLab/ocl_online#299-subscription-banner branch October 1, 2026 21:01
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.

1 participant