Actualiza /full-git-pull para reflejar la realidad operativa: cada PC
mantiene solo el subset de sub-repos que necesita, segun la memoria
"Gitea = fuente de verdad; PCs subset".
Cambios:
- Quita la segunda pasada que clonaba automaticamente todos los
dataforge/<name> registrados en apps/analysis. Generaba clones no
deseados en PCs que no usan esas apps.
- Anade nota explicita de que el comando solo actualiza repos con
.git/ ya presente y deja el clone manual como pull-on-demand.
- Documenta el snippet de clone manual con token via pass para
cuando si haga falta traer un sub-repo nuevo.
Impacto: el comando es idempotente y predecible — no toca lo que no
existe localmente. No afecta a fn sync ni a la regeneracion de
registry.db.
- /full-git-push y /full-git-pull descubren apps/analyses sin .git y los
inicializan/clonan automaticamente contra dataforge/<basename>.
- ensure_repo_synced.sh: localizar gitea_create_repo.sh / gitea_push_directory.sh
via FN_REGISTRY_INFRA_DIR o FN_REGISTRY_ROOT (mas robusto al sourcing
desde directorios arbitrarios y desde zsh).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sincronizan el repo principal y todos los sub-repos git anidados (apps
externalizadas, projects con repo propio) y luego ejecutan fn sync para
sincronizar metadata no regenerable contra registry_api.
Credenciales para fn sync vienen de pass (registry/{api-token,
basicauth-user,basicauth-pass}).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>