ember-memory-test/episodes/DEPURA_para-john-r43_S20260702.R94_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD.md
Ember 10b4853b61 feat(episode): DEPURA_para-john-r43_S20260702.R94_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: NONE | Type: troubleshooting
Summary: EPISODIO 94 — brasaluz.com: 📍 PARA JOHN — R43
2026-07-12 16:21:21 +00:00

2.7 KiB

episode_id puente_flat session_code acto_dialogico actor_flujo criticidad_aegis skill_dominante fase_proyecto tipo_semantico summary_one_line source_type trust_boundary created_at relectura_tagged forgejo_commit_sha
9b88602a-b3d6-42d2-9980-6b890975e51f DEPURA_para-john-r43_S20260702.R94_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD S20260702.MADUREZ_ECOSISTEMA_CONCILIO informar multi_actor low NONE operations troubleshooting EPISODIO 94 — brasaluz.com: 📍 PARA JOHN — R43 claude_code internal 2026-07-12T16:16:36.980759+00:00 false pending

El servidor respondió — reconocimiento §A completo y preciso (no adivinado):

El gate valida en auth_guard.py:171: _hash(passphrase) == EMBER_PASSPHRASE_HASH, donde _hash (línea 139) es SHA-256 simple (hashlib.sha256(...).hexdigest(), sin salt). La variable vive en ~/ember-mcp-server-v3/.env.

Parte A — HECHO — Commit b66bb11 (4 docs, 5.289 líneas) pusheado a los 3 remotos (origin + forgejo + sriyantra). BLINDADA-29 cumplida; el trabajo de la sesión está anclado y redundante.

Parte B — tu turno de rotar (yo te guío). Empieza por lo más grave:

🔴 §A — Passphrase del gate MCP (RCE) — la #1

Tú ejecutas en el servidor (ssh cx43):

  1. Elige una frase nueva fuerte. Calcula su hash SHA-256:

  2. Ponlo en el .env (reemplaza el valor de EMBER_PASSPHRASE_HASH=):

  3. Recrear (NO restart — es env_file):

  4. Verificar: desde Claude Code, ember_authenticate con la frase vieja debe fallar; con la nueva, pasar. Avísame la frase nueva por canal seguro (no la pegues en el chat).

🔴 §B — Vaultwarden (vault total) — la #2

En la web vault.brasaluz.com:

  1. Account Settings → Security → Master passwordcambiar.
  2. Account Settings → Security → KeysRotate API Key (nuevo client_secret).
  3. chmod 600 .mcp.json en local.

Mi parte (la hago cuando me confirmes que rotaste): quitar la passphrase vieja de TOOLBOX.md + actualizarla solo en memory/reference_ember_auth.md (local); scrubear el BW_CLIENTSECRET de docs/AUDIT_SEARCH_TOOLS_SERVIDOR_MEMORIA_S20260408.md (el que escapó a git tracked) + recablear los consumidores. Todo eso es mi lado, post-rotación.

Para avanzar, elige:

  • 🟢 A (recomendado) — Rotas §A ahora (tienes el comando exacto arriba); me avisas y sigo con §B y mi parte de scrub/recableado.
  • 🟡 B — Prefieres que primero prepare mi parte reversible (verificar dónde vive hoy la passphrase en TOOLBOX + dejar listo el scrub del doc tracked), y rotas después.
  • C — Pausar; la guía queda aquí y en el runbook S20260623 para retomar.