Ir al contenido

DESARROLLO-LOG — V2 Harness Propio

★★ 11-jun 00:15-00:45 — MIGRACIÓN A TOPOLOGÍA 2 EJECUTADA (autorizada por Nicolás)

Sección titulada «★★ 11-jun 00:15-00:45 — MIGRACIÓN A TOPOLOGÍA 2 EJECUTADA (autorizada por Nicolás)»

El PGLite local murió en el proceso (el pkill lo corrompió más allá del postmaster.pid — hallazgo: ni el fix oficial garantiza supervivencia del embebido; WASM sano, data dir muerto, backup en ~/.gbrain.bak-pglite-corrupto-20260611). Cero pérdida: páginas restauradas a mano.

Arquitectura final FUNCIONANDO:

Claude Code ──(.mcp.json HTTP + token propio)──┐
Antigravity ──(serverURL + token propio)───────┼→ gbrain serve --http (:8090, OAuth 2.1)
Terminal/hook ─(gbrain CLI → postgres :5433)───┘ ↓
Postgres+pgvector (Docker, 59 páginas)
  • OAuth real por cliente: POST /admin/login (cookie) → /admin/api/register-client (un cliente por CLI, revocables) → /token client_credentials → bearer 30 días. Auth verificada: sin token = 401.
  • Config agy con serverURL + headers VALIDADA (probado end-to-end con —print).
  • Prueba de simultaneidad PASADA: terminal (search) + MCP HTTP (get_page) en paralelo + agy leyendo la decisión — los tres sobre el mismo cerebro, sin contención. “Postgres tolera conexiones concurrentes” (doc oficial) — confirmado empíricamente.
  • Puerto 5433 publicado para el CLI del host; el hook SessionEnd ahora escribe al cerebro COMPARTIDO.
  • ⚠️ Seguridad: .mcp.json (contiene token) agregado a .gitignore ANTES de cualquier push. Tokens/secrets de clientes NO se anotan aquí — viven solo en las configs locales.
  • Pendiente menor: rotar el admin token si se graba en cámara; GBRAIN_ADMIN_BOOTSTRAP_TOKEN para producción.

Sesión nocturna autónoma 10-jun-2026 (~23:00-23:30). Costo: $0 (todo local).

QuéEvidencia
Stack local completo en Dockerdocker compose up -d → Postgres 17 + pgvector + gbrain MCP HTTP
Imagen propia (oven/bun + gbrain)scripts/Dockerfile + entrypoint.sh idempotente (init si no hay config)
Health del cerebro dockerizadocurl localhost:8090/health{"status":"ok","version":"0.42.38.0","engine":"postgres"}
Brain real en el Postgres del contenedorvolumen :ro montado + gbrain import /brain adentro → 55 páginas, 635 chunks, search OK
Build del brain para Cloudflarenpm run build → 56 páginas, 5.3s, Pagefind incluido

El stack quedó CORRIENDO (puertos: gbrain en host 8090; admin token en docker compose logs gbrain). Para bajarlo: cd videos/harness-propio/scripts && docker compose down (los datos persisten en el volumen).

🐛 BUGS RESUELTOS (material de “errores en vivo” para el guion)

Sección titulada «🐛 BUGS RESUELTOS (material de “errores en vivo” para el guion)»
  1. Puerto 8080 ocupado por otro contenedor Docker del host → harness movido a 8090.
  2. Bind 127.0.0.1 dentro del contenedor → inalcanzable desde fuera. Causa: desde v0.34.1 gbrain hace bind loopback por defecto (decisión de seguridad: no publicar el cerebro a la LAN por accidente). Fix: --bind 0.0.0.0 en el entrypoint. Encontrado leyendo el código fuente (src/commands/serve-http.ts:400) — momento “leí su código” para el video.

⏸️ LISTO-PARA-CORRER — necesita decisiones de Nicolás

Sección titulada «⏸️ LISTO-PARA-CORRER — necesita decisiones de Nicolás»
QuéEl paso
Deploy a Cloud Runscripts/deploy-cloud-run.sh listo. Prerequisitos: (1) confirmar cuenta/proyecto gcloud — la sesión está en antonia.dua90@gmail.com / project-cbd42e2d-... (Nicolás confirmó que la cuenta es suya; falta confirmar que ESE proyecto es el deseado); (2) Postgres externo (Supabase/Neon free tier o Cloud SQL) — el disco de Cloud Run es efímero, PGLite se pierde con scale-to-zero; (3) gcloud secrets create gbrain-db-url
Brain → Cloudflare Pages + Accessdocs/cloudflare-brain.md — 3 comandos + config de Access. Requiere wrangler login (browser)
Cron de ingestascripts/cron-ingesta.sh — local: línea de crontab incluida; cloud: comandos de Cloud Run Jobs + Scheduler en el mismo archivo
Token de admin para producciónenv GBRAIN_ADMIN_BOOTSTRAP_TOKEN (descubierto en el código) — evita que el token rote y se filtre en logs
  1. No hace falta gateway custom: gbrain serve --http ES el gateway (OAuth 2.1, DCR opcional, --public-url para proxies). El docs/arquitectura.md se simplifica.
  2. gbrain connect <url> --token --install enchufa Claude Code a un cerebro remoto en UN comando — ese es el momento demo del endpoint Cloud Run.
  3. El mismo Dockerfile sirve local y Cloud Run (PORT env) — un solo artefacto, dos mundos. Tesis del video demostrada en la infra misma.
  4. Postgres+pgvector en compose con healthcheck → gbrain espera la DB sana antes de partir.
  • Decisión: ¿proyecto GCP para esta infra? → correr deploy-cloud-run.sh
  • Decisión: ¿Supabase, Neon o Cloud SQL para el Postgres del cerebro remoto?
  • wrangler login → deploy del brain + Access (10 min)
  • Probar gbrain connect contra el endpoint de Cloud Run desde otra máquina
  • Cron nocturno instalado + verificar “el cerebro amanece más inteligente”