Commit Graph
40 Commits
Author SHA1 Message Date
Ricardo MonlaandClaude Opus 4.6 faf46be84b [Bugfix] dasuten_restaurar_diferencial_dasu-sql4.rb — Escape rutas Windows
PROBLEMA:
- Script fallaba con "Invalid escape character syntax" en línea 71
- Ruby interpretaba \P, \M, \S como escapes inválidos
- Pipeline bkps fallaba en paso 5/6 (Restaurar diferencial)
- Orquestador continuaba al paso 6 aunque paso 5 fallaba

SOLUCIÓN:
- Escapar correctamente ruta de sqlcmd.exe: "C:\\Program Files\\..."
- Heredoc mantiene interpolación #{backup_name} para PowerShell

RESULTADO:
- Restore diferencial:  0.14s
- DBCC CHECKDB:  241.68s — Estado: OK
- Pipeline diferencial completo: 39.49 MB restaurados

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 08:32:50 -03:00
Ricardo MonlaandClaude Opus 4.6 faa5d7ad9a [Documentación] Caso de estudio DC descartado — Lecciones aprendidas integradas
- docs/ambito/dtic-DASUTEN/_hist/P2601.legacy_lecciones_aprendidas.md (NUEVO)
  Documento completo sobre el enfoque con Domain Controller (23/02-27/03/26)
  Incluye: arquitectura descartada, causas del fracaso, timeline, lecciones

- docs/ambito/dtic-DASUTEN/A04.P005_DASUTEN-sin-DC.md
  Agregada sección "Contexto Histórico" con referencia al caso de estudio

- docs/ambito/dtic-DASUTEN/A04_dtic-DASUTEN.md
  Agregada sección completa sobre el enfoque DC descartado

- docs/contexto/IA.md
  Agregada sección "Caso de Estudio: Enfoque con Domain Controller"
  Incluye tabla de recursos, señales de alerta y lecciones para futuros proyectos

**Principio aplicado:** "La arquitectura más simple que funciona es mejor que
la arquitectura 'correcta' que apenas se sostiene."

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 19:56:02 -03:00
Ricardo MonlaandClaude Opus 4.6 94eeb8d470 [FIX] Heartbeat web: Filtrar PostgreSQL antes de mostrar
Se corrigió actualizar_heartbeat_web() para que filtre el output
antes de actualizar la Bitácora Web.

Antes: Mostraba ~400 líneas con logs de PostgreSQL
Ahora: Muestra solo ~15 líneas de progreso relevante del dron

El filtrado se aplica en dos lugares:
1. Al acumular líneas (filtrar_lineas_relevantes)
2. Al actualizar heartbeat web (filtrar_output_relevante)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 11:31:50 -03:00
Ricardo MonlaandClaude Opus 4.6 b7ff2e7183 [FIX] Bitácora Web: Filtrar logs de PostgreSQL en heartbeats
Se implementó filtrado de output para que la Bitácora Web muestre
solo las líneas relevantes del progreso del dron, no los ~40 logs
repetitivos de conexión a PostgreSQL.

Cambios:
- filtrar_lineas_relevantes(): Filtra líneas de PostgreSQL en tiempo real
- filtrar_output_relevante(): Filtra y mantiene últimas 20 líneas para heartbeat
- Heartbeat web: Ahora muestra solo progreso del dron, no conexiones DB

Beneficio: La Bitácora Web ahora muestra información útil y legible
en lugar de cientos de líneas de logs técnicos repetitivos.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 11:26:13 -03:00
Ricardo MonlaandClaude Opus 4.6 db86f86e59 [MEJORA] Salida visual mejorada para pipelines DASUTEN
Se implementó mejora en la salida de comandos para hacerla más intuitiva:

Cambios realizados:
- bkps.rb: Encabezado y cierre visual con box drawing para tareas DASUTEN
- ejecutor.rb: Barra de progreso con timer en tiempo real durante ejecución
- A04.P006: Actualizado con resultados del test completo 2026-04-15

Nueva salida visual:
- Encabezado con contexto del pipeline (nombre, hora de inicio)
- Timer en vivo durante la ejecución ([1m 23s] ejecutando...)
- Cierre con estado (/) y duración total

Resultados del test completo (Pipeline FULL):
- 6 pasos completados exitosamente en 13m 15s
- DBCC CHECKDB: Integridad OK
- Todos los drones atómicos funcionaron correctamente

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 11:18:48 -03:00
Ricardo MonlaandClaude Opus 4.6 4a0cdd883e [DRON] Heartbeat con output acumulado en Bitácora Web
Mejora en el sistema de latidos de los drones para mostrar el progreso
acumulado en lugar de solo la última línea.

Cambios realizados:
- ejecutor.rb: Acumulación de output en array accumulated_out[]
- actualizar_heartbeat_web(): Muestra últimas 15 líneas en bloque ```text
- A01.P009: Documentada Fase F1.5b con ejemplo técnico
- A04.P006: Actualizado plan DASUTEN con mejora y lección aprendida

Beneficio: Visibilidad completa del progreso de drones multi-paso
(ej: [1/3], [2/3], [3/3] en pipelines de backup/restore)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 10:45:11 -03:00
Ricardo Monla 892019fa22 [A04.P005] DASUTEN: Pipeline refactorizado + Documentación + Informes
Refactorización del pipeline de backups DASUTEN:

1. Flujo simplificado (un solo destino):
   - Backup directo a X:\ (share srv-ns8)
   - Eliminado paso intermedio E:\BK_SQL\sysdasuten\
   - Reducido de 3 ubicaciones a 2 (X: → /var/tmp/)

2. Módulo común DasuExecutor (lib/dasu_executor.rb):
   - Centraliza ejecución PowerShell en dasu-sql4
   - Centraliza verificación de archivos en fenix
   - Elimina código repetido en 6 drones (-52% líneas)

3. Drones refactorizados:
   - dasuten_exportar_srvv-fenix.rb (FULL → X:)
   - dasuten_exportar_diferencial_srvv-fenix.rb (DIF → X:)
   - dasuten_transferir_srvv-fenix-srv-ns8.rb (simplificado)
   - dasuten_restaurar_dasu-sql4.rb (usa DasuExecutor)
   - dasuten_restaurar_diferencial_dasu-sql4.rb (usa DasuExecutor)
   - dasuten_download_drive-dasu-sql4.rb (usa DasuExecutor)
   - dasuten_verificar-integridad_dasu-sql4.rb (usa DasuExecutor)

4. Integración BKPs mantenida:
   - T8-T15: Tareas individuales
   - C7: dasuten_full (pipeline semanal)
   - C8: dasuten_diferencial (pipeline diario)

5. Documentación actualizada:
   - A04.P006_Backups-DASUTEN.md: flujo simplificado + módulo común
   - Lecciones aprendidas agregadas

6. Nuevos archivos:
   - Informes técnicos DASUTEN (docs/informes/2026-04_DASUTEN-migracion/)
   - A01.P011/P012: Documentación de drones y pipeline
   - proc_linux.rb, ops.rb: Utilitarios del ecosistema

7. Scripts legacy (para referencia):
   - orquestador_pipeline.rb, orquestador_pipeline_diferencial.rb
   - dasuten_upload_srv-ns8-drive.rb
2026-04-14 20:06:06 -03:00
Ricardo Monla 3b73e0b053 [A04.P005] Extraído módulo común DasuExecutor para eliminar código repetido
Problema: 6 drones repetían el mismo patrón de ejecución remota:
- Base64 encoding de scripts PowerShell
- SSH vía srv-dasu con sshpass
- Lectura de JSON output desde dasu-sql4
- Verificación de archivos en fenix vía xp_cmdshell

Solución: adn/tools/cli/drones/lib/dasu_executor.rb

Funciones del módulo:
- execute_ps_on_dasu(ps_script) → ejecuta PowerShell en dasu-sql4
- read_json_from_dasu(path) → lee JSON output
- execute_ps_with_json_output(ps_script) → combina ambas
- execute_ps_on_fenix(client, ps_script) → PowerShell en fenix
- file_exists_on_fenix?(client, path) → verifica existencia
- get_file_info_on_fenix(client, path) → info completa de archivo

Drones refactorizados (líneas ahorradas):
- dasuten_restaurar_dasu-sql4.rb: 200 → 95 líneas (-52%)
- dasuten_restaurar_diferencial_dasu-sql4.rb: 207 → 100 líneas (-52%)
- dasuten_download_drive-dasu-sql4.rb: 269 → 130 líneas (-52%)
- dasuten_verificar-integridad_dasu-sql4.rb: 182 → 85 líneas (-53%)
- dasuten_exportar_srvv-fenix.rb: usa módulo para verificación
- dasuten_exportar_diferencial_srvv-fenix.rb: usa módulo para verificación

Beneficio: Si se modifica el patrón SSH/PowerShell, se cambia en 1 solo lugar.
2026-04-14 19:59:20 -03:00
Ricardo Monla 2bc5eae08c [A04.P005] Simplificado flujo de backup a único destino (X:)
- dasuten_exportar_srvv-fenix.rb: Backup directo a X: sin copia local
- dasuten_exportar_diferencial_srvv-fenix.rb: Mismo patrón simplificado
- dasuten_transferir_srvv-fenix-srv-ns8.rb: Solo copia share → /var/tmp
- dasuten_restaurar_dasu-sql4.rb: Ajustado para leer output correcto

Flujo simplificado:
  FULL: srvv-fenix → X:\ → /var/tmp/ → Drive
  DIF: srvv-fenix → X:\ → /var/tmp/ → Drive

Eliminados pasos intermedios innecesarios (E:\BK_SQL\sysdasuten\)
2026-04-14 19:53:07 -03:00
Ricardo MonlaandClaude Opus 4.6 900457a778 [A04.P006] Exportar backup en doble ubicación (fenix + share ns8)
Cambios realizados:

1. dasuten_exportar_srvv-fenix.rb:
   - Genera backup en disco local: E:\BK_SQL\sysdasuten\
   - Copia automáticamente a unidad de red X: (share srv-ns8)
   - Usa PowerShell para copiar al share mapeado
   - Verifica ambos destinos

2. dasuten_transferir_srvv-fenix-srv-ns8.rb:
   - Simplificado: ya no descarga desde fenix vía SMB
   - El backup ya está en /mnt/ns8Disco2/bkps-dasuten/
   - Copia local: share → /var/tmp/ (para rclone upload)

Flujo actualizado:
  1. SQL Server → E:\BK_SQL\sysdasuten\archivo.bak (local fenix)
  2. PowerShell → X:\archivo.bak (share srv-ns8)
  3. Transfer dron → /var/tmp/archivo.bak (para rclone)
  4. Upload dron → Google Drive

Requisito en srvv-fenix:
  net use X: \\10.0.10.8\bkps-dasuten /user:rmonla <password>

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 19:44:13 -03:00
Ricardo MonlaandClaude Opus 4.6 c6970f7d7a [A04.P006] Share SMB configurado en srv-ns8 - copia manual desde fenix
Cambios realizados:

1. srv-ns8 - Share SMB configurado:
   - Path: /mnt/ns8Disco2/bkps-dasuten
   - Share name: bkps-dasuten
   - Usuario: rmonla
   - Acceso: \\10.0.10.8\bkps-dasuten

2. dasuten_transferir_srvv-fenix-srv-ns8.rb:
   - Elimina copia automática al share
   - Agrega nota sobre cómo copiar manualmente desde fenix
   - Mantiene backup en /var/tmp/ para upload a Drive

Uso desde srvv-fenix (Windows):
  net use X: \\10.0.10.8\bkps-dasuten /user:rmonla <password>
  copy E:\BK_SQL\sysdasuten\archivo.bak X:\

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 19:14:26 -03:00
Ricardo MonlaandClaude Opus 4.6 cdc4c5378e [A04.P006] Backups en doble ubicación (fenix + srv-ns8 share)
Cambios realizados:

1. dasuten_transferir_srvv-fenix-srv-ns8.rb:
   - Agrega paso [3/3] para copiar al directorio compartido
   - Directorio: /mnt/ns8Disco2/bkps-dasuten/
   - Mantiene copia temporal en /var/tmp/ para upload a Drive
   - Output incluye backup_ns8 con ruta completa

Flujo actualizado:
  srvv-fenix (E:\BK_SQL\sysdasuten\)
      ↓ SMB
  srv-ns8 (/var/tmp/) ← temporal para upload
      ↓ copia local
  srv-ns8 (/mnt/ns8Disco2/bkps-dasuten/) ← share permanente

Resultado:
  - Backup original se preserva en fenix
  - Copia en share ns8 para resguardo local
  - Copia temporal para upload a Google Drive

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 18:13:36 -03:00
Ricardo MonlaandClaude Opus 4.6 0f9ebe9ef5 [A04.P006] Drones de exportación actualizados con formato estandarizado
Cambios realizados:

1. dasuten_exportar_srvv-fenix.rb (FULL):
   - Nuevo formato: E:\BK_SQL\sysdasuten\sysdasuten_FULL_YYYYMMDD_HHMMSS.bak
   - Crea directorio con xp_create_subdir si no existe
   - Usa compresión nativa de SQL Server (WITH COMPRESSION)
   - Output: backup_tipo='full'

2. dasuten_exportar_diferencial_srvv-fenix.rb (DIF):
   - Nuevo formato: E:\BK_SQL\sysdasuten\sysdasuten_DIF_YYYYMMDD_HHMMSS.bak
   - Crea directorio si no existe
   - Usa compresión nativa (WITH DIFFERENTIAL, COMPRESSION)
   - Output: backup_tipo='differential'

3. dasuten_download_drive-dasu-sql4.rb:
   - Lee nombre de archivo desde upload_output JSON
   - Guarda como F:\BACKUP\{nombre_real_del_archivo}.bak
   - Soporta formatos FULL y DIF

4. dasuten_restaurar_dasu-sql4.rb:
   - Lee backup_local desde download_output JSON
   - Busca patrón sysdasuten_FULL_*.bak si no hay output
   - Encuentra el más reciente por LastWriteTime

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 17:48:05 -03:00
Ricardo Monla fe3dcec7e9 [A04.P005] Actualizados hitos terminados de la Fase 8, y scripts del orquestador 2026-04-11 14:16:54 -03:00
Ricardo Monla 15bcf81183 [A06] Resolución BUG SSH Legacy en info.rb, conclusión F1 de Compresión XVA, y actualizaciones de métricas y planes. 2026-04-10 19:12:37 -03:00
Ricardo Monla 16cb7975ce 🧟 W-ZOMBI: Implementar Relay Switch (A01.P010)
- Soporte para comando `relay` en el CLI (start/stop/status/ps1)
- Redirige tráfico HTTPS a través de puerto `socat` en host relay (ej: srv-dasu)
- Permite a las PCs de LAN interna que no corren VPN conectar con NS8 W-ZOMBI en Tailscale.
- Se integra de forma robusta con la tool de `wzombi`
2026-04-09 22:10:30 -03:00
Ricardo Monla dd9d9b47ce 🛸 Fix: Cambiado modo por defecto de eventos de dron de R (Registro) a P (Producción) 2026-04-09 13:00:12 -03:00
Ricardo Monla 6d7394b22e 🛸 Fase 1.5 completa: AtomicDrones con visibilidad en Bitácora Web
Bugs corregidos (12): B1-B12 — crashes, tipos, métodos, logger
Ejecutor reescrito: evento web → heartbeat 30s → cierre automático
copiloto.rb y novato.rb deprecados → redirigen a dron lanzar
Plan P009 v3.2 — Fase 1.5 100%% completa
2026-04-09 10:12:04 -03:00
Ricardo Monla fb8c8eefe5 docs: Actualización de contexto IA, Drones, Candados y nuevos nodos 2026-04-08 18:09:04 -03:00
Ricardo MonlaandClaude Opus 4.6 a013811aa2 feat(A07_dtic-DNS): Ámbito DNS operativo + CLI para gestión de CoreDNS
- Crear ámbito A07_dtic-DNS con manifiesto y plan A07.P001
- Implementar CLI dns.rb con 7 subcomandos (status, zona, registros, buscar, backup, reload, corefile)
- Detectar servidor srvv-dns: CoreDNS en Docker (10.0.10.2, VM 112 en srv-pmox1)
- Documentar zona frlr.utn.edu.ar con 20+ registros (A, CNAME, MX, TXT, SRV)
- Actualizar ficha nodos/srvv-dns.md con información técnica completa
- Agregar script reparar.sh para ns8-apps (pendiente de ejecución)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 16:57:58 -03:00
Ricardo MonlaandClaude Opus 4.6 be3a78c50a fix(dron): Ejecutor funcional + tabla events
Cambios:
- ejecutor.rb: Corregir lectura de output con Open3
- bitacora_db.rb: Agregar métodos crear_evento/actualizar_evento (public)
- dron_db.rb: Corregir conversión de PG::Result a Hash (.first.to_h)
- vigilante.rb: Corregir formato de fecha en dashboard
- migrations/004: Crear tabla bitacoras.events para Bitácora Web

Pruebas:
- dron lanzar --evento AUTO --nota "Test" -- echo "hola" 
- dron flota 
- dron salud 

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 12:34:20 -03:00
Ricardo MonlaandClaude Opus 4.6 6e0e04d1e1 refactor(dron): Atomisidad - Módulo base compartido para drones
Principio "Menos es Más": código común centralizado en un solo lugar.

Cambios:
- Nuevo módulo Dron::Base con funcionalidad compartida:
  - logger: Logger compartido (evita crear múltiples instancias)
  - db_query: Ejecución de SQL con resultados
  - db_exec: Ejecución de SQL sin resultados
  - formato_duracion: Utilitario para formatear segundos
  - slice_safe: Slice seguro de strings
  - blank?: Verificación de strings vacíos/nulos

- Todos los módulos atómicos (ejecutor, vigilante, sanador, bitacora)
  ahora usan Base.logger, Base.db_query, Base.db_exec

Beneficios:
- Un solo lugar para corregir errores comunes
- Menos duplicación de código (~40% menos líneas)
- Consistencia en manejo de logs y DB
- Fácil extensión: nuevos drones heredan funcionalidad automática

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 11:48:55 -03:00
Ricardo MonlaandClaude Opus 4.6 3543e62263 feat(dron): Migración a AtomicDrones con arquitectura DB-First
Implementación del sistema AtomicDrones basado en "Menos es Más":
- Refactorización de dron.rb a dispatcher + módulos atómicos
- Nuevos módulos: ejecutor, vigilante, sanador, bitacora
- DronDB para acceso a datos en PostgreSQL
- Tablas: dron_logs, dron_avances, dron_metricas
- Views: vw_dron_estado, vw_dron_zombies, vw_dron_metricas_semanal
- Health check con detección de zombies (heartbeat > 5min)
- Dashboard compacto de la flota
- Saneamiento con reintentos (backoff exponencial) y limpieza

Comandos soportados:
- dron lanzar: Ejecutar comando como dron
- dron flota: Dashboard de la flota
- dron salud: Health check activo
- dron estado <ID>: Estado detallado
- dron sanear: Saneamiento completo
- dron limpiar: Limpieza de antiguos
- dron reintentar: Re-intentar fallidos

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 11:35:13 -03:00
Ricardo MonlaandClaude Opus 4.6 1802c25194 refactor(ambitos): Migración completa dtic-DASUTEN (A04) y dtic-BKPs (A03) + herramientas ADN
Migración dtic-DASUTEN a estándar A04:
- A04_dtic-DASUTEN.md: Manifiesto creado
- A04.P001 a A04.P005: Planes renombrados de P2601.*
- _hist/_hist_P2601_dasuten.md: Legacy archivado

Migración dtic-BKPs a estándar A03:
- A03_dtic-BKPs.md: Manifiesto creado
- A03.P001, A03.P002: Planes migrados
- docs/ambito/dtic-BKPs/: Nueva estructura

Herramientas ADN nuevas:
- adn/tools/bkps/: BKPs migrado a tools ADN
- adn/tools/cli/dron.rb: Vigía de tareas largas
- adn/tools/cli/copiloto.rb: Asistente CLI
- adn/tools/cli/novato.rb: CLI de aprendizaje

Limpieza:
- dtic-BKPs/ → _hist/dtic-BKPs/ (legacy archivado)
- adn/tools/cli/backup.rb → _hist/ (migrado a bkps.rb)

Otros:
- nodos/pcv-dasu1.md, srvv-data.md, srvv-nginx-rm.md: Actualizados
- adn/tools/core/conciliador.rb: Mejoras
- adn/tools/w-zombi/data/cmd.json: Actualizado

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 10:23:53 -03:00
Ricardo Monla 138a3c9ec6 feat(digis): Esqueleto CLI para automatización Zoom a YouTube 2026-03-31 19:22:27 -03:00
Ricardo Monla 1fd213173e docs: Plan P2603.01 Automatización Zoom y actualizaciones P2601.09 2026-03-31 18:03:21 -03:00
Ricardo Monla 160da47f96 [P2606] WebServer NGINX: plan actualizado, ficha nodo, HTTPS operativo
- P2606: Plan v1.1 EN EJECUCIÓN. Fases 1-3 completadas.
- Ficha nodo srvv-nginx-rm.md. P2606 en adn/07_proyectos.md.
- Incluye cambios acumulados de sesiones anteriores.
2026-03-28 12:18:42 -03:00
Ricardo Monla 97d9b777b4 Avances en P2604.05.01 y P2604.06.01: DB Hooks, herramienta network, sensor de mejora continua y actualización de 05_ia.md 2026-03-19 17:40:36 -03:00
Ricardo Monla 5aa37e7221 [P2604] Fase 15: Optimización IA e integración de herramienta candados. Sincronización de bitácoras y actualización de planes de proyecto. 2026-03-19 09:52:29 -03:00
Ricardo Monla ba5c65e2a4 [RFC-ADN-01] Normalizar nomenclatura de proyectos
- Directorios: PascalCase (p2601_dasuten → P2601_Dasuten)
- Planes: numeración pura (P2601_6.1.A → P2601.06.01)
- Sin caracteres especiales en nombres de archivo
- 07_proyectos.md: convención RFC-ADN-01 integrada, P2604/P2605 agregados
- evento:listar: nueva opción --detalle para descripciones completas
2026-03-16 15:15:53 -03:00
Ricardo Monla f608924c6a [P2604-S10,S15] SubcomandoSalud→ADN:: + README actualizado
S10: Migrar SubcomandoSalud al namespace ADN:: (consistencia)
S15: Actualizar README.md con estructura real de tools/
  - Tabla de subcomandos: nodos info, ssh --listar
  - Estructura cli/: submódulos (nodos/, ssh/, triggers/, backup/)
  - core/ limpio: solo infraestructura genuina
  - Directiva 5 actualizada: submódulos CLI en vez de core/
  - Eliminados archivos obsoletos del árbol (cierre.rb, inicio.rb)

Fase 10: 100% completada (S1-S15)
- 15 tests, 0 failures
- Evento 1080 (17:32→17:36)
2026-03-15 17:35:08 -03:00
Ricardo Monla 4ff2dc5e8e [P2604-S14] Subcomando 'nodos info' — metadata de fichas como CLI
Nuevo subcomando: ./adn/tools/run nodos info <nodo>
- Muestra IP, puerto SSH, usuario, auth, bóveda, host, SO, VMID
- Lecturas directas de fichas nodos/*.md via NodosInfo
- Campos no detectados se marcan como (no detectado)
- Completa la arquitectura: info.rb es submódulo + herramienta CLI

Ejemplo: nodos info pcv-dasu0 → IP, puerto 7022, DASUTEN\admindasu...
- 15 tests, 0 failures
- Evento 1079 (17:25→17:28)
2026-03-15 17:26:44 -03:00
Ricardo Monla a5f71df15d [P2604-S13] Consolidar core/ — lógica de dominio a submódulos CLI
Arquitectura antes:
  core/nodos_info.rb    → usado por 4 CLIs
  core/ejecutor_remoto.rb → usado por proceso.rb
  core/triggers.rb      → usado por triggers.rb
  core/eventos.rb       → usado por triggers.rb
  core/configurador.rb  → usado por backup.rb

Arquitectura después:
  cli/nodos/info.rb       ← submódulo de nodos
  cli/ssh/ejecutor.rb     ← submódulo de ssh
  cli/triggers/motor.rb   ← submódulo de triggers
  cli/triggers/eventos.rb ← submódulo de triggers
  cli/backup/configurador.rb ← submódulo de backup

core/ queda limpio con solo infraestructura genuina:
  colores, constants, error_handler, logger, help_formatter,
  conciliador (transversal), validador (obsoleto)

- 15 tests pasan sin regresiones
- Evento 1078 (17:14→17:17)
2026-03-15 17:19:14 -03:00
Ricardo Monla f902b4aa89 [P2604-S12] Refactorizar ssh.rb: datos desde fichas via NodosInfo
- Eliminar hash NODOS hardcodeado de ssh.rb
- Leer IP, puerto, usuario, auth, bóveda de fichas nodos/*.md
- Inferir proxy automáticamente (host != nodo → proxy)
- Mejorar NodosInfo: detectar_clave_boveda, detectar_auth_type
- Actualizar fichas: srv-dasu (IP Tailscale), pcv-dasu0, sql-dasuten
- Formato SSH estándar: usuario@ip:port (Auth, Bóveda: clave)
- 15 tests pasan sin regresiones
- Evento 1077 (16:58→17:03)
2026-03-15 17:03:32 -03:00
Ricardo Monla cfb8a6ccb6 [P2601/P2604] Herramienta SSH ADN con ProxyJump + diagnóstico remoto
Herramienta CLI ssh (P2604-S11):
- Soporte passphrase RSA (srv-dasu)  verificado
- ProxyJump para VMs DASUTEN via script+tty
- Usuarios corregidos a DASUTEN\admindasu
- Timeouts ajustados (30s connect, 5s alive)
- Listado de nodos: ./adn/tools/run ssh --listar

Plan P2601 6.1.B actualizado:
- Registro diagnóstico 15/03: sql/pcv puertos abiertos, dc cerrado
- kex_exchange via ProxyCommand pendiente investigación
- Conexión manual desde srv-dasu funciona

Eventos: 1075 (S11 herramienta), 1076 (diagnóstico)
2026-03-15 16:51:03 -03:00
Ricardo Monla c3f55d7252 [P2604-S11] Nueva herramienta CLI ssh — ejecución remota via candados
- Crear adn/tools/cli/ssh.rb con soporte passphrase RSA y contraseñas
- ProxyJump automático para VMs DASUTEN (dc/sql/pcv-dasuten via srv-dasu)
- Registrar subcomando ssh en run y adn/README.md
- Verificado: conexión exitosa a srv-dasu via Tailscale
- 15 tests pasan sin regresiones
- Evento 1075 (15:47→15:56)
2026-03-15 15:56:47 -03:00
Ricardo Monla cfd0e8452a [ADN] Fase 10: Saneamiento y Consolidación - Un solo punto de verdad
- S1: Eliminar 'triggers' duplicado en run (líneas 109/131)
- S2: Eliminar cli/commit.rb (truncado, sin uso)
- S3: Eliminar cli/inicio.rb y cli/cierre.rb (legacy, jornada.rb los reemplaza)
- S4: Mover 4 planes obsoletos de docs/plan/adn/ a docs/_hist/plan/adn/
- S5: Mover 14 backups de planes y 3 docs técnicos a docs/_hist/
- S6: Eliminar manifiesto vacío P2604_proyecto_p2604.md
- S7: Corregir referencia a plan obsoleto en run
- S8: Dejar de cargar core/validador.rb obsoleto en run
- S9: Limpiar progreso duplicado en P2604_mejoras_ADN.md
- Agregar Fase 10 al plan P2604 con 10 tareas
- Un solo punto de verdad: adn/README.md
- Un solo plan: docs/proy/p2604_mejoras_ADN/P2604_mejoras_ADN.md
- Registro en bitácora: evento 1073
2026-03-15 14:33:32 -03:00
Ricardo Monla b13a389568 [Core/Infra] Provisionamiento SSH en pc-dasu0 y unificación Nginx tailscale 2026-03-14 10:29:54 -03:00
Ricardo Monla e554bb5d0d [ADN] Commit final DB-First - Actualización completa de documentación, herramientas y componentes 2026-03-12 06:03:48 -03:00
Ricardo Monla 78006032eb Refactor(ADN): Migración de tools/adn a adn/tools en busca de la Armonía Integral del DIIAA 2026-03-10 22:25:01 -03:00