feat(auth-service): add Powered by Certified footer to /account/login#130
feat(auth-service): add Powered by Certified footer to /account/login#130s-adamantine merged 4 commits intomainfrom
Conversation
…gin pages Match the main sign-in page's footer on the Account Settings sign-in flow — both the email-entry step and the "Enter your code" step now render the inlined Certified wordmark below the card. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.
Tip: disable this comment in your organization's Code Review settings.
🦋 Changeset detectedLatest commit: c68fe8a The changes in this PR will be included in the next version bump. Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthroughThe pull request adds a "Powered by Certified" footer to all auth-service pages by introducing shared helper functions for footer HTML/CSS generation and injecting them across account-login, account-settings, choose-handle, recovery, and error page templates. CSS updates introduce a new Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~15 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Review rate limit: 4/5 reviews remaining, refill in 12 minutes. Comment |
|
🚅 Deployed to the ePDS-pr-130 environment in ePDS
|
Coverage Report for CI Build 25185989257Warning Build has drifted: This PR's base is out of sync with its target branch, so coverage data may include unrelated changes. Coverage increased (+0.05%) to 49.418%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
packages/auth-service/src/routes/account-login.ts (1)
16-24: ⚡ Quick winReorder imports to match the repository import convention.
node:*built-ins should be first, followed by external packages, then@certified-app/*, then local relative imports.Suggested diff
-import { Router, type Request, type Response } from 'express' import { readFileSync } from 'node:fs' import path from 'node:path' import { fileURLToPath } from 'node:url' -import { escapeHtml, maskEmail, createLogger } from '@certified-app/shared' +import { Router, type Request, type Response } from 'express' import { fromNodeHeaders } from 'better-auth/node' +import { createLogger, escapeHtml, maskEmail } from '@certified-app/shared' import type { AuthServiceContext } from '../context.js' import { buildOtpInputProps } from '../otp-input.js' import type { BetterAuthInstance } from '../better-auth.js'As per coding guidelines: "Order imports as: Node built-ins (with node: prefix), external packages, internal workspace packages (
@certified-app/*), local relative imports (with .js extension)".🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/auth-service/src/routes/account-login.ts` around lines 16 - 24, Reorder the import block so node built-ins come first (use node:fs, node:path, node:url for readFileSync, path, fileURLToPath), then external packages (express, better-auth/node), then internal workspace packages (imports from `@certified-app/shared`), and lastly local relative imports (AuthServiceContext, buildOtpInputProps, BetterAuthInstance) ensuring local imports use the .js extension; update the existing import lines (Router/Request/Response, readFileSync, path, fileURLToPath, fromNodeHeaders, escapeHtml/maskEmail/createLogger, AuthServiceContext, buildOtpInputProps, BetterAuthInstance) to follow that order.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@packages/auth-service/src/routes/account-login.ts`:
- Around line 16-24: Reorder the import block so node built-ins come first (use
node:fs, node:path, node:url for readFileSync, path, fileURLToPath), then
external packages (express, better-auth/node), then internal workspace packages
(imports from `@certified-app/shared`), and lastly local relative imports
(AuthServiceContext, buildOtpInputProps, BetterAuthInstance) ensuring local
imports use the .js extension; update the existing import lines
(Router/Request/Response, readFileSync, path, fileURLToPath, fromNodeHeaders,
escapeHtml/maskEmail/createLogger, AuthServiceContext, buildOtpInputProps,
BetterAuthInstance) to follow that order.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 65f9897a-14bb-4ba9-93bd-5ddbfd09fa52
📒 Files selected for processing (2)
.changeset/account-login-powered-by-footer.mdpackages/auth-service/src/routes/account-login.ts
…er and recovery pages Extracts the footer HTML + SVG read into a shared POWERED_BY_HTML / POWERED_BY_CSS pair in lib/page-helpers.ts so the SVG is read once, then applies it to /auth/choose-handle and both /auth/recover steps. account-login is refactored to consume the same helper. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…eleted, and error pages Extends the shared POWERED_BY_HTML / POWERED_BY_CSS helper to the remaining auth-service pages: the /account dashboard, the backup-email verify confirmation, the post-deletion screen, and the generic error page used by 404/500 handlers and session-expired guards. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The handle-picker/recovery and settings/error footer rollouts were landing as separate changesets alongside the original account-login one. Fold all three into a single changeset describing the full auth-service footer coverage so the next release notes read as one change instead of three near-duplicates. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|



Summary
Requested by Ma Earth to be done before launch
/account/login) — both the email-entry step and the "Enter your code" step..containerin a.page-wrapso the footer sits below the card.Test plan
/account/loginand confirm the "Powered by Certified" footer is visible below the card./account/login, land on the "Enter your code" page, and confirm the footer is visible there too.🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes
New Features
Style
Manually tested on auth.epds1.test.certified.app by @Kzoeps and it works