diff --git a/CHANGELOG.md b/CHANGELOG.md index bfcdb62..60f3e97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -62,13 +62,11 @@ numbers below were the site's earlier, hand-kept numbering and are retired; the 0.11.x builds too. - **`webStore`'s type is a named `Url`**, so Prettier 3.3 and 3.9 format `src/data/site.ts` the same way; the org lint gate (3.9.4) had flagged it. -- **After paying: a claim link, not a key.** The extension page's checkout - note now says the licence email carries a one-time link (never the key), - that it works once for 72 hours and a new one can be asked for, that - **Add it to Chrome** adds the licence with no key to copy, and that a - school licence's buyer sets it up through the Nyuchi console and Chrome - policy. Merge with the licence server's claim links - (nyuchi-licence-server, `claude/licence-onboarding`). +- **After paying: the checkout note describes today's email, a licence + key.** The claim-link wording (#89) is held back until the licence server + sends claim links, which ships with extension 0.12.0. Until then buyers + still receive the key by email, so the note says that. Restore #89 when + 0.12.0 and the server's claim links go live. - **0.10.0 is on the Chrome Web Store.** The Releases page shows it as on the store since 13 October 2026, and the test builds 0.9.9 and 0.9.10 open its notes. - **The Toddle Enhancement Extension 0.9.0 is on the Chrome Web Store**, published on 7 October 2026. The Releases page marks it "On the Chrome Web diff --git a/src/data/legal.ts b/src/data/legal.ts index e8b52a2..253c90c 100644 --- a/src/data/legal.ts +++ b/src/data/legal.ts @@ -82,7 +82,7 @@ export const pricing = [ price: "US$5", period: "per year", who: "One teacher.", - /** Checkout. Buy Me a Coffee for now; the licence arrives as a one-time claim link by email, never the key. */ + /** Checkout. Buy Me a Coffee for now; the key is issued by email. */ buy: "https://buymeacoffee.com/bryany/e/581737", includes: [ "Every assessment tool expanded into per-criterion columns", diff --git a/src/pages/toddle-enhancement-extension.astro b/src/pages/toddle-enhancement-extension.astro index 6f396a7..eb71a52 100644 --- a/src/pages/toddle-enhancement-extension.astro +++ b/src/pages/toddle-enhancement-extension.astro @@ -590,17 +590,12 @@ const schema = [

- Checkout is through Buy Me a Coffee. Usually within a minute of paying, you get an - email with a one-time link to your licence, never the key itself. Open it in - Chrome, click Add it to Chrome, and the extension adds your licence: - there is no key to copy. The link works once, for 72 hours; if it runs out, open - it anyway and ask for a new one, which goes to the same address. A school - licence's link goes to whoever bought it, who sets it up for every teacher - through the Nyuchi console and Chrome policy. Once added, your licence is - checked on your own machine, so it works offline, and it follows your Chrome - account to your laptop and your classroom desktop; Chrome's sync carries it, and - it is never sent to us. While a licence is in use, the extension checks at most - once a day for cancelled keys, sending nothing about you. + Checkout is through Buy Me a Coffee, and your licence key is emailed to you + automatically, usually within a minute of paying. It is checked on your own machine, so activating it contacts + nothing and works offline — and one key covers your laptop and your classroom + desktop. It follows your Chrome account, so you + enter it once; Chrome's sync carries it, and it is never sent to us. While a key is entered, the extension checks at most once a day for cancelled keys, + sending nothing about you.

Upgrading.{" "} diff --git a/tests/purchase.test.ts b/tests/purchase.test.ts deleted file mode 100644 index ac728c3..0000000 --- a/tests/purchase.test.ts +++ /dev/null @@ -1,44 +0,0 @@ -/** - * What a buyer is told happens after paying. The licence server emails a - * one-time claim link, never the key (nyuchi-licence-server: src/claims.js, - * CLAIM_TTL_S = 72 hours), so the page must not promise a key by email. - */ -import { describe, expect, it } from "vite-plus/test"; -import { readFileSync } from "node:fs"; -import { dirname, join } from "node:path"; -import { fileURLToPath } from "node:url"; - -const root = join(dirname(fileURLToPath(import.meta.url)), ".."); -const page = readFileSync( - join(root, "src/pages/toddle-enhancement-extension.astro"), - "utf8", -); -/* The paragraph under the plans, as one line of text. */ -const checkout = (() => { - const at = page.indexOf("Checkout is through Buy Me a Coffee."); - expect(at).toBeGreaterThan(-1); - return page - .slice(at, page.indexOf("

", at)) - .replace(/<[^>]+>/g, "") - .replace(/\s+/g, " "); -})(); - -describe("after paying", () => { - it("says the email carries a one-time link, never the key", () => { - expect(checkout).toContain( - "one-time link to your licence, never the key itself", - ); - expect(checkout).toContain("there is no key to copy"); - expect(page).not.toMatch(/licence key is emailed/); - }); - - it("says how long the link works, as the licence server does (72 hours)", () => { - expect(checkout).toContain("The link works once, for 72 hours"); - expect(checkout).toContain("ask for a new one"); - }); - - it("says how to use it, and how a school licence differs", () => { - expect(checkout).toContain("Add it to Chrome"); - expect(checkout).toContain("Nyuchi console and Chrome policy"); - }); -});