Commit Graph
321 Commits
Author SHA1 Message Date
sergioandClaude Opus 4.8 7131cd4269 Etapa G: MESA iris-only CONSTRUIDA (24.0.9, sin LLVM) — stack gráfico COMPLETO
Mesa sellada: store/607a513c…-mesa con dri/iris_dri.so + libEGL/libgbm/libGLESv2/
libglapi + egl/gbm/glesv2.pc. El stack gráfico para el escritorio tawasuyu (Iris Xe)
queda completo: libdrm✓ wayland✓ wayland-protocols✓ seatd✓ mesa✓.

Decisiones/fixes clave:
- PIN 24.0.9 (no 26.1.1): desde Mesa 24.1 iris REQUIERE intel-clc (kernels OpenCL-C
  internos) ⇒ libclc + clang/LLVM, lo que rompe el plan iris-sin-LLVM. Bisección: 24.0.9
  es el último donde with_clc=FALSE con iris-only sin Vulkan/rusticl. (Decisión del usuario:
  pinear Mesa viejo en vez de construir LLVM.)
- recorte iris-only: -Dllvm=disabled -Dintel-clc=disabled, sin Vulkan/glx/rusticl/codecs/tools.
- packaging (módulo Python puro): el chequeo de versión de mako usa packaging.version y
  Python 3.12 ya no trae distutils ⇒ sin packaging fallaba con el engañoso «mako required».
- PYTHONPATH al site-packages en configure Y compile (el codegen mako corre en ninja).
- libffi en deps: lo pide wayland-client.pc (Requires: libffi) al resolver cflags.
- mesa-version-script-comma.patch: el target DRI emitía «-Wl,--version-script dri.sym»
  (token separado) que zig cc reordena ⇒ «cannot find version script --end-group» al ligar
  libgallium_dri.so. La forma coma «-Wl,--version-script,dri.sym» (un token) lo arregla.

Runtime pendiente (ensamblado de rootfs): iris_dri.so/libEGL necesitan libz.so.1, libzstd.so.1
(de la base), libdrm.so.2, wayland .so. mirada-greeter (Cargo, link dinámico a Mesa) ya desbloqueado.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 02:13:23 -04:00
sergio 03a9d92ea6 Etapa G: cosecha go-13 (14) — dev-tools/linters/OCI/git Go (delve/oras/regctl/glab/wire/...)
Queue aislado recipes/incoming-go/ (sin tocar incoming/ del otro agente). 14/16: 2 reintentados
tras el fix del watchdog (dnscontrol/lazysql). Diferidos go-mockery (go.work) y usql (CGO sqlite).
2026-06-27 01:11:03 -04:00
sergio ad7ec4aea4 Etapa G: watchdog protege árboles con 'hammer build' en vuelo (fase host vendor/resolve)
go-13 (dnscontrol/lazysql, árboles de deps Go enormes) destapó otra race del watchdog: durante el
fetch/'go mod vendor'/resolve_phases (host-side, antes del bwrap) el árbol no está bind-montado ⇒ el
watchdog lo borraba a mitad del vendor → go.mod desaparecía → 'receta sin compile, heurística no
encontró build system'. Ahora además protege work/sources/<name>-* si <name> tiene un proceso
'hammer build' activo (cubre toda la vida del build, no solo la fase sandbox).
2026-06-27 01:07:09 -04:00
sergioandClaude Opus 4.8 0b3646d204 Etapa G: prerequisitos de Mesa — mako/markupsafe + PIC en libs base C
Mesa necesita el codegen Python `mako` (dispatch GL/GLES, formatos) y éste importa
`markupsafe` a nivel de módulo. Ambos como módulos Python puros (igual que meson):
se copia el paquete a site-packages de python3.12, sin pip/wheel. markupsafe cae a
su backend `_native` (sin compilar la extensión C `_speedups`). Verificado import +
render de Template.

PIC en libs base C (zlib, zstd, expat; libffi ya en el commit anterior): el .a estático
lleva objetos PIC para poder enlazarse DENTRO de bibliotecas compartidas — Mesa liga
libz/libzstd/libexpat/libffi en sus .so y sin PIC falla con
«R_X86_64_PC32 ... recompile with -fPIC». PIC es superset (sigue sirviendo para enlace
estático de exes/toolchain); la invalidación de caché de los dependientes es perezosa y
produce artefactos equivalentes. Mismo patrón aplicado y verificado con libffi→wayland.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 01:05:25 -04:00
sergio 1ad71de885 Etapa G: manda go-13 al VPS (dev-tools/linters/OCI/git Go) — queue AISLADO incoming-go/
16 recetas Go (glab/usql/slides/lazysql/git-sizer/oras/regctl/govulncheck/dnscontrol/gocyclo/
yamlfmt/actionlint/protoc-gen-go/wire/delve/go-mockery) en recipes/incoming-go/, separado de
recipes/incoming/ que ahora comparte el otro agente (stack gráfico tawasuyu). glab/yamlfmt
reescritas de import Alpine→formato Go limpio. mockery/stringer/dlv/revive no importaron (dlv→delve,
mockery→go-mockery sí).
2026-06-27 00:59:33 -04:00
sergioandClaude Opus 4.8 6fb7fd36d0 Etapa G: wayland + wayland-protocols CONSTRUIDAS (scanner desbloqueado)
Root cause real del bloqueo de wayland: NO era bug del wayland-scanner ni del XML
(ambos verificados OK). En el sandbox el scanner in-tree se compila ENLAZADO DINÁMICO
contra la musl (zig cc nativo no produce estático acá), y bajo musl-dinámico
`freopen(@OUTPUT@,"w",stdout)` queda roto por la copy-relocation de `stdout`: trunca el
archivo de salida pero manda el header generado a stdout → @OUTPUT@ vacío → `WL_SHM_FORMAT_*`
/ `wl_*` «undeclared» al compilar libwayland.

Fix: wayland-scanner-dup2-output.patch redirige la salida con `dup2(fd, STDOUT_FILENO)`
(nivel descriptor) en vez de `freopen` → robusto al modo de enlace. Verificado byte-a-byte:
salida idéntica a la del scanner estático (217484 B al archivo).

Segundo blocker (libwayland-server.so): libffi.a era no-PIC → `R_X86_64_PC32 ... recompile
with -fPIC` al ligarlo dentro de una .so. libffi ahora con --with-pic (superset; sigue
sirviendo para enlace estático). Mesa necesitará lo mismo en zlib/zstd/expat.

Restaura recipes/samurai.toml (lo necesita el stack adaptado de recipes/: libdrm/seatd/
wayland; las otras build-deps —meson/pkgconf/python3/expat/libffi— ya viven en recipes/).

Sellados: wayland (libwayland-{client,server,cursor,egl}.so + scanner + .pc),
wayland-protocols (XML + .pc). Queda mesa (iris-only).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 00:52:16 -04:00
sergio 5126a8b679 Etapa G: devuelve el stack gráfico Mesa a recipes/incoming/ (es de otro agente, tawasuyu)
Revierte el parqueo de 370e7b7: mesa/wayland/wayland-protocols/libdrm/seatd/samurai/meson +
patches son trabajo en curso de otro agente para el escritorio tawasuyu (commit 00339b6), no
cruft. samurai queda en su versión desarrollada (clon C de ninja, zig 0.13.0). syncthing sigue
diferido (es de go-12, build especial).
2026-06-27 00:33:22 -04:00
sergioandClaude Opus 4.8 93e3ea28d2 Etapa G: wayland root cause CONFIRMADO — scanner musl lee input vacío
Verificado que la fuente extraída protocol/wayland.xml está completa (165075 B) y
expat OK ⇒ el wayland-scanner compilado static-musl recibe el XML completo pero
emite headers vacíos y sale 0 (bug de runtime, falla con zig default y 0.13.0). FIX
recomendado: construir el scanner NATIVO (build-time only, no se shippea) y apuntar
libwayland al scanner externo; libwayland-{client,server} sí con musl/zig.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 00:14:03 -04:00
sergioandClaude Opus 4.8 060e24e564 Etapa G: debug wayland-scanner — genera headers vacíos (input vacío a expat)
El build de libwayland falla: wayland-scanner produce headers de protocolo vacíos
→ wl_*/WL_SHM_FORMAT_* undeclared. Diagnóstico documentado en la receta y en
docs/14-mesa-stack.md §Estado: el scanner sale 0 sin emitir; por stdin expat dice
'no element found at line 1 col 0' (input vacío). Descartado samurai-ordering (-j1
falla igual) y libexpat (estático, sin símbolos glibc-only). Resultados
inconsistentes entre corridas (wayland.xml 165KB vs vacío) → sospecha de extracción
.tar.xz no determinista, lectura de input miscompilada, o estado tocado por el farm.
Siguiente: corrida aislada que verifique el tamaño del wayland.xml extraído.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 00:12:14 -04:00
sergio 66ed94d4e0 Etapa G: corrige nota wayland (no es libexpat — es estático en hammer) 2026-06-26 23:59:37 -04:00
sergioandClaude Opus 4.8 99bbeac54a Etapa G: stack Mesa — 4/7 construidas (samurai, meson, libdrm, seatd)
Adapta las recetas importadas a fases hammer (meson/samurai directos, link=dynamic)
y construye+sella la base del stack gráfico para el escritorio tawasuyu:

- samurai: zig 0.13.0 (el default miscompila musl → reallocarray falla en runtime)
- meson:   Python puro, copia mesonbuild/+wrapper (sin wheel/gpep517 que hammer no tiene)
- libdrm:  core-only (GPU helpers disabled) → sin libpciaccess; iris usa libdrm core
- seatd:   libseat.so.1, -Dwerror=false (CMSG_NXTHDR de musl dispara -Wsign-compare)

Pendiente (docs/14-mesa-stack.md §Estado): wayland (los headers de wayland-scanner
no aparecen, prob. libexpat.so en el scanner), wayland-protocols (bloqueada por
wayland) y mesa (la grande, recortada iris-only). meson validado con zig cc sobre
proyectos meson reales (libdrm, seatd).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 23:58:37 -04:00
sergio e6ee70d783 Etapa G: cosecha go-12 (18) — terraform/infra/k8s (opentofu/helm/packer/rclone/terragrunt/...) 2026-06-26 23:52:01 -04:00
sergio 370e7b7a20 Etapa G: limpia cola go-12 — parquea batch gráfico C a hold-nongo + difiere syncthing
- mesa/wayland/wayland-protocols/libdrm/seatd/samurai/meson + patches: batch C de gráficos previo
  que jamás se mandó al worker, arrastrado en incoming/. Parqueado en tandas/hold-nongo/.
- syncthing: build especial (genera la GUI embebida 'auto.Assets' vía go generate/build.go) ⇒
  diferida a staged-fallidos con el motivo. Quedan 18 go-12 limpias en la cola.
2026-06-26 23:51:05 -04:00
sergioandClaude Opus 4.8 00339b625e Etapa G: cola del stack gráfico Mesa (iris) para el escritorio tawasuyu
Importa de Alpine aports (con parches musl) las recetas del stack que el greeter
real de mirada necesita en el rootfs de producto: libdrm 2.4.134, wayland 1.25.0,
wayland-protocols 1.48, seatd, mesa 26.1.1, + build-tools meson 1.11.1 y samurai
(ninja). Quedan en recipes/incoming/ como puntos de partida: traen los parches
musl de Alpine pero usan helpers de abuild — falta adaptarlas a fases hammer
(meson/samurai directos, link=dynamic), como elfutils.

docs/14-mesa-stack.md fija el plan: iris-only ⇒ SIN LLVM/Vulkan/X11 (el driver
gallium iris no necesita LLVM), lo que recorta clang/llvm/libclc/spirv/bindgen.
DAG de build (hojas→raíz) + estado por receta + el lado tawasuyu (recetas Cargo
arje-splash/net-bring-up estáticas ya construibles; mirada-greeter dinámico,
bloqueado por mesa). Contraparte de la seed arje-tawasuyu del monorepo.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 23:41:34 -04:00
sergio 3b23463ac1 Etapa G: detect_go_main ve el main bajo header de comentario de bloque
cmd/helm/helm.go arranca con un header Apache /* ... */ cuyas líneas internas no llevan '*';
el filtro por-línea ingenuo de is_main_go cortaba en 'Copyright ...' y daba 'no es main' ⇒
detect_go_main no hallaba cmd/helm y caía a '.' (raíz sin .go → 'no Go files in /src'). Ahora
rastrea el estado dentro/fuera de bloque /* */. Afecta a cualquier .go con header de bloque.
Test: detect_go_main_sees_main_under_block_comment_header.
2026-06-26 23:38:47 -04:00
sergio 06ba417336 Etapa G: granja Go pesada — watchdog no purga modcache con vendor activo + syncthing main en cmd/
go-12 (terraform/k8s) destapó la race: con árboles de deps de varios GB en paralelo, el disco
cruza DISK_HIGH y el watchdog corría 'go clean -modcache' a mitad de los 'go mod vendor' en vuelo
(.partial: no such file) ⇒ 5 recetas no convergían. Ahora difiere la purga del modcache si hay un
vendor de host activo (la purga de work/sources ya libera lo grueso y es segura). syncthing: main
real en ./cmd/syncthing (la raíz tiene build-constraints que excluyen todo).
2026-06-26 23:32:12 -04:00
sergio 5fb24e0deb Etapa G: corrige misimport helm (mtytel/synth → helm/helm k8s v4.2.1) 2026-06-26 23:26:03 -04:00
sergio 9af81626e9 Etapa G: manda go-12 al VPS (terraform/infra/k8s: opentofu/helm/packer/rclone/syncthing/...) 2026-06-26 23:19:35 -04:00
sergio f2e5aede14 Etapa G: cosecha go-11 (19) — recon/projectdiscovery (alterx/asnmap/cdncheck/tlsx/uncover/...) 2026-06-26 23:18:03 -04:00
sergio f068627e98 Etapa G: manda go-11 al VPS (recon/projectdiscovery) 2026-06-26 22:51:41 -04:00
sergio a5d2442211 Etapa G: cosecha go-10 (16) — config-lang/k8s-dev/recon 2026-06-26 22:51:31 -04:00
sergio ca121b5961 Etapa G: manda go-10 al VPS (jsonnet/cue/ytt/kpt/recon) 2026-06-26 22:36:48 -04:00
sergio 681ca509a0 Etapa G: cosecha go-9 (16) — linters/dev-tools Go 2026-06-26 22:36:36 -04:00
sergio ea4efdc8b6 Etapa G: manda go-9 al VPS (linters/dev-tools: shfmt/vale/goawk/gotestsum/...) 2026-06-26 22:26:52 -04:00
sergio ce126dd5ee Etapa G: cosecha go-8 (13, repo 444->457) — k8s grandes (cilium-cli/istioctl/gitea) 2026-06-26 22:26:44 -04:00
sergio 89a8678238 Etapa G: fuel-go-8 al VPS (devops/cloud/policy: opa/conftest/k0s/talosctl/...) 2026-06-26 20:18:35 -04:00
sergioandClaude Opus 4.8 cd0a52d18b Etapa G: cosecha go-7 (9, repo 435->444) — caddy/hugo/doctl/hcloud/earthly/...
Incluye binarios Go grandes (caddy web server, hugo SSG) que construyen OK.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 20:13:42 -04:00
sergioandClaude Opus 4.8 0cad0a7694 Etapa G: cosecha go-6 (16, repo 419->435) + manda go-7 al VPS
go-6: terraform-docs/tflint/tfsec/s5cmd/nerdctl/amass/infracost/kail/... yield
16/19, disco estable 65% con el watchdog nuevo (load bajo de 23 a 0.76).
go-7 (11): hcloud/doctl/flyctl/dagger/earthly/apko/scorecard/sake/... a la cola.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 17:46:23 -04:00
sergioandClaude Opus 4.8 64f4a20072 granja: watchdog purga caches Go cuando disco >=82%
El 'go mod vendor' acumula GOMODCACHE (~/go/pkg/mod) sin tope: una tanda Go
grande lo llevo a 31G y lleno el disco de 80G -> I/O-wait disparo el load a 23
(cuello real, no CPU/RAM). El watchdog ahora purga 'go clean -modcache/-cache'
cuando el disco supera DISK_HIGH% (def 82). El vendor/ local de cada receta ya
tiene lo necesario; si pisa un vendor en curso, esa receta reintenta.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 17:36:05 -04:00
sergio 7883bbf804 Etapa G: fuel-go-6 al VPS — infra/recon (terraform-docs/tflint/tfsec/s5cmd/nerdctl/amass/...) 2026-06-26 17:27:41 -04:00
sergioandClaude Opus 4.8 11783a468a Etapa G: cosecha go-5 del VPS — 25 tools (repo 394->419)
delve/gopls/staticcheck/gofumpt/buf/sqlc/goose/atlas/dolt/restic/kopia/
nats-server/charm/pop/wishlist/headscale/rqlite/nsq/dbmate/... yield 25/27.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 17:25:15 -04:00
sergioandClaude Opus 4.8 d7e5d206b5 Etapa G: manda reserva go-5 al VPS (27) + archiva 22 fallidos
Cosechados 61, archiva los 22 que fallan a tandas/staged-fallidos/, manda la
reserva premasticada go-5 (delve/gopls/staticcheck/buf/sqlc/atlas/dolt/restic/
kopia/nats-server/charm/headscale/...). Disco VPS limpiado 90->79%.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 16:09:35 -04:00
sergioandClaude Opus 4.8 25fc85db90 Etapa G: cosecha del VPS 4-cores — 61 tools (repo 333->394)
Mayor cosecha de la sesion. Mayoria Go (fuel-go-2/3/4 + restos fuel-6+7):
age/argocd/cosign/trivy/trufflehog/k9s/kubectx/nuclei/vhs/soft-serve/
golangci-lint/goreleaser/ffuf/katana/gitleaks/sops/step-cli/helmfile/
gomplate/dasel/lf/sttr/usql/vegeta/bombardier/... + tokio-console (Rust).
yield VPS 61/83. Corpus FIRMADO = 394.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 16:08:50 -04:00
sergioandClaude Opus 4.8 de04469458 Etapa G: fuel-go-5 premasticado — buffer reserva (~28 Go) en recipes/ready/
Reserva lista para el proximo envio cuando el VPS baje la cola: delve/gopls/
staticcheck/gofumpt/buf/sqlc/goose/atlas/dolt/restic/kopia/nats-server/charm/
pop/wishlist/headscale/rqlite/... (import 29/32). Premasticado = import+pin
local, build en el VPS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 14:57:31 -04:00
sergioandClaude Opus 4.8 9c99a78276 Etapa G: premasticado Go (fuel-go-3/4) — buffer de 40 al VPS de 4 cores
Premasticado (import+pin local, build en el VPS): 40 CLI Go k8s/devops/charm/
security: argocd/cosign/crane/trivy/trufflehog/vhs/soft-serve/k3d/kind/
kustomize/golangci-lint/goreleaser/air/stern/kubectx/helmfile/gomplate/...
Cola del VPS ahora ~83. Aprendizaje: Rust cola-larga de crates.io NO esta en
nixpkgs (0/7); Go es la veta (en nixpkgs, 100% yield). import-batch: usar -f
<file>, no args sueltos (zsh no splitea).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 14:55:23 -04:00
sergioandClaude Opus 4.8 465adc1374 Etapa G: fuel-go-2 + restos fuel-6+7 — recarga el VPS de 4 cores
Estrena el VPS repotenciado (CCX23, 4 cores/16GB, disco saneado 94->54%).
Cola 43: 28 Go nuevas (import 31/32 automatico is_go; age/sops/k9s/ffuf/
nuclei/gitleaks/dasel/vegeta/frp/chisel/lf/sttr/usql/subfinder/katana/...)
+ 15 restos Rust de fuel-6+7 (oxipng/grass/tokio-console/cargo-c/...).
syft/grype/gf a hold (vinieron de alpine, sin plantilla Go).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 14:29:20 -04:00
sergioandClaude Opus 4.8 b097782d1b Etapa G: cosecha fuel-go-1 — 21 CLI Go (repo 312->333), 100% yield
Primera cosecha Go a escala con el frente automatizado: import automatico ->
VPS construye 21/21 en paralelo (go cache-hit, sin race) -> cosecha trust-free
(of_tree identico cross-machine, p.ej. duf b3:1dbbedde laptop=VPS).

chezmoi/dive/duf/fx/fzf/gdu/glow/gobuster/gojq/go-task/grpcurl/gum/hey/jid/
lazydocker/lazygit/mage/mods/pet/skate/yq-go. Todos Go estaticos.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 13:31:26 -04:00
sergioandClaude Opus 4.8 0629d79cde Etapa G: fuel-go-1 — primera tanda Go con importador automatizado
22 CLI Go importadas 21/22 con plantilla Go automatica (deps.build=[go], sin
phases): chezmoi/dive/duf/fx/fzf/gdu/glow/go-task/gobuster/gojq/grpcurl/gum/
hey/jid/lazydocker/lazygit/mage/mods/pet/skate/yq-go. Smoke local: jid+fx OK.
Restos de fuel-6+7 a hold (retomar del store). glab descartado (vino de Alpine).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 12:45:19 -04:00
sergioandClaude Opus 4.8 5877363f5b Etapa G frente Go: AUTOMATIZADO end-to-end (BuildSys::Go + importador)
Cierra la fragilidad manual del patron Go (path del main por receta). Ahora
importar Go es tan automatico como Rust: import -> pin -> build, sin tocar nada.

- lib.rs: BuildSys::Go (go.mod, prioritario sobre configure/make auxiliares que
  traen muchos proyectos Go). resolve_phases deriva el compile generico:
  'go install -trimpath -ldflags=-buildid=' del paquete main. install='true'
  (go install ya deja en GOBIN=/out/usr/bin).
- detect_go_main(): detecta el dir del main por FILESYSTEM (no compila, evita
  contaminarse con mains de ejemplo rotos en docs/scripts que rompen go list).
  Heuristica raiz > cmd/<x> > menor profundidad; excluye vendor/docs/test/etc.
  go install nombra el binario solo (cmd/mlr->mlr, raiz->modulo).
- nix_import.rs + nix-import.sh: detecta is_go (vendorHash de buildGoModule),
  emite deps.build=['go'] sin phases (BuildSys::Go las deriva).
- tests: go_mod_wins_over_configure, detect_go_main_picks_cmd_over_docs.

Validado end-to-end: miller (cmd/mlr->mlr, esquiva docs rotos), amfora (raiz),
duf (import->pin->build 100% automatico, binario estatico que corre).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 12:34:27 -04:00
sergioandClaude Opus 4.8 8237635256 Etapa G: cosecha fuel-6+7 — 13 CLI-Rust (repo 299->312)
fuel-6: cargo-bundle-licenses/taskwarrior-tui/tenere/termsnap/the-way
fuel-7 (sistematico): cargo-ndk/cargo-sbom/espflash/grcov/maturin/
parallel-disk-usage/xwin/zizmor. El metodo crates.io entrego binarios reales.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 12:18:18 -04:00
sergio b06bdd4251 Etapa G: fuel-7 .patch acompañante a la cola 2026-06-26 11:36:39 -04:00
sergioandClaude Opus 4.8 e23814d24a Etapa G: fuel-7 — fuel SISTEMATICO desde crates.io (import 16/27)
Primer fuel no-nombrado-a-mano: top de command-line-utilities por recent-
downloads, filtrado a binarios CLI puro-Rust. Descubrio binarios que no
estaban en el radar: oxipng/grass/grcov/maturin/espflash/tokio-console/
zizmor/parallel-disk-usage/cargo-c/cargo-ndk/cargo-sbom/xwin/duckscript/
mandown/mkpasswd/release-plz. Rompe la saturacion del catalogo nombrado.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 11:36:26 -04:00
sergioandClaude Opus 4.8 bee5884544 Etapa G: fuel-6 — recarga del VPS (cola larga, corpus saturado)
import 12/15 nix: cargo-bundle-licenses/cargo-chef/gpg-tui/menyoki/riff/
smassh/taskwarrior-tui/tenere/termsnap/the-way/thokr/wiki-tui. Saca los 4
de fuel-5 que fallan (projectable/qrtool/rwalk/wthrr) a staged.

Nota: corpus saturado (494 nombres vistos); de 50 CLI-Rust mainstream solo
6 eran nuevas. Escalar mas exige enfoque sistematico (categorias crates.io).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 10:59:30 -04:00
sergioandClaude Opus 4.8 4fbf84c2c7 Etapa G: cosecha fuel-5 del VPS — 7 CLI-Rust (repo 292->299)
aichat/caligula/cotp/diskus/otree/pls/russ. Build-yield VPS 7/11; quedan
staged 4 (projectable/qrtool/rwalk fallan, wthrr misimport).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 10:45:53 -04:00
sergioandClaude Opus 4.8 74d5ab0b78 Etapa G frente Go: 10 recetas Go al corpus (repo 282->292) + fix GOWORK
Aplica el patron de amfora a la escoria Go. Build-yield 11/13:
- raiz: croc/gron/jump/gtrash/walk/qrcp (go build .)
- main en ./cmd/<x>: cheat/dnsx/dyff + miller (binario mlr)
Todos estaticos y corren (mlr 6.18.1, croc v10.4.4, cheat 4.5.0, ...).

fetch.rs: vendor_go_deps ahora setea GOWORK=off (go mod vendor aborta en
modo workspace si el arbol trae go.work).

Diferidas 2 (casos especiales): csvtk (go.mod en subdir, el vendor no corre
en /src) y git-town (go.work multimodulo -> inconsistent vendoring; necesita
go work vendor, no go mod vendor).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 05:06:21 -04:00
sergioandClaude Opus 4.8 4291b2adeb Etapa G frente Go: vendoring integrado en fetch — amfora construye, repro
Cierra el muro del frente Go (vendoring) replicando el patron de Rust:
vendorear in-situ en el fetch (host, con red), no tarball-al-mirror.

- fetch.rs: vendor_go_deps() analoga a vendor_cargo_deps — corre go mod vendor
  en el host si hay go.mod; el sandbox compila offline con -mod=vendor.
- lib.rs: engancha vendor_go_deps tras los patches cuando el arbol trae go.mod
  (sin BuildSys::Go; el compile lo fija la receta en build.phases).
- bootstrap-devfs.sh: instala el toolchain go del host (1.26.4, estatico) en
  .dev-fs/tools/go + symlink en ~/.cargo/bin (PATH del worker via .cargo/env).
- amfora: PRIMERA receta Go del corpus. Build end-to-end validado (repo+commit
  -> fetch vendorea -> sandbox offline -> binario estatico que corre, Amfora
  v1.11.0). REPRODUCIBLE bit-a-bit: dos stores independientes dan of_tree
  b3:9ec1d5fe (trimpath + buildid= en el compile). Promovida al repo (282).

Quedan 12 recetas Go en tandas/staged-2026-06-26/ (cheat/dnsx/croc/dyff/csvtk/
git-town/miller/jump/gron/qrcp/walk/gtrash): mecanico, copiar el patron de
amfora ajustando el nombre del binario.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 04:34:56 -04:00
sergioandClaude Opus 4.8 1670ebf933 Etapa G: frente Go — toolchain go.toml + patron de build de-riskeado
Las 13 recetas Go de la escoria (amfora/cheat/dnsx/croc/dyff/csvtk/git-town/
miller/jump/gron/qrcp/walk/gtrash) esperaban un toolchain Go. Lo construyo:

- recipes/go.toml: empaqueta el tarball binario oficial go1.26.4 (estatico ⇒
  corre en el sandbox musl), reubica GOROOT a /usr/lib/go, expone go/gofmt.
  Sella y se materializa como overlay via deps.build=["go"]. Pragmatico
  (como Alpine/nix); bootstrap-desde-fuente queda como frente futuro (cf mrustc).
- DE-RISK end-to-end: amfora compila OFFLINE con  +  ⇒ binario estatico que corre (Amfora v1.11.0).
- amfora.toml: plantilla de referencia del patron Go (phases compile correctas).

Muro restante (mecanico, sin incognitas): el source de hammer es repo+commit
sin vendor/; el build offline no baja modulos. Falta que el importador (con red)
corra  y empaquete el source-vendoreado, igual que Rust vendorea
crates. Eso destraba las 13 de una.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 03:45:37 -04:00
sergioandClaude Opus 4.8 08fdec3bbf Etapa G: fuel-5 — recarga la cola del VPS (parado 14h sin producir)
La cola previa (115) se agoto/enveneno: ultimo seal 2026-06-25T16:42,
~63 recetas fallan por deps no importadas (go/libconfuse/protoc/liblzma)
o C-heavy (libbpf). Diagnostico: el VPS giraba en falso re-confirmando
cache-hits ya cosechados.

- archiva la escoria de incoming/ (71 .toml + 38 .patch) a tandas/staged-2026-06-26/
- fuel-5: 18 candidatos CLI-Rust puro (anti-C); import 11/18 por nix, 10 pineados
  (aichat caligula cotp diskus otree pls projectable qrtool russ rwalk wthrr)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 03:27:38 -04:00
sergioandClaude Opus 4.8 5e9ffeea52 Etapa G: cosecha — promueve bob-nvim + republica 7 construidas-sin-firmar (repo 275→281)
Drenaje del desfase store->repo firmado: bob-nvim (incoming, unico
cache-hit real de los 72 staged) + du-dust/libgcrypt/libnl/libxml2/
linux-metal/nushell/wpa_supplicant (ya en recipes/, selladas pero sin
.swm publicado). El store del VPS ya estaba 100% en el laptop: no habia
backlog de cosecha, el gap real era store<->repo local.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 02:41:02 -04:00
sergio f75e256d08 Etapa G: git diferido en serio — diagnóstico afinado (muro en libgit.a)
Aislado: NO es curl/regex/-pie/libs externas (gcc -static -no-pie -lpcre2-8 -lz
linkea OK). El muro es libgit.a (objetos propios de git) con relocación
incompatible con -static -no-pie. Pase dedicado: V=1 + readelf -r del .o ofensor,
o -static-pie. Se puede; es iteración cara.
2026-06-26 00:48:38 -04:00