Skip to content

Reconciliación del autocommit natural — 20 octubre 2026

Fallo y guarda conservada

La fuente ansible/host_vars/media-208.yml declara la tarea exacta git_autocommit,03:17, con catch_up/overlap skip. El script mantenido está en homelab-stacks/ops/git-autocommit/git-autocommit.sh; su temporal LOG se elimina al salir y RunWisp conserva la salida de etapas. No se ejecutó el script como prueba ni se abrió una sesión HA durante esta investigación.

RPC de lectura a03:22:41,561372 CEST: ejecución natural 01M5BE45Q1VW9BG7N7RFE0T3VM, ended, exit 1, duración 8499 ms (8,499 s); próxima21oct03:17. El log existente de esa ejecución,203bytes/cinco líneas, se capturó en RAM con límite128KiB y sólo se emitieron categorías de una allowlist literal:

Hora CEST Etapa acreditada
03:17:00 HA: commit registrado
03:17:06 HA: publicado según el propio log
03:17:07 stacks: commit registrado
03:17:08 stacks: GitHub contiene commits ausentes en VM208; revisar manualmente

HA completada según ese log no demuestra funcionamiento de HA, integridad del contenido ni revisión de su perfil. No se releyó el shell/profile/config HA, no se ejecutaron comandos allí y no se presupone autorización para puentear sus restricciones. No se imprimieron diffs, configuración, credenciales ni logs Git crudos.

La guarda fuente git merge-base --is-ancestor origin/master HEAD impidió publicar una historia divergente. Debe conservarse: no es un fallo que se resuelva quitando la comprobación, usando force o reset. El script ya había creado el commit local y lo preservó.

Divergencia y fusión aislada

Lectura a03:26:04,222055 CEST: checkout VM208 limpio, master, HEAD <REDACTED>, ahead1/behind5 respecto a origin/master. El tracking y ls-remote de GitHub coincidían en <REDACTED>; merge base <REDACTED>. Origin se acreditó como el repositorio esperado monxas/homelab-stacks, sin imprimir URL con credenciales. No se hizo fetch/merge/reset en VM208 durante esa lectura.

Se trajo únicamente el objeto ff1 al Mac mediante SSH directo con host trust existente, sin ProxyJump/ProxyCommand, a refs/remotes/vm208-night-20261020. Se preparó un worktree aislado bajo directorio privado0700, inicialmente en eb5. La fusión sin commit tuvo cero conflictos; gitleaks explícito sobre el rango del único commit ff1 y sobre el candidato staged terminó0 con cero hallazgos, usando reportes privados redactados. Diffcheck pasó. No había hooks Git activos en el checkout Mac examinado; la comprobación de secretos fue explícita.

Commit resultante <REDACTED>, mensaje Preserve scheduled VM208 changes while merging upstream source, con ambos padres completos:

  • <REDACTED> (upstream).
  • <REDACTED> (autocommit natural).

El stub ADR-0027 en stacks/scripts/homelab-ctl.py se conservó como stub SHA d32e832…; es distinto del actualizador instalado bajo ~/scripts y no debe sustituirse por éste.

Publicación y avance acotado del checkout

El coordinador publicó46d en master y avanzó VM208 por fast-forward a 04:47:45 CEST, conservando refs/heads/pre-reconcile-night-20261020 como referencia del estado anterior. Sin force/reset, hooks deshabilitados para ese avance y sin invocar Compose, Ansible, recargas, worker, pulls o jobs. El diff ff1→46d tiene exactamente cuatro rutas de fuente:

  • custom/plundrio/upstream/scanner/frontend/package-lock.json
  • custom/plundrio/upstream/scanner/frontend/package.json
  • jev-gateway/dependabot_worker.py
  • ops/runwisp/README.md

Los Compose, nginx y Caddy del checkout VM208 no cambian en ese avance. Fuente y lectura Docker selectiva a03:28:49,937240 CEST acreditaron que los dos package files no están cubiertos por binds del scanner activo: sólo appdata/config, downloads y docker.sock. El cambio fuente no actualiza por sí solo la imagen servida; no se ejecutó build/pull/recreate.

Una lectura final a 04:48:44,231040 CEST acreditó checkout limpio, HEAD=origin/master=46d y guarda de ascendencia satisfecha. La divergencia observada quedó reconciliada; no se reejecutó git_autocommit ni se afirma éxito de su próximo ciclo. Estos hashes describen esa observación fechada: master puede recibir cambios posteriores.

El mismo RPC final confirmó19 tareas y daemon healthy, configuración no obsoleta y las retenciones naturales watch/updater con exit75. Detalle en retención del ciclo de vida. No se cambió el calendario de autocommit, su guarda ni el hold sin caducidad.

Avance posterior del fix de métricas

La sincronización del segundo fix de Dependabot creó después el commit de stacks <REDACTED>. A las 04:51:43,993477 CEST VM208 avanzó de46d3b68 a2d96e3d mediante otro fast-forward revisado: el único path cambiado fue jev-gateway/dependabot_worker.py. Se volvieron a exigir checkout limpio, hash de partida, origen conocido y diff de un solo path; hooks deshabilitados para esa operación y ningún servicio invocado. El checkout quedó limpio en master con HEAD=origin/master=2d96e3d. No se relanzó git_autocommit; no se presenta esa coincidencia como garantía del siguiente ciclo diario.