Skip to content

feat(route): redesign /mock-interview with Forge AI-inspired landing#4404

Open
anuragmishrainsights wants to merge 3 commits into
mainfrom
forge/route-mock-interview
Open

feat(route): redesign /mock-interview with Forge AI-inspired landing#4404
anuragmishrainsights wants to merge 3 commits into
mainfrom
forge/route-mock-interview

Conversation

@anuragmishrainsights

@anuragmishrainsights anuragmishrainsights commented Jul 18, 2026

Copy link
Copy Markdown
Collaborator

User description

What

Redesigns the /mock-interview route with the Forge design system.

  • Swaps route element to MockInterviewForge (data-driven via ForgeFeaturePage).
  • Presentational only; existing config untouched.

Depends on

forge/design-system.

✅ No merge — raised for review only.


CodeAnt-AI Description

Redesign /mock-interview with a Forge-style landing page

What Changed

  • The mock interview page now uses a new Forge-themed layout with a dark, technical look and stronger call-to-action sections.
  • The page now shows feature highlights, step-by-step workflow content, testimonial blocks, and summary stats pulled from the existing feature data.
  • The top navigation and main actions now match the new Forge style, and signed-in users are sent to the dashboard path.

Impact

✅ Clearer mock interview landing page
✅ Stronger sign-up and return-user entry points
✅ More consistent feature page branding

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

- forge.css: dark/technical design tokens (status chips, monospace metrics, bento)
- forge/ primitives: StatusBadge, MetricChip, ForgeButton, BentoCard
- ForgeFeaturePage: data-driven landing rendering all 5 routes from FEATURES_BY_SLUG
- 5 thin wrapper pages (ResumeBuilderForge, ResumeRoastForge, GithubPortfolioForge,
  ProjectVisualizerForge, MockInterviewForge)
@codeant-ai

codeant-ai Bot commented Jul 18, 2026

Copy link
Copy Markdown

CodeAnt AI is reviewing your PR.

@codeant-ai

codeant-ai Bot commented Jul 18, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@vercel

vercel Bot commented Jul 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
career-pilot Error Error Jul 18, 2026 6:29pm

@coderabbitai

coderabbitai Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@anuragmishrainsights, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 59 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6c6bf388-bb7b-48fd-8fac-46aa048af179

📥 Commits

Reviewing files that changed from the base of the PR and between 68362df and 3387bfe.

📒 Files selected for processing (13)
  • frontend/src/App.jsx
  • frontend/src/components/forge/BentoCard.jsx
  • frontend/src/components/forge/ForgeButton.jsx
  • frontend/src/components/forge/ForgeFeaturePage.jsx
  • frontend/src/components/forge/MetricChip.jsx
  • frontend/src/components/forge/StatusBadge.jsx
  • frontend/src/components/landing/ForgeToolsSection.jsx
  • frontend/src/pages/features/GithubPortfolioForge.jsx
  • frontend/src/pages/features/MockInterviewForge.jsx
  • frontend/src/pages/features/ProjectVisualizerForge.jsx
  • frontend/src/pages/features/ResumeBuilderForge.jsx
  • frontend/src/pages/features/ResumeRoastForge.jsx
  • frontend/src/styles/forge.css
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch forge/route-mock-interview

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codeant-ai codeant-ai Bot added the size:XL This PR changes 500-999 lines, ignoring generated files label Jul 18, 2026
import { useAuth } from '../../hooks/useAuth';
import { FEATURES_BY_SLUG } from '../../data/featuresConfig';
import Seo from '../../components/Seo';
import '../styles/forge.css';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: This relative CSS import points to a non-existent components/styles directory from this file location, so the module cannot be resolved at build/runtime. Update the path to the actual src/styles/forge.css location. [import error]

Severity Level: Critical 🚨
- ❌ Forge feature routes fail to compile due to CSS.
- ❌ /mock-interview Forge landing cannot load at all.
- ⚠️ Future ForgeFeaturePage usages blocked until import fixed.
Steps of Reproduction ✅
1. Open frontend/src/pages/features/MockInterviewForge.jsx, which imports ForgeFeaturePage
from '../../components/forge/ForgeFeaturePage at lines 2-4 and is itself lazily imported
as MockInterviewLanding in frontend/src/App.jsx at line 111.

2. Inspect frontend/src/components/forge/ForgeFeaturePage.jsx where the ForgeFeaturePage
component is defined; line 6 imports '../styles/forge.css'.

3. From the ForgeFeaturePage.jsx location (frontend/src/components/forge), the relative
import '../styles/forge.css' resolves to frontend/src/components/styles/forge.css.

4. LS output for frontend/src/styles shows forge.css lives at
frontend/src/styles/forge.css and LS for frontend/src/components shows no styles
directory, so any build that compiles ForgeFeaturePage (e.g., when loading the
/mock-interview feature route) will fail with a module-not-found error for
'../styles/forge.css'.

Fix in Cursor Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** frontend/src/components/forge/ForgeFeaturePage.jsx
**Line:** 6:6
**Comment:**
	*Import Error: This relative CSS import points to a non-existent `components/styles` directory from this file location, so the module cannot be resolved at build/runtime. Update the path to the actual `src/styles/forge.css` location.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

import { FEATURES_BY_SLUG } from '../../data/featuresConfig';
import Seo from '../../components/Seo';
import '../styles/forge.css';
import StatusBadge from './forge/StatusBadge';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: This import adds an extra forge/ segment even though StatusBadge is in the same directory, so bundling fails with a missing module error. Import directly from the sibling file path. [import error]

Severity Level: Critical 🚨
- ❌ All ForgeFeaturePage-based routes crash on import error.
- ❌ /mock-interview Forge landing unusable in production.
- ⚠️ StatusBadge component cannot be reused in Forge page.
Steps of Reproduction ✅
1. Inspect frontend/src/pages/features/MockInterviewForge.jsx where MockInterviewForge
returns ForgeFeaturePage with slug "mock-interview" (lines 2-4); this page is wired into
AppRoutes via the lazy import MockInterviewLanding in frontend/src/App.jsx at line 111.

2. In frontend/src/components/forge/ForgeFeaturePage.jsx, note line 7 imports StatusBadge
from './forge/StatusBadge'.

3. From the directory frontend/src/components/forge, the path './forge/StatusBadge'
resolves to frontend/src/components/forge/forge/StatusBadge.jsx.

4. LS output for frontend/src/components/forge shows only BentoCard.jsx, ForgeButton.jsx,
ForgeFeaturePage.jsx, MetricChip.jsx, and StatusBadge.jsx at the top level, with no forge
subdirectory, so bundling ForgeFeaturePage for any feature route (mock-interview,
resume-builder, project-visualizer, resume-roast, github-portfolio via the imports found
by Grep) will throw a "Module not found: './forge/StatusBadge'" error.

Fix in Cursor Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** frontend/src/components/forge/ForgeFeaturePage.jsx
**Line:** 7:7
**Comment:**
	*Import Error: This import adds an extra `forge/` segment even though `StatusBadge` is in the same directory, so bundling fails with a missing module error. Import directly from the sibling file path.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

import Seo from '../../components/Seo';
import '../styles/forge.css';
import StatusBadge from './forge/StatusBadge';
import MetricChip from './forge/MetricChip';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: This relative import points to components/forge/forge/MetricChip, which does not exist, causing a hard import failure. Change it to the correct same-folder path. [import error]

Severity Level: Critical 🚨
- ❌ Forge feature heroes cannot render metric chips.
- ❌ Multiple feature landing pages fail during compilation.
- ⚠️ Stats display broken, degrading feature marketing UX.
Steps of Reproduction ✅
1. From Grep results, confirm ForgeFeaturePage is imported by multiple feature pages
(frontend/src/pages/features/ResumeBuilderForge.jsx, ProjectVisualizerForge.jsx,
ResumeRoastForge.jsx, MockInterviewForge.jsx, GithubPortfolioForge.jsx), so it is on
several landing routes.

2. Open frontend/src/components/forge/ForgeFeaturePage.jsx and observe line 8 importing
MetricChip from './forge/MetricChip'.

3. From the file’s directory frontend/src/components/forge, the './forge/MetricChip' path
resolves to frontend/src/components/forge/forge/MetricChip.jsx.

4. LS output for frontend/src/components/forge shows MetricChip.jsx exists as a sibling in
that directory, with no forge subfolder, so when the bundler compiles ForgeFeaturePage for
any of the Forge feature routes it will fail with "Module not found: './forge/MetricChip'"
and prevent those pages from loading.

Fix in Cursor Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** frontend/src/components/forge/ForgeFeaturePage.jsx
**Line:** 8:8
**Comment:**
	*Import Error: This relative import points to `components/forge/forge/MetricChip`, which does not exist, causing a hard import failure. Change it to the correct same-folder path.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

import '../styles/forge.css';
import StatusBadge from './forge/StatusBadge';
import MetricChip from './forge/MetricChip';
import ForgeButton from './forge/ForgeButton';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: This import incorrectly references a forge subfolder under the current forge directory, so the file cannot be found. Point it to the sibling ForgeButton file. [import error]

Severity Level: Critical 🚨
- ❌ Primary CTA buttons on Forge features fail to render.
- ❌ Build may halt due to missing ForgeButton module.
- ⚠️ User onboarding flows via Forge landings disrupted.
Steps of Reproduction ✅
1. Verify via LS that frontend/src/components/forge contains ForgeButton.jsx as a sibling
file, with no nested forge directory.

2. In frontend/src/components/forge/ForgeFeaturePage.jsx, note line 9 imports ForgeButton
from './forge/ForgeButton'.

3. From the ForgeFeaturePage.jsx location (frontend/src/components/forge),
'./forge/ForgeButton' resolves to a non-existent path
frontend/src/components/forge/forge/ForgeButton.jsx.

4. During bundling of ForgeFeaturePage (invoked by feature pages such as
MockInterviewForge.jsx and others listed by Grep), module resolution for
'./forge/ForgeButton' will fail, breaking primary and secondary CTA buttons on all Forge
feature landings and potentially stopping the build.

Fix in Cursor Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** frontend/src/components/forge/ForgeFeaturePage.jsx
**Line:** 9:9
**Comment:**
	*Import Error: This import incorrectly references a `forge` subfolder under the current `forge` directory, so the file cannot be found. Point it to the sibling `ForgeButton` file.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

import StatusBadge from './forge/StatusBadge';
import MetricChip from './forge/MetricChip';
import ForgeButton from './forge/ForgeButton';
import BentoCard from './forge/BentoCard';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: This import path is incorrect for a sibling component and resolves to a non-existent location, which will break compilation. Use the direct local path to BentoCard. [import error]

Severity Level: Critical 🚨
- ❌ Forge capabilities bento grid cannot render at all.
- ❌ All ForgeFeaturePage landings risk build-time failure.
- ⚠️ Feature demos and showcases unavailable to end users.
Steps of Reproduction ✅
1. Confirm via BulkRead that BentoCard.jsx is defined in
frontend/src/components/forge/BentoCard.jsx, exporting the BentoCard component (lines
3-23).

2. In frontend/src/components/forge/ForgeFeaturePage.jsx, line 10 imports BentoCard from
'./forge/BentoCard'.

3. Given ForgeFeaturePage.jsx resides in frontend/src/components/forge, the
'./forge/BentoCard' import resolves to frontend/src/components/forge/forge/BentoCard.jsx,
which does not exist per LS output.

4. When ForgeFeaturePage is compiled for any feature route (ResumeBuilderForge,
ProjectVisualizerForge, ResumeRoastForge, GithubPortfolioForge, MockInterviewForge), the
bundler will raise a module-not-found error for './forge/BentoCard', breaking the
capabilities bento section and potentially failing the entire build.

Fix in Cursor Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** frontend/src/components/forge/ForgeFeaturePage.jsx
**Line:** 10:10
**Comment:**
	*Import Error: This import path is incorrect for a sibling component and resolves to a non-existent location, which will break compilation. Use the direct local path to `BentoCard`.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

import React from 'react';
import { motion } from 'framer-motion';
import { FEATURES } from '../../data/featuresConfig';
import '../styles/forge.css';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: This stylesheet import resolves to src/components/styles/forge.css from the current directory, but the stylesheet lives under src/styles, so the import fails. Correct the relative path to the real stylesheet location. [import error]

Severity Level: Major ⚠️
- ⚠️ Latent import error in ForgeToolsSection landing component.
- ⚠️ Future "Powerful AI tools" landing could crash.
- ⚠️ Design system reuse hindered for new tools grid.
Steps of Reproduction ✅
1. Grep for ForgeToolsSection shows only its definition in
frontend/src/components/landing/ForgeToolsSection.jsx:25, indicating the component is not
yet wired into routes but is intended as a landing grid.

2. In frontend/src/components/landing/ForgeToolsSection.jsx, line 4 imports
'../styles/forge.css'.

3. From the ForgeToolsSection.jsx directory (frontend/src/components/landing), the path
'../styles/forge.css' resolves to frontend/src/components/styles/forge.css.

4. LS output for frontend/src/styles confirms forge.css exists at
frontend/src/styles/forge.css, while LS for frontend/src/components shows no styles
directory, so when ForgeToolsSection is imported into a page like Home.jsx or another
landing, any build including that component will fail with a module-not-found error for
'../styles/forge.css'.

Fix in Cursor Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** frontend/src/components/landing/ForgeToolsSection.jsx
**Line:** 4:4
**Comment:**
	*Import Error: This stylesheet import resolves to `src/components/styles/forge.css` from the current directory, but the stylesheet lives under `src/styles`, so the import fails. Correct the relative path to the real stylesheet location.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

/* ============================================================
FORGE DESIGN SYSTEM — forge-ai inspired UI/UX layer
Dark · technical · operational-status chips · monospace metrics
Used by ForgeFeaturePage + OurToolsSection redesign.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: The header comment references OurToolsSection, but the component added in this change is ForgeToolsSection, which creates a factual mismatch in documentation and makes maintenance harder. Update the comment to the actual component name. [comment mismatch]

Severity Level: Minor 🧹
- ⚠️ Comment misleads maintainers about forge.css consumers.
- ⚠️ Confusion between legacy OurToolsSection and ForgeToolsSection.
- ⚠️ Harder to trace design-system usage accurately.
Steps of Reproduction ✅
1. Open frontend/src/styles/forge.css and inspect the header comment; line 4 reads "Used
by ForgeFeaturePage + OurToolsSection redesign."

2. Use Grep to locate OurToolsSection; it is defined in
frontend/src/components/landing/OurToolsSection.jsx:23 and imported by
frontend/src/pages/Home.jsx at lines 3 and 30, but OurToolsSection.jsx does not import
forge.css (confirmed by BulkRead).

3. Inspect frontend/src/components/landing/ForgeToolsSection.jsx where the new
Forge-styled tools grid is defined; line 4 there imports '../styles/forge.css', confirming
that forge.css is actually used by ForgeFeaturePage and ForgeToolsSection, not by
OurToolsSection.

4. This creates a factual mismatch between the forge.css documentation and the real usage:
maintainers reading the comment will incorrectly associate the stylesheet with
OurToolsSection instead of the new ForgeToolsSection landing, increasing confusion during
future design-system maintenance.

Fix in Cursor Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** frontend/src/styles/forge.css
**Line:** 4:4
**Comment:**
	*Comment Mismatch: The header comment references `OurToolsSection`, but the component added in this change is `ForgeToolsSection`, which creates a factual mismatch in documentation and makes maintenance harder. Update the comment to the actual component name.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

Comment thread frontend/src/App.jsx
const ProjectVisualizerLanding = lazy(() => import('./pages/features/ProjectVisualizerLanding'));
const JobFinderLanding = lazy(() => import('./pages/features/JobFinderLanding'));
const MockInterviewLanding = lazy(() => import('./pages/features/MockInterviewLanding'));
const MockInterviewLanding = lazy(() => import('./pages/features/MockInterviewForge'));

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: The route now lazy-loads the Forge implementation, but that module currently depends on ForgeFeaturePage, which imports subcomponents using ./forge/... paths that do not exist from its directory. As soon as /mock-interview is loaded, this can fail module resolution and break the page load. Either switch back to the stable landing component or fix the ForgeFeaturePage import paths before wiring this route to MockInterviewForge. [import error]

Severity Level: Critical 🚨
- ❌ /mock-interview landing fails; Forge page cannot render.
- ❌ Frontend build fails resolving ./forge subcomponent imports.
- ⚠️ Legacy /ai-interview redirect hits broken mock-interview route.
Steps of Reproduction ✅
1. Start the CareerPilot frontend with this PR applied so that `frontend/src/App.jsx`
defines `MockInterviewLanding` at line 111 as `lazy(() =>
import('./pages/features/MockInterviewForge'))` and registers the public `/mock-interview`
route at `frontend/src/App.jsx:285` using `<MockInterviewLanding />` inside `AppRoutes`.

2. Navigate to `http://localhost:PORT/mock-interview` in the browser, which causes React
Router to lazy-load the `MockInterviewLanding` chunk (the component imported from
`frontend/src/pages/features/MockInterviewForge.jsx:3-4`).

3. The `MockInterviewForge` component at
`frontend/src/pages/features/MockInterviewForge.jsx:3-4` immediately renders
`<ForgeFeaturePage slug="mock-interview" />`, pulling in
`frontend/src/components/forge/ForgeFeaturePage.jsx`.

4. When the bundler evaluates `ForgeFeaturePage.jsx`, it tries to resolve the imports at
`frontend/src/components/forge/ForgeFeaturePage.jsx:7-10` (`import StatusBadge from
'./forge/StatusBadge';`, `import MetricChip from './forge/MetricChip';`, `import
ForgeButton from './forge/ForgeButton';`, `import BentoCard from './forge/BentoCard';`),
but `LS /workspace/career-pilot/frontend/src/components/forge` shows only
`StatusBadge.jsx`, `MetricChip.jsx`, `ForgeButton.jsx`, and `BentoCard.jsx` in that
directory with no `forge/` subfolder, so the build/runtime produces a “Module not found:
Can't resolve './forge/StatusBadge'” style error and the `/mock-interview` page chunk
fails to load, breaking the route.

Fix in Cursor Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** frontend/src/App.jsx
**Line:** 111:111
**Comment:**
	*Import Error: The route now lazy-loads the Forge implementation, but that module currently depends on `ForgeFeaturePage`, which imports subcomponents using `./forge/...` paths that do not exist from its directory. As soon as `/mock-interview` is loaded, this can fail module resolution and break the page load. Either switch back to the stable landing component or fix the `ForgeFeaturePage` import paths before wiring this route to `MockInterviewForge`.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

export default function ForgeButton({ to, href, children, variant = 'primary', ...rest }) {
const cls = `forge-btn ${variant === 'primary' ? 'forge-btn-primary' : 'forge-btn-ghost'}`;
if (to) return <Link to={to} className={cls} {...rest}>{children}</Link>;
return <a href={href || '#'} className={cls} {...rest}>{children}</a>;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: Using a raw anchor for the href branch causes full document reloads for internal app URLs (for example /login), which drops SPA state and bypasses React Router navigation behavior. Treat internal hrefs as router navigation (or require to for internal routes) so in-app transitions stay client-side. [performance]

Severity Level: Major ⚠️
- ⚠️ Forge sign-in button triggers full-page reload to /login.
- ⚠️ SPA state resets when clicking internal Forge CTA links.
Steps of Reproduction ✅
1. Ensure you are logged out so `useAuth()` in `ForgeFeaturePage` returns `user = null`
(see `frontend/src/components/forge/ForgeFeaturePage.jsx:51` where `{ user } = useAuth()`
is read).

2. Navigate to the public `/mock-interview` landing route, which is registered in
`AppRoutes` at `frontend/src/App.jsx:26-27` as `<Route path="/mock-interview"
element={<Suspense ...><MockInterviewLanding /></Suspense>} />` and backed by
`MockInterviewLanding` from `frontend/src/App.jsx:111` importing
`./pages/features/MockInterviewForge`.

3. On the rendered Forge landing, observe the sign-in CTA rendered by `ForgeFeaturePage`
at `frontend/src/components/forge/ForgeFeaturePage.jsx:72-74`, where `!user &&amp
<ForgeButton href="/login" variant="ghost">Sign in</ForgeButton>` is used, passing an
internal URL `/login` via the `href` prop.

4. The `ForgeButton` implementation at `frontend/src/components/forge/ForgeButton.jsx:5-8`
returns a React Router `<Link>` when `to` is provided but falls back to `<a href={href ||
'#'} ...>` when only `href` is set; clicking the “Sign in” button therefore performs a
full document navigation to `/login` (reloading the page and resetting SPA state) instead
of a client-side route transition via `<Link>`, causing unnecessary reloads and loss of
in-memory context during internal navigation.

Fix in Cursor Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** frontend/src/components/forge/ForgeButton.jsx
**Line:** 8:8
**Comment:**
	*Performance: Using a raw anchor for the `href` branch causes full document reloads for internal app URLs (for example `/login`), which drops SPA state and bypasses React Router navigation behavior. Treat internal hrefs as router navigation (or require `to` for internal routes) so in-app transitions stay client-side.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

@codeant-ai

codeant-ai Bot commented Jul 18, 2026

Copy link
Copy Markdown

CodeAnt AI finished reviewing your PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL This PR changes 500-999 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants