Commit Graph
755 Commits
Author SHA1 Message Date
Sergio 507d8de51c estado: cosecha granja 2026-08-31T18:01:58Z — avance del árbol KDE 2026-08-31 18:01:58 +00:00
Sergio b051b55758 estado: cosecha granja 2026-08-31T17:01:57Z — avance del árbol KDE 2026-08-31 17:01:57 +00:00
Sergio bac263be0c estado: cosecha granja 2026-08-31T16:31:56Z — avance del árbol KDE 2026-08-31 16:31:56 +00:00
Sergio 4c45e2d76e estado: cosecha granja 2026-08-31T16:02:55Z — avance del árbol KDE 2026-08-31 16:02:55 +00:00
Sergio 0e69546065 estado: cosecha granja 2026-08-31T15:32:25Z — avance del árbol KDE 2026-08-31 15:32:26 +00:00
Sergio 4d70466bea estado: cosecha granja 2026-08-31T15:02:14Z — avance del árbol KDE 2026-08-31 15:02:14 +00:00
Sergio 354cc4a83c estado: cosecha granja 2026-08-31T14:32:17Z — avance del árbol KDE 2026-08-31 14:32:17 +00:00
SergioandClaude Opus 5 84cbf968ba SDD 25 §9.5: el 7x mueve la telemetria de lado de la frontera de privilegio
El iterador pide CAP_BPF+CAP_PERFMON, y en tawasuyu el barrido de /proc de hoy
vive en `sandokan-local`, que corre SIN privilegio (se mete en un user
namespace a proposito). El unico proceso privilegiado es `sandokan-daemon`
—lo dice su propio cortafuegos.rs—. Verificado leyendo el repo espejo, no
supuesto: W2 por esta via no es un reemplazo en el lugar, cruza la frontera.
Es un coste de diseño que el cociente de 7x no muestra.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ACUcwo9mZsE5ocYVE9npih
2026-08-31 14:12:26 +00:00
SergioandClaude Opus 5 09168bf1e3 SDD 25 §9.5: el iterador BPF, medido — y H7 pasa a tener precio
Cae el quinto de los seis experimentos nombrados. Un `iter/task` que emite
registros binarios saca la foto de procesos cerca de 7x mas barato que el
barrido de /proc (6,9-8,0x en cuatro corridas de 33 rondas y las dos
direcciones), pero el numero que decide es otro: cuesta 1,75x el piso de
`readdir` contra 12,1x de /proc. Leer los campos deja de tener precio; lo que
se paga es enumerar.

Dos barreras comprobadas, no supuestas: el programa se ata por id de tipo BTF
del vmlinux (attach_btf_id=80137, prog_type=26) — sin DEBUG_INFO_BTF no hay a
que atarse, no hay version de esto que esquive H7 —, y hace falta
CAP_BPF+CAP_PERFMON, o sea que el consumidor es el supervisor, no la Card.

Y los dos caminos NO dicen lo mismo: 24 de 245 comm difieren, todos kworkers,
porque /proc SINTETIZA el nombre pegandole la workqueue. Un reemplazo vendido
como «la misma informacion mas rapido» tenia una diferencia de contenido, y
solo aparecio cotejando registro contra registro.

H7 deja de decir «pahole en el lab y un re-hasheo». Son cuatro cosas:
DEBUG_INFO_NONE=y en los .config sellados (BTF exige DWARF antes), el kernel
no declara la receta dwarves aunque este sellada, ese pahole es DINAMICO pese
a link="static" (INTERP + 5 NEEDED) y corre dentro del sandbox del build, y
BTF mete la version de pahole en la bit-repro con el lab fuera de hash_inputs.
Ya hay dos consumidores nombrados, no cero: este iterador y sched-ext.

Lo que sigue SIN medir es el precio en bytes del bzImage, que es como se pago
H1 — se mide construyendo, y esa es la primera tarea el dia que se decida.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ACUcwo9mZsE5ocYVE9npih
2026-08-31 14:08:40 +00:00
Sergio 8fef37dd19 estado: cosecha granja 2026-08-31T14:02:09Z — avance del árbol KDE 2026-08-31 14:02:09 +00:00
Sergio 43b07ce004 estado: cosecha granja 2026-08-31T13:31:56Z — avance del árbol KDE 2026-08-31 13:31:56 +00:00
Sergio c2deb11d56 estado: cosecha granja 2026-08-31T13:02:33Z — avance del árbol KDE 2026-08-31 13:02:33 +00:00
Sergio 04f2af8bf6 estado: cosecha granja 2026-08-31T10:01:55Z — avance del árbol KDE 2026-08-31 10:01:55 +00:00
Sergio 9e1a45688d estado: cosecha granja 2026-08-31T09:31:59Z — avance del árbol KDE 2026-08-31 09:31:59 +00:00
Sergio 6e0942d7db estado: cosecha granja 2026-08-31T09:02:01Z — avance del árbol KDE 2026-08-31 09:02:01 +00:00
Sergio 14d088e644 estado: cosecha granja 2026-08-31T08:31:59Z — avance del árbol KDE 2026-08-31 08:31:59 +00:00
Sergio c04f2a6e01 estado: cosecha granja 2026-08-31T08:02:11Z — avance del árbol KDE 2026-08-31 08:02:11 +00:00
Sergio 23cd4c2e82 estado: cosecha granja 2026-08-31T07:32:17Z — avance del árbol KDE 2026-08-31 07:32:17 +00:00
Sergio 0e1b320b5c estado: cosecha granja 2026-08-31T07:02:04Z — avance del árbol KDE 2026-08-31 07:02:04 +00:00
Sergio 5c691a292d estado: cosecha granja 2026-08-31T06:02:13Z — avance del árbol KDE 2026-08-31 06:02:13 +00:00
Sergio ae321b9cd2 estado: cosecha granja 2026-08-31T05:32:12Z — avance del árbol KDE 2026-08-31 05:32:12 +00:00
Sergio efa52d989a estado: cosecha granja 2026-08-31T05:02:06Z — avance del árbol KDE 2026-08-31 05:02:06 +00:00
Sergio 36209826ef estado: cosecha granja 2026-08-31T04:32:02Z — avance del árbol KDE 2026-08-31 04:32:02 +00:00
Sergio e0bcef6d8c estado: cosecha granja 2026-08-31T04:02:08Z — avance del árbol KDE 2026-08-31 04:02:08 +00:00
Sergio 8ecd500a1e estado: cosecha granja 2026-08-31T03:32:03Z — avance del árbol KDE 2026-08-31 03:32:03 +00:00
Sergio b421eb50f1 estado: cosecha granja 2026-08-31T03:02:05Z — avance del árbol KDE 2026-08-31 03:02:05 +00:00
SergioandClaude Opus 5 856e55131c estado: COSMIC 90/90 — LOS 7 PERFILES CIERRAN
Las 24 en deuda selladas, más clang18. base 52/52, cli 75/75, mirada 33/33, KDE 163/163,
sway 129/129, GNOME 119/119, COSMIC 90/90. Cero artefactos vacíos en 2103.

Las dos últimas (`cosmic-settings`, `cosmic-applets`) no cedieron al paralelismo: habían
caído con 3, 2 y 1 core. Lo que las destrabó fue MEMORIA, y la vía compatible con T9 es
zram, no swap en disco: se midió que el zram comprime a 4x real (1,9 G de páginas en
478 MB de RAM) y que los 4 GiB de `swap-zram` son sólo su default, sin justificación.

Se añadió un SEGUNDO dispositivo zram en vez de redimensionar el primero: redimensionar
exige `swapoff`, y con 1,94 G dentro y 994 MB de RAM libre eso es el escenario exacto que
volteó la máquina el 2026-08-17 —el propio script lo advierte y tiene freno—. Verificado
`backing_dev=none` en el dispositivo nuevo, que es el único agujero de zram contra T9.

`cosmic-settings` selló después con 3 cores, la misma config con la que había fallado ⇒
el paralelismo nunca fue la causa, sólo esquivaba el síntoma.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LykB7vw38b4Ck1Zij15RQ4
2026-08-31 02:40:27 +00:00
Sergio 5606e99c4d estado: cosecha granja 2026-08-31T01:32:33Z — avance del árbol KDE 2026-08-31 01:32:33 +00:00
Sergio 362ba5d53f estado: cosecha granja 2026-08-31T01:02:31Z — avance del árbol KDE 2026-08-31 01:02:31 +00:00
Sergio 2f2249ef0b estado: cosecha granja 2026-08-31T00:32:11Z — avance del árbol KDE 2026-08-31 00:32:11 +00:00
SergioandClaude Opus 5 0ac6fbfb5b targets: el perfil GNOME ya no reclama las 3 recetas aparcadas por diseño
`targets.toml` declaraba gnome-session, gnome-settings-daemon y gdm como raíces del
perfil, mientras el encabezado de las tres recetas dice "APARCADA por diseño" desde el
2026-08-07, verificado contra el meson.build de cada tag: las tres mueren en GTK3, que es
una de las tres deudas que el frente GNOME aparcó a propósito (GTK3 / X11 / PAM).

Dos documentos del repo decían cosas opuestas, y el que se mira primero es el grafo. El
resultado era deuda FANTASMA: escritorio-gnome reportaba 124/127 con 3 en `never` para
siempre, se leía como trabajo pendiente, y el worker las reintentaba en cada ciclo. En
esta misma sesión me hizo afirmar dos veces que GNOME estaba "a 3 recetas de cerrar".

No bloquean el escritorio: gnome-shell no depende de gnome-session ni de g-s-d, ni en
build ni para arrancar. El camino vivo es mutter → gnome-shell, lanzado por arje; el
único que pedía gnome-session era gdm.

Las recetas SIGUEN en el repo con su análisis intacto. Si algún día se autora GTK3, se
vuelven a añadir a `paquetes` y el objetivo reaparece solo.

escritorio-gnome: 119/119, CIERRA.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LykB7vw38b4Ck1Zij15RQ4
2026-08-31 00:05:24 +00:00
Sergio 1ac3ff3318 estado: cosecha granja 2026-08-30T23:32:00Z — avance del árbol KDE 2026-08-30 23:32:00 +00:00
Sergio 67697f86c8 estado: cosecha granja 2026-08-30T23:01:59Z — avance del árbol KDE 2026-08-30 23:01:59 +00:00
Sergio 75dddc0e86 estado: cosecha granja 2026-08-30T21:01:58Z — avance del árbol KDE 2026-08-30 21:01:58 +00:00
Sergio c1b71cb1cc estado: cosecha granja 2026-08-30T20:31:43Z — avance del árbol KDE 2026-08-30 20:31:43 +00:00
Sergio c09ad0f1bc estado: cosecha granja 2026-08-30T20:02:03Z — avance del árbol KDE 2026-08-30 20:02:03 +00:00
Sergio be8de4db24 estado: cosecha granja 2026-08-30T19:32:06Z — avance del árbol KDE 2026-08-30 19:32:06 +00:00
Sergio 94b9d0c6c0 estado: cosecha granja 2026-08-30T19:01:59Z — avance del árbol KDE 2026-08-30 19:01:59 +00:00
Sergio dd36ddebe2 estado: cosecha granja 2026-08-30T18:32:00Z — avance del árbol KDE 2026-08-30 18:32:00 +00:00
Sergio 30a319751b estado: cosecha granja 2026-08-30T18:01:58Z — avance del árbol KDE 2026-08-30 18:01:58 +00:00
Sergio 0e8aa5364e estado: cosecha granja 2026-08-30T17:32:05Z — avance del árbol KDE 2026-08-30 17:32:05 +00:00
Sergio 8a87b78a75 estado: cosecha granja 2026-08-30T16:32:01Z — avance del árbol KDE 2026-08-30 16:32:01 +00:00
Sergio 5d7c01d9a4 estado: cosecha granja 2026-08-30T15:01:59Z — avance del árbol KDE 2026-08-30 15:01:59 +00:00
Sergio cd919913d0 estado: cosecha granja 2026-08-30T14:32:09Z — avance del árbol KDE 2026-08-30 14:32:09 +00:00
Sergio c504450cad estado: cosecha granja 2026-08-30T12:32:04Z — avance del árbol KDE 2026-08-30 12:32:04 +00:00
Sergio 771efb2dd3 estado: cosecha granja 2026-08-30T11:32:06Z — avance del árbol KDE 2026-08-30 11:32:06 +00:00
SergioandClaude Opus 5 9142cd0565 upgrade: el mismo agujero que hydrate, en el proyector de generaciones
project_plan es target_root.join(rel) + escribir por ruta, igual que hydrate: un symlink de
directorio dejado por una generación anterior se seguía. Reproducido — la generación 2 escribía
usr/share/pkg/archivo FUERA del root y ApplyReport salía en verde.

Con --root / no cambia nada (todo empieza por /); el caso real es , que es como se arma una imagen.

Se mide el DIRECTORIO PADRE, no el destino: un Replaced sobre un symlink que apunta afuera es
legítimo porque rename pisa el symlink en vez de escribir a través de él, y medir el destino lo
rechazaría por error. Y raiz_real() resuelve el tramo existente del root dejando pegado el que
todavía no existe, para que la comprobación valga también sobre una imagen nueva.

Dos tests, uno por dirección: el que sale falla ruidoso, el que se queda dentro (usr-merge,
temas de iconos) sigue proyectando.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ACUcwo9mZsE5ocYVE9npih
2026-08-30 11:19:10 +00:00
SergioandClaude Opus 5 726068e653 hidratación: no se escribe a través de un symlink que sale del root (SDD 25 H3)
Buscando el sitio de H3 —«harkaq valida rutas a mano»— resultó que harkaq NO valida rutas a
mano: delega en Landlock. Donde no se validaba NADA era en hydrate.

Reproducido: hidratar es target_fhs.join(rel) y escribir por ruta, así que un symlink de
directorio ya puesto en el FHS se sigue. Artefacto A trae usr/share/pkg → /algún/lado (los
symlinks se replican literales, y así debe ser); al hidratar B, usr/share/pkg/archivo aterrizaba
FUERA del root y hydrate devolvía Ok(1). Con --into sobre una imagen eso es escribir en el
anfitrión diciendo que todo fue bien.

Cuánto se estaba disparando: cero. En el store hay 160 symlinks absolutos y NINGUNO apunta a un
directorio; de ~42 000 relativos ninguno sale de su artefacto. Mina desactivada, no incendio.

La comprobación va por DIRECTORIO (un canonicalize por fichero sería un realpath por entrada,
T8) y la semántica es la de RESOLVE_IN_ROOT, no la de NO_SYMLINKS: un symlink que se queda
dentro tiene que seguir andando —usr-merge /lib → usr/lib, los 22@2x → 22 de los iconos— y hay
test para cada dirección. Lo que queda de la propuesta (la versión sin carrera, con openat2 +
linkat/renameat) queda escrito con su precio: arrastra el camino de patchelf.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ACUcwo9mZsE5ocYVE9npih
2026-08-30 11:14:13 +00:00
SergioandClaude Opus 5 19b5d51dfe latido: el contrato del kernel se comprueba solo en cada cosecha
El gate de SDD 25 §4.ter existía y NADIE lo corría. Un kernel reconstruido sin MEMCG volvería
a pasar inadvertido — y ese fallo no se ve del lado del desarrollo, porque el kernel de la
máquina de trabajo sí trae MEMCG: sólo se ve comprobando el artefacto.

Mismo cable que el vigía de fuentes y por la misma razón que está escrita ahí arriba: lo que
nadie refresca envejece hacia el optimismo. Ahora cada ciclo deja el veredicto en
docs/state/kernel-contract.txt y el git log lo muestra como el resto del khipu.

El fichero se escribe por temporal y sólo se mueve si tiene contenido: contract sale != 0
cuando el contrato no se cumple —y ese rojo es justo lo que hay que guardar—, pero un fichero
vacío se leería como «nada que objetar».

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ACUcwo9mZsE5ocYVE9npih
2026-08-30 11:03:41 +00:00
Sergio 3ab74532af estado: cosecha granja 2026-08-30T10:02:00Z — avance del árbol KDE 2026-08-30 10:02:00 +00:00