Simpl-Resultat/docs
le king fu 57a0fbc2f7
All checks were successful
PR Check — Frontend / frontend (pull_request) Successful in 1m42s
feat(upsell): activate "Get Base", honest Premium note, purchase path in Free, Account card text
- upsellCtaFor(tier) decides what a locked screen offers: Base is
  purchasable, Premium stays disabled with "Premium isn't sold online
  yet". Pure and tested on the whole entitlements matrix.
- Shared CTAs, one component per file: PurchaseButton ("Get Base") and
  DownloadLatestButton open the localized product page (purchaseUrl) and
  need no router; HaveKeyButton renders only inside BrowserRouter.
- UpsellGate uses them; the purchase link never calls onNavigate, so
  modal hosts stay open. ProfileFormModal reuses UpsellGate instead of
  its compact panel, keeps its Cancel button, and closes after "I
  already have a key" (onNavigate={onClose}).
- In Free, the Updates card offers Get Base, I already have a key and
  Download the latest version; the error page (outside the router)
  offers Get Base and the download link. No update check, no network
  call.
- i18n FR/EN: Account card text, Premium note, Updates notEntitled text,
  download label, editions guide step and tip; the "coming soon" note
  key is gone. Tests pin the upsell key set and the decided texts.
- Docs: ADR 0017 amendment, architecture (UpsellGate row, shared CTAs,
  upsellCtaFor, multi-profile row, counts), user guide section 12;
  CHANGELOG FR/EN.

Proven red: Premium made purchasable 2, balance sold as Base in the
matrix 4, the old note key back in a locale 1, Account text altered 1,
download label altered 1.

Fixes #346

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-27 15:50:45 -04:00
..
adr feat(upsell): activate "Get Base", honest Premium note, purchase path in Free, Account card text 2026-09-27 15:50:45 -04:00
archive docs: organize technical documentation into docs/ folder 2026-02-19 07:34:01 -05:00
api-contract-prices.md docs: replace JWT-like Bearer placeholder with <license-token> (#181) 2026-05-02 16:05:20 -04:00
architecture.md feat(upsell): activate "Get Base", honest Premium note, purchase path in Free, Account card text 2026-09-27 15:50:45 -04:00
audit-bilan-2026-05.md feat(balance): audit quick wins — terminology, optional symbol, movable snapshot date (#201) 2026-05-31 21:05:13 +00:00
guide-utilisateur.md feat(upsell): activate "Get Base", honest Premium note, purchase path in Free, Account card text 2026-09-27 15:50:45 -04:00
qa-refonte-seed-categories-ipc.md test(categories): complete test coverage for migration flow (#123) 2026-04-21 19:25:13 -04:00
qa-update-cycle.md docs(qa): the update-cycle trace lives in the release body, not a comment 2026-09-13 14:01:25 -04:00