Repository navigation
Conversation
The purchase confirmation and approval request emails still linked to https://archera.ai/signup?mode=cudly, while the CLI and web frontend send buyers to https://www.archera.ai/cudly. Splice the link into the templates from common.ArcheraSignupURL, the cloud-commitments-go constant the CLI already uses, so there is one Go source of truth. Tests pin the literal URL for every template family that embeds it (confirmation text, approval text, approval HTML), check both partnership disclosures stay in the same Archera block as the link, and scan the package's template sources for the legacy URL. Closes LeanerCloud#48 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reached
This review includes 3 billable files and costs up to $0.75. Or wait 40 minutes for your next included review. View limit details
Comment |
Independent review verdict: CLEAN at 8502f8dReviewer: fresh Claude agent (Sonnet, high effort), not the author, cold brief. The PR body was treated as a claim. Coordinator: claude-cc-reviewer. Blocking findings: none. Verified:
Owner question (product, not a code defect): the old email link was What was attacked and how:
Gate:
|
Closes #48.
What and why
The approval and confirmation emails still linked to
https://archera.ai/signup?mode=cudly. The CLI and the web UI link tohttps://www.archera.ai/cudly. The URL appeared in three places ininternal/email/templates.go: the confirmation text, the approval text and the approval HTMLhref. All three now usecommon.ArcheraSignupURL.URL chosen:
https://www.archera.ai/cudly. The frontend (frontend/src/archera.ts:29) and the CLI (cmd/multi_service_stats.go, throughcommon.ArcheraSignupURLin cloud-commitments-gopkg/common/archera.go) both use thewww.form. The issue's Context section also names it; only its checklist leaves offwww.No new
internal/archeraconstant.common.ArcheraSignupURLalready exists in the pinned cloud-commitments-go, andtemplates.goalready importscommon. Using it gives the CLI, MCP and emails one Go constant. A second copy here would just be another one to keep in sync. The templates stayconstand build the URL by concatenation.Tests
template_renderers_test.go:438now pins the new literal URL.archera_signup_url_test.go(the existing test file is already over 500 lines):.gofile in the package for the old URL.Verification
All runs used
AWS_CONFIG_FILE=/dev/null AWS_SHARED_CREDENTIALS_FILE=/dev/null, and no email was sent.https://evil.example.com/cudlyin a temp copy of the pinned module, via-modfilewith areplaceandGOWORK=off. The literal-pin and disclosure tests failed for all three families.go build ./...andgo vet ./...are clean. Tests pass for./internal/email/... ./internal/archera/... ./internal/mocks/...and for the packages that import email (api,purchase,scheduler,server).gocyclo -over 10is clean.scripts/test-git-secrets-allowlist.shgives 42 PASS, 0 FAIL.Out of scope / for you
common.ArcheraSignupURLin cloud-commitments-go says the email templates deliberately keep the old link, because "they may be distinct attribution paths on Archera's side". That comment becomes wrong once this merges. Issignup?mode=cudlya separate Archera attribution path worth keeping for email clicks? Align Archera signup URL in email templates with CLI/web canonical #48 asks for the switch, so I made it.common.ArcheraNonGatingDisclosure/ArcheraSponsorshipDisclosure. That's unchanged.frontend/and the CLI repo.🤖 Generated with Claude Code