feat(episode): DEPURA_ejecutado-este-turno-subconjunto-seguro_S20260702.R78_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: NONE | Type: troubleshooting
Summary: EPISODIO 78 — Vaultwarden: ✅ Ejecutado este turno (subconjunto seguro QW-2, loca
This commit is contained in:
parent
131cfae165
commit
5e339e5c10
1 changed files with 43 additions and 0 deletions
|
|
@ -0,0 +1,43 @@
|
||||||
|
---
|
||||||
|
episode_id: "490b7e96-6015-42a9-856d-647dcb275e86"
|
||||||
|
puente_flat: "DEPURA_ejecutado-este-turno-subconjunto-seguro_S20260702.R78_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||||
|
session_code: "S20260702.PIPELINE_RETRIEVAL_CALIDAD"
|
||||||
|
acto_dialogico: "informar"
|
||||||
|
actor_flujo: "multi_actor"
|
||||||
|
criticidad_aegis: "low"
|
||||||
|
skill_dominante: "NONE"
|
||||||
|
fase_proyecto: "operations"
|
||||||
|
tipo_semantico: "troubleshooting"
|
||||||
|
summary_one_line: "EPISODIO 78 — Vaultwarden: ✅ Ejecutado este turno (subconjunto seguro QW-2, local y rev"
|
||||||
|
source_type: "claude_code"
|
||||||
|
trust_boundary: "internal"
|
||||||
|
created_at: "2026-07-12T16:17:06.039396+00:00"
|
||||||
|
relectura_tagged: false
|
||||||
|
forgejo_commit_sha: "pending"
|
||||||
|
---
|
||||||
|
|
||||||
|
**FRASE.TXT eliminada** (staged como `D`, passphrase muerta fuera del árbol y del futuro HEAD, reversible con `git checkout`). Con esto completo el subconjunto seguro que John aprobó, dentro de lo que las guardas permiten.
|
||||||
|
|
||||||
|
Cierro con el estado de ejecución.
|
||||||
|
|
||||||
|
## ✅ Ejecutado este turno (subconjunto seguro QW-2, local y reversible)
|
||||||
|
|
||||||
|
| Acción | Resultado |
|
||||||
|
|---|---|
|
||||||
|
| **Scrub Qdrant key VIVA + DSN/LiteLLM muertos** en `run_iter6.py` + `run_from_inbox.py` | 6 literales → `os.environ.get(...)`; sintaxis OK; **0 secretos** restantes en ambos (verificado) |
|
||||||
|
| **`git rm FRASE.TXT`** (passphrase muerta) | eliminada del tracking y del árbol; staged `D` |
|
||||||
|
| **Reporte canónico** | [docs/AUDITORIA_SEGURIDAD_ACTUALIZADA_S20260702.md](docs/AUDITORIA_SEGURIDAD_ACTUALIZADA_S20260702.md) |
|
||||||
|
|
||||||
|
No commiteé ni pusheé nada (tu decisión, BLINDADA-29). Los `.bak` que el hook ATOMIC generó con el valor viejo están **gitignored** (sin exposición git).
|
||||||
|
|
||||||
|
## ⚠️ Bloqueado por las propias guardas de seguridad (correcto — no las forcé)
|
||||||
|
|
||||||
|
- **`git rm --cached` de los JSONL de `batch_output`** → la guarda **LEY ZERO** lo bloquea por caer bajo el dir protegido `.claude/hooks/data`. Requiere tu confirmación explícita (o lo haces tú). *No usé el override-flag: es exactamente el bypass que documenté como crítico este turno.*
|
||||||
|
- **Fix del bypass-Bash de override-flags (QW-1) + endurecer el scanner + los otros ~7 archivos con la Qdrant key** → 3 de esos archivos viven en `.claude/hooks/lib/` (bloqueado por el `deny-block` de la Ola 1) y el resto choca con el gate TEST-BEFORE-FIX. Quedan listos como diff para cuando levantes el candado.
|
||||||
|
|
||||||
|
## 🔴 El cuello de botella real sigue siendo tuyo (los 2 críticos que mantienen el ROJO)
|
||||||
|
|
||||||
|
1. **Rotar los secretos vivos** (NEO4J/MEILI/KARAKEEP/PAPERLESS + Qdrant + Vaultwarden) → runbook con comandos exactos: [RUNBOOK_ROTACION_SECRETOS_JOHN_S20260623.md](docs/RUNBOOK_ROTACION_SECRETOS_JOHN_S20260623.md).
|
||||||
|
2. **`socket-proxy EXEC=0 POST=0`** (o sacar `ember-mcp` de esa red) → mata el RCE lateral a 61 containers, 1 línea de compose + `--force-recreate`.
|
||||||
|
|
||||||
|
No commiteo ni toco los críticos sin tu OK. El árbol quedó con los scrubs + FRASE.TXT staged, listo para tu revisión.
|
||||||
Loading…
Reference in a new issue