Skip to content

Restore the real VForge product shell - #102

Merged
turbillon50 merged 1 commit into
mainfrom
agent/restore-real-vforge-20260819
Aug 19, 2026
Merged

Restore the real VForge product shell#102
turbillon50 merged 1 commit into
mainfrom
agent/restore-real-vforge-20260819

Conversation

@turbillon50

Copy link
Copy Markdown
Owner

Qué cambia

Causa

Se sustituyó por error el producto por una capa visual de demostración. Esa dirección fue rechazada porque no representa VForge ni el visor en tiempo real.

Validación

  • árbol restaurado: 3a8376f791187128c005a61c71256d3a1a462ed4
  • base verificada: main en 1b6bb74c
  • alcance: solo código del repositorio; no toca base de datos, MetaMCP, Hetzner ni secretos
  • después de fusionar se verificará el deployment de Vercel y las rutas públicas

Remove the rejected editorial landing and static Casa Olivo mock by restoring the exact source tree from commit 3c28937. This keeps the live project viewer, authentication, scoped portal, and owned API integration as the product baseline.
@vercel

vercel Bot commented Aug 19, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
vforge Ready Ready Preview Aug 19, 2026 7:29pm
vforge-engine Ready Ready Preview Aug 19, 2026 7:29pm

Request Review

@turbillon50
turbillon50 merged commit c26b769 into main Aug 19, 2026
3 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c4217492a5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

const liveRoute = pathname.startsWith("/app/live/");
export default function ProductShell({ children }: { children: ReactNode }) {
const pathname = usePathname() ?? "";
const { user } = useUser();

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Preserve the Clerk-free shell path

When NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY is absent, ClerkShell deliberately renders its children without a ClerkProvider and the middleware allows /app through, but this unconditional useUser() requires that provider and makes every /app/* page fail at runtime. OnboardingPage now has the same unconditional hook; restore the key-gated wrapper/fallback before rendering Clerk hooks or components.

Useful? React with 👍 / 👎.

Comment on lines +146 to +148
<input value={pasteValues[svc.pasteKey!]||""} onChange={e=>setPasteValues(v=>({...v,[svc.pasteKey!]:e.target.value}))}
placeholder={`Pega tu ${name} API key`}
className="flex-1 rounded-xl border border-[var(--border-1)] bg-white/[0.025] px-3 py-2.5 font-mono text-[11px] text-[var(--fg-secondary)] outline-none placeholder:text-[var(--fg-muted)] focus:border-violet-500/40"/>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Mask API keys while they are entered

For Neon, Clerk, and Resend connections, this input now defaults to type="text", whereas the replaced implementation used type="password". Anyone entering a production credential while screen-sharing or near another person exposes the complete secret in clear text; restore password masking, optionally with an explicit reveal control.

Useful? React with 👍 / 👎.

Comment thread app/onboarding/page.tsx
{/* Col 2: Context + Stack */}
<div style={{display:'flex',flexDirection:'column',gap:24}}>
{/* Context Upload */}
<div style={{background:'rgba(15,23,42,.4)',border:'2px dashed rgba(0,240,255,.3)',padding:40,display:'flex',flexDirection:'column',alignItems:'center',textAlign:'center',position:'relative'}}>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Wire the advertised context uploader to persisted storage

In the real onboarding flow, this surface advertises dropping PRDs, FIG files, documents, and images, but it is only a <div> with no file input, click handler, or drag/drop handlers, so attempting to provide the requested context does nothing. Connect it to real persisted upload behavior or replace it with an honest unavailable/empty state rather than shipping demo-only functionality in the app.

AGENTS.md reference: AGENTS.md:L134-L136

Useful? React with 👍 / 👎.

Comment thread app/app/projects/page.tsx
description={t.projects.body}
actions={
<>
<button className="btn-ghost flex-1 !px-3 md:flex-none md:!px-5">{t.projects.cta_import}</button>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Restore navigation for the import action

Clicking the newly rendered import CTA does nothing because it is a plain button without an onClick handler. The replaced UI linked the corresponding “Conectar repositorio” action to /app/integrations, so users have lost the visible path for importing or connecting a repository.

Useful? React with 👍 / 👎.

<div className="flex items-center gap-3 rounded-[14px] px-2 py-2">
{accountControl}
<div className="min-w-0"><p className="truncate text-sm font-medium text-[#1b1a17]">{name}</p><p className="mt-0.5 text-[11px] text-[#8a847a]">Propietario</p></div>
<div className="min-h-screen bg-[#030306] text-white">

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Route the product shell through design tokens

When a user selects light mode from /app/settings, AppProviders changes data-theme, but this wrapper and its newly added chrome remain hardcoded black/white, so every route under this shell stays visually dark. Use the surface and foreground token variables instead of literal colors so the existing theme state can affect the shell and color changes remain centralized.

AGENTS.md reference: AGENTS.md:L82-L84

Useful? React with 👍 / 👎.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant