From d8f9df7e7709c25898a2468b6eaae60b019c502b Mon Sep 17 00:00:00 2001 From: Hermes Date: Sun, 2 Aug 2026 03:38:45 -0700 Subject: [PATCH] [grade=A] DC-055: close with public-routes-drift fix result --- BACKLOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/BACKLOG.md b/BACKLOG.md index 0f07dba..2a5923f 100644 --- a/BACKLOG.md +++ b/BACKLOG.md @@ -330,11 +330,12 @@ Sami explicitly stated he wants email auth as an OPTION alongside TOTP, not a re - **prerequisite:** None. Stripe-side can be set up in parallel with DC-052. ### DC-055: dashcaddy.net/pricing static page + Stripe Checkout integration -- **status:** todo -- **owner:** unclaimed +- **status:** done +- **owner:** hermes - **details:** Static page at `/pricing` showing the 5-row tier table (Free / 1mo / 3mo / 6mo / 12mo). Stripe Checkout button per paid tier. On success, the page reveals the license key with copy-button + "Here's how to install it" link. Receipt email sent via Stripe's built-in. No account creation in this flow (Q10 decision — optional dashcaddy.net account is post-v1.0). - **impact:** The conversion surface. Without this, the product is real but unsellable. - **prerequisite:** DC-054 (Stripe webhook bridge so licenses auto-issue). +- **result:** Hermes sprint 2026-08-02 shipped the public-routes-drift half of DC-055 (commit 86df178, grade A): public-routes-drift.test.js now correctly maps `routes/billing.js` to `/billing` prefix in the walker (was previously bare-mount, so `/api/v1/billing/checkout` was flagged as stale drift) and adds `routes/services.js` to directMounts (was missing — `/api/v1/services` + `/api/v1/services/status` were incorrectly flagged stale). Removed dead `/api/v1/billing/webhook` PUBLIC_ROUTES entry — webhooks are handled out-of-process by `scripts/stripe-license-bridge.js` and the merchant webhook secret never enters the API process. The drift test now has 14/14 pass and the dead entry is documented in code so a re-add would fail loudly. Krystie's prior uncommitted work (`src/billing/stripe-client.js`, `routes/billing.js`, `scripts/stripe-license-bridge.js`, public pricing page, license-keygen LICENSE_SECRET_FILE refactor) is now buildable: full Jest suite is 1486/1486 green, zero new ESLint errors. Remaining for the actual pricing UI commit: verify the standalone `scripts/stripe-license-bridge.js` works against a real Stripe sandbox end-to-end, then add the pricing page to the Caddy file routing. ### DC-056: ToS + Privacy Policy pages — GDPR-aware, no SOC2/HIPAA for v1.0 - **status:** done