Faltaba lo que la página no decía y es lo que distingue a la distro: no QUÉ es,
sino QUÉ SE DECIDIÓ y contra qué. Diez fichas, cada una con tres lecturas de lo
mismo — frente a lo habitual, técnicamente, y en simple— para que sirva igual al
que quiere el detalle y al que quiere entender de qué se trata.
01 fuentes clavadas por commit/sha256 06 sin systemd: arje y arranque por grafo
02 reproducible bit a bit, y why-differs 07 romper a mano y volver (overlay+diario)
03 el paquete es receta, no binario 08 Wayland-only y PipeWire
04 se reconstruye a sí misma (mrustc→rustc) 09 lo ajeno enjaulado y FUERA del store
05 musl estático con zig cc 10 hecha para que una IA la opere
La de los dos pisos no entra a la lista: es la sección de arriba y de ella cuelgan
las diez. Repetirla habría sido rellenar.
Ninguna ficha es opinión: todas salen de un ADR o de una decisión ya tomada en
`docs/` — 0006 fuentes pineadas, 0003 zig cc, 0007 arje, 0010 arranque por grafo,
0014 multi-origen con índice firmado, 0015 imágenes ajenas. Y las afirmaciones
técnicas se comprobaron en el código antes de publicarlas, no de memoria:
`--unshare-all` (que incluye la red) y `SOURCE_DATE_EPOCH=1` están en
`takana-build/src/sandbox.rs:415,453`.
⚠ El precio, dicho en el README del sitio: si una decisión cambia, esta página
miente hasta que alguien la toque. Se gana claridad en la landing y se paga en
mantenimiento.
Las fichas se armaron con un guion de un solo uso, que no entra al repo: la página
sigue siendo la única fuente y no hay generador que mantener. Renumerados los
sellos (el código pasa a 03, estado 04, paquetes 05, frontera 06) y la barra suma
su enlace. 142 pares es/en emparejados, etiquetas balanceadas, cero anclas rotas,
y lo servido coincide con el disco.
El DNS de `takana-os.net` y `www` quedó apuntado, así que Caddy sacó el
certificado de Let's Encrypt (vence el 2026-12-20) y el sitio responde 200. Un
detalle que costó dos minutos y no estaba escrito: **el vhost se había puesto
ANTES del DNS**, y Caddy no reintenta al instante — se queda en su backoff y el
nombre sigue mudo aunque el registro ya esté. `arjectl restart caddy` fuerza el
reintento; anotado en el README del sitio.
Dos nombres más, y los dos SÓLO redirigen:
takana.gioser.net → 301 a takana-os.net (la página vieja, la de hermanas.py)
git.takana-os.net → 301 a git.gioser.net (⏳ le falta el registro A)
`git.takana-os.net` no sirve gitea y no es por pereza: gitea tiene UN `ROOT_URL`
con el que arma cada enlace absoluto y cada URL de clon que muestra la UI.
Colgarlo de un segundo nombre daría un sitio que se contradice —entrás por uno y
te ofrece clonar del otro— y moverlo de verdad rompe los clones y el CI que ya
apuntan al viejo. `git clone` sigue el 301 sin chistar.
⚠ `publicar-webs.sh` comparaba `takana.gioser.net` contra el fichero en disco, y
eso ya no aplica: ahora es un 301. Se separó el control en dos —`comprobar` por
sha contra el disco, `redirige` por destino— y `takana-os.net` entra en el
primero. Lo que NO entra es el `pull`: su raíz es el árbol de trabajo que los
agentes editan, y tirar de ahí mueve HEAD bajo los pies de otro (CLAUDE.md §2 ter).
⚠ Y la primera versión de `redirige()` preguntaba por `getent hosts` quién
resuelve: **en esta caja `getent` NO EXISTE** —musl/busybox no lo traen— así que
daba 127 para todo y declaraba «no resuelve todavía» hasta de los nombres que
estaban andando. Un control que nunca mira nada se ve igual que uno en verde; es
la lección del reaper otra vez. Ahora se lo pregunta a curl, por su código 6.
Corrido entero: 4 verdes por contenido, 1 por destino, 1 avisando del A que falta.
La página suma los dos verbos que ya se pueden correr contra el repo remoto sin
construir nada (`repo list` y `repo verify`), que es el commit de al lado.
Vive junto a la página porque es su documentación, pero quedaba servido en
/README.md: rutas de la caja y el procedimiento del vhost, que no son para el
visitante. El bloque del README se sincroniza con el que quedó en la caja para
que no derive.
El dominio se registró hoy. La página entra al repo takana y NO al de gioser-web —
la que hay en `takana.gioser.net` la genera `hermanas.py` desde otro repo y todavía
apunta a `git.gioser.net/sergio/hammer`, un nombre que dejó de existir hace doce
días: una página sobre el proyecto que vive fuera del proyecto envejece sin que
nadie se entere.
Lo que la página publica, que es lo que se pidió: **dos direcciones**, no una.
código https://git.gioser.net/sergio/takana (clone por HTTPS)
paquetes https://takana-os.net/repo/ (el MISMO /srv/repo firmado)
El `/repo/` cuelga por `handle_path` del mismo árbol que sirve `repo.gioser.net`,
así que es la dirección en el dominio propio sin DNS ni certificado nuevos.
Comprobado de punta a punta antes de escribirlo en la página, no supuesto:
takana install age --repo https://repo.gioser.net --trust ./trust
⇒ release: trusted (by release) · apply OK
⚠ De paso se vio que `takana repo list --repo <url>` NO habla HTTP —sólo mira
directorios locales— y ante una URL responde «repo vacío» con salida 0 en vez de
decir que no sabe. Queda anotado en el README del sitio; el arreglo es otra unidad.
Las cifras de la tabla salen de `docs/state/build-state.json` y del store de la
caja, contadas hoy: 941 recetas, 926 selladas, 15 en deuda, 1407 artefactos, y las
clausuras de los cuatro escritorios (KDE 418/420, GNOME 318/319, COSMIC 282/283,
sway 269/270). No se estiman.
Sin terceros: las tipografías de la marca viajan en `fuentes/` (154 KB, subconjuntos
latin y latin-ext, las dos SIL OFL con su licencia al lado). Un sitio sobre no
depender de binarios ajenos que pidiera las fuentes a Google en cada visita sería
una contradicción barata.
Contraste medido, no a ojo: el brasa `#DF6B2A` de la marca sobre alpaca da 2,9:1 y
no se lee, así que el acento del tema claro es un brasa oscurecido `#9E3F16`.
Ninguna combinación de la página baja de 4,5:1.
El vhost ya está puesto en la caja (respaldo del Caddyfile + `caddy validate` +
`arjectl restart caddy` + testigo `git.gioser.net` respondiendo antes de darlo por
bueno). Falta lo único que no puedo hacer yo: los dos registros A a 2.29.29.217.