refactor(ui): vForge V3 — shell sobrio con V central permanente + rehidratación de memoria - #52
Draft
turbillon50 wants to merge 2 commits into
Draft
refactor(ui): vForge V3 — shell sobrio con V central permanente + rehidratación de memoria#52turbillon50 wants to merge 2 commits into
turbillon50 wants to merge 2 commits into
Conversation
…ral permanente
Reemplaza el shell "vForge OS" + el dock V duplicado por una arquitectura
limpia inspirada en el coding-agent-template de Vercel (la cara) cableada
al cerebro real de V (system-prompt v2, 22+ tools, 90 skills, memoria).
V no se toca — su identidad, tools, BD y endpoints siguen intactos. Solo
cambia la cara desde donde la ves.
Nuevo shell (components/v3/)
- app-shell.tsx: sidebar izquierda 280px colapsable (Cmd/Ctrl+B), main
fluid, sin animaciones spring/scale que escondían contenido.
- header.tsx: top bar con hamburger + breadcrumb dinámico por ruta +
badge V live (siempre visible).
- sidebar.tsx: nav primario (Chat/Proyectos/Bóveda/Módulos/Actividad/
Settings) + tabs (Sesiones · Proyectos) con listado real de
/api/projects, sin Forge AI como item — V no es item, es el centro.
- composer.tsx: composer pulido estilo Vercel coding-agent-template,
auto-grow, Enter envía, Shift+Enter newline, Cmd+Enter mobile,
fontSize 16 (anti-zoom iOS), touch-action manipulation, botón Stop
durante streaming.
- chat.tsx: ChatV3 con rehidratación REAL del historial desde
/api/forge/conversations al montar. V deja de "empezar de cero" —
el chat refleja toda la memoria server-side que siempre tuvo. SSE
streaming intacto, AbortController, indicador de "V está pensando".
Cambios de rutas
- /hub: ahora es el chat principal con V (era el bento). Landing.
- /v: redirige a /hub (eliminamos el chat duplicado).
- /(dashboard)/layout.tsx: usa AppShellV3.
Eliminado (era ruido o estaba duplicado)
- components/V/*: ChatPage, ChatContainer, ChatComposer, MultichatDrawer,
VDock, VLayoutDashboard. Todos reemplazados por components/v3/.
- components/vforge/{app-shell,sidebar,topbar,mobile-nav,drawer,index}.tsx:
el viejo shell vForge OS. Reemplazado por v3.
- app/(dashboard)/template.tsx: animación duplicada que ralentizaba
navegación. Ya no se necesita — AppShellV3 no anima transiciones.
Conservado intacto
- lib/forge/* (tools, system-prompt, routing, gemini-adapter, v-server,
agent-config, models, routing — TODA la identidad de V).
- lib/db, lib/vault, lib/github, lib/namecom, lib/vercel.
- app/api/* (todos los endpoints incluyendo /api/forge/run,
/api/forge/conversations, /api/projects, /api/vault, etc.).
- migrations/, system_config, conversations, audit_events,
agent_directives, skills tables.
- middleware.ts.
- V_SYSTEM_PROMPT_v2_COMPLETO.md, V_MEMORY_VAULT.md y demás docs.
- components/vforge/{chat-stream,chat-message,composer,brand,...}
porque /forge (chat clásico) los sigue usando.
Verificación
- npx tsc --noEmit → 0 errores
- V mantiene memoria conversacional (rehidratada al montar el chat)
- Cero animaciones que dejen pages off-screen
- Mobile: textarea fontSize 16 previene zoom iOS, touch-action en todos
los tappables, min-h 44px en hit targets
Inspiración: vercel-labs/coding-agent-template (estructura visual). El
código se escribió desde cero adaptado a vforge — no hay copy/paste,
solo lenguaje visual.
Pendiente próximos PRs (con tu OK)
- Lista de sesiones reales en sidebar tab "Sesiones" (necesita endpoint
que liste session_ids, no turns). Hoy es placeholder elegante.
- Rediseño de /projects, /vault, /modules consistente con esta estética.
- Tools cableadas como UI cards (terminal vía remote_execution, MCP
servers panel, etc.) — Luis las pidió.
https://claude.ai/code/session_01YD9ckFDdBjDhYB6aaH1HR4
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…orgeOrb
Tres cosas que Luis pidió tras ver el primer preview:
1. UN SOLO CHAT (no dos)
/hub y /forge tenían sessionIds distintos — V respondía cariñosa en
/forge ("¡LUIS! HERMANO MAYOR!") porque tenía todo el historial, y
genérica en /hub porque arrancaba sesión nueva. Era LA misma V con
dos memorias.
Fix:
- ChatV3 ahora llama /api/forge/active-session?scope=general en mount,
que es la misma fuente que /forge usaba. Resuelve al mismo
session_id canónico del servidor.
- Key localStorage compartida: vforge_session_id_general (antes
v_chat_session_id, separada).
- /forge ahora redirige a /hub. Una sola V, una sola conversación,
todo su historial cariñoso ya cargado.
2. MODO DÍA / NOCHE
Faltaba el toggle. Agregado en el footer del sidebar (variant="row").
Usa el ThemeToggle ya existente de components/ui/, integrado con
next-themes que ya está configurado.
3. AVATAR V CON IDENTIDAD (no genérico verde)
El cuadrito verde con letra "V" se veía corriente. Reemplazado por
ForgeOrb (components/ui/forge-orb.tsx) — el avatar oficial animado
de V, con estado "thinking" cuando está streameando.
4. BADGE V LIVE MÁS SUTIL
El badge grande "V · live" verde competía visualmente con el chat.
Ahora es un dot pequeño + "V · en línea" en font mono, monocromático,
discreto pero presente. Mobile: ícono Sparkles con dot pulsante en
esquina (mucho más limpio que el chip verde grande).
NOTA: el "Sign in Vercel" que aparece al abrir el preview es del SSO
de Vercel (auth de previews), no de mi código. En producción (merge a
main → vforge.site) no aparece — Vercel solo lo pone en previews.
tsc --noEmit → 0 errores.
https://claude.ai/code/session_01YD9ckFDdBjDhYB6aaH1HR4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
vForge V3 — V central, permanente, con memoria visible
Reemplaza el shell "vForge OS" + el dock V duplicado por una arquitectura sobria inspirada en el
vercel-labs/coding-agent-template(la cara) cableada al cerebro real de V — sin duplicación de agentes, sin animaciones que escondan contenido, con rehidratación de historial.🛑 Línea roja respetada: V no se toca. Identidad, tools, BD y endpoints intactos. Solo cambia la cara.
Lo crítico que arregla
useState/api/forge/conversationsal montar/v+/modules+/forge)/vredirige a/hub· sessionId único compartidoAudioContextpor keystroke/hubes chat directo, badge V live siempre en headerNuevo shell (components/v3/)
app-shell.tsxheader.tsxsidebar.tsx/api/projectsrealcomposer.tsxchat.tsxCambios de rutas
/hub→ chat principal con V (antes era el bento). Landing del dashboard./v→ redirige a/hub(elimina chat duplicado)(dashboard)/layout.tsx→ usaAppShellV3Eliminado
components/V/*(6 archivos: ChatPage, ChatContainer, ChatComposer, MultichatDrawer, VDock, VLayoutDashboard)components/vforge/{app-shell,sidebar,topbar,mobile-nav,drawer,index}.tsx(el shell viejo)app/(dashboard)/template.tsx(animación duplicada)Conservado intacto
lib/forge/*(tools, system-prompt v2, routing, gemini-adapter, v-server, agent-config, 90 skills, 22+ tools)/api/*(forge/run, forge/conversations, projects, vault, etc.)system_config.ai_personality,conversations,audit_events,agent_directives,skills/forge(chat clásico) sigue funcional — sus componentes (chat-stream,chat-message,composerviejo) conservadosCómo probar (cuando llegue el preview)
v_chat_session_id), debe aparecer el historial al cargar/hub./modules(era la sesión donde Antigravity la dejó hablando bonito). Misma V, misma voz.Verificación
npx tsc --noEmit→ 0 erroresPendiente próximos PRs (con tu OK)
/projects,/vault,/modulesconsistente con esta estética.remote_executiontool de V → Hetzner), MCP servers panel cableado, browser control, image generation. Cada botón conecta a una tool real de V.Inspiración visual:
vercel-labs/coding-agent-template. Código escrito desde cero, sin copy/paste — adaptado a tu cerebro V.Generated by Claude Code