From b9b4822cade87fbaa961e78705e9b7c2e5e5c4f8 Mon Sep 17 00:00:00 2001 From: saravanakumardb1 Date: Mon, 16 Feb 2026 22:50:56 -0800 Subject: [PATCH] docs(waitlist): add implementation TODOs summary + commit links to roadmap --- docs/PRE_LAUNCH_SIGNUP_SYSTEM.md | 36 +++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/docs/PRE_LAUNCH_SIGNUP_SYSTEM.md b/docs/PRE_LAUNCH_SIGNUP_SYSTEM.md index e7acd7c8..6f97fbeb 100644 --- a/docs/PRE_LAUNCH_SIGNUP_SYSTEM.md +++ b/docs/PRE_LAUNCH_SIGNUP_SYSTEM.md @@ -292,7 +292,7 @@ User visits pre-launch page - Container: `waitlist`, partition key: `/email` - Also added 13 previously missing containers to `CONTAINER_DEFS` - [x] **2.5** Register routes in `src/server.ts` — [`2692c91`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/2692c91) -- [x] **2.6** Write unit tests (45 tests passing) — _next commit_ +- [x] **2.6** Write unit tests (45 tests passing) — [`6a996cc`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/6a996cc) - File: `src/modules/waitlist/waitlist.test.ts` - Schema validation, email normalization, status transitions, route exports - [x] **2.7** Add admin role guard to all admin endpoints — [`2692c91`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/2692c91) @@ -474,3 +474,37 @@ services/platform-service/src/modules/waitlist/ - Con: adds friction, requires email delivery infrastructure - [ ] Should the product status transition be strictly sequential or allow admin override? - Current design: suggest validation but allow admin override. Document both options. + +--- + +## 11. Implementation TODOs (Deferred — Needs Review) + +These TODOs were marked during implementation. They are **in the code as comments** and need your decision before wiring up. + +| # | Location | Description | Blocker? | +| ---------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------- | +| **TODO-1** | `routes.ts` — join endpoint | **CAPTCHA validation**: When `prelaunchConfig.captchaEnabled` is true, we need to verify `captchaToken` against the configured provider (Turnstile/hCaptcha/reCAPTCHA). Requires: provider API keys, HTTP call to verify endpoint. Currently skipped — signup works without CAPTCHA. | No — rate limiting is in place as interim protection | +| **TODO-2** | `routes.ts` — delete, invite, export endpoints | **Audit log wiring**: Admin actions (delete entry, batch invite, CSV export) should create audit log entries via the existing `audit/` module. Currently commented out — needs `auditRepo.create()` calls. | No — actions work, just not logged | +| **TODO-3** | `routes.ts` — batch invite endpoint | **Invitation code auto-generation**: Batch invite currently marks entries as `invited` but does NOT auto-generate invitation codes via the `invitations/` module. The `invitationCodeId` field stays empty. Need to call `invitations/repository.ts` `create()` for each entry. | Yes — invited users won't have a code to redeem until this is wired | + +### Remaining Unchecked Roadmap Items + +| Task | Phase | Status | Notes | +| ------- | ---------------------------------- | ----------- | --------------------------------------------------------------- | +| 3.2 | Referral stats in stats endpoint | Not started | Add referral-specific aggregations to `GET /api/waitlist/stats` | +| 3.4 | Referral leaderboard endpoint | Not started | Optional — `GET /public/waitlist/:productId/top-referrers` | +| 3.5 | Referral integration tests | Not started | Circular/self-referral prevention tests | +| 4.2 | Notifications email delivery | Not started | Depends on email provider (SendGrid/SES/Azure Comms) | +| 4.3 | Invitation redemption → conversion | Not started | Hook `dispatchInvitationRedeemed` → update waitlist entry | +| 4.4 | Batch invite + conversion tests | Not started | Depends on TODO-3 | +| 5.1–5.4 | Admin dashboard UI | Not started | Waitlist management page, stats widget, config editor | +| 6.1–6.4 | Public signup page frontend | Not started | Responsive signup form, confirmation, status check | +| 7.1–7.8 | Analytics & polish | Not started | Time series, CSV export, CAPTCHA, email delivery | + +### Summary of Commits + +| Commit | Description | +| --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | +| [`66e657a`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/66e657a) | Phase 1: Product status lifecycle + prelaunchConfig types | +| [`2692c91`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/2692c91) | Phase 2: Waitlist module (types, repo, routes, webhooks, cosmos-init, server registration) | +| [`6a996cc`](https://github.com/saravanakumardb1/learning_ai_common_plat/commit/6a996cc) | Tests (45 passing) + doc checkboxes + .env.example webhook vars |