@jossuealcala/madre 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/ADDITIONAL-TERMS.md +93 -0
  2. package/CHANGELOG.en.md +1945 -0
  3. package/CHANGELOG.md +78 -1
  4. package/CONTRIBUTING.md +5 -1
  5. package/LICENSE +661 -202
  6. package/NOTICE +34 -3
  7. package/README.en.md +245 -0
  8. package/README.md +23 -13
  9. package/TRADEMARKS.en.md +50 -0
  10. package/TRADEMARKS.md +82 -0
  11. package/bin/madre.mjs +2 -0
  12. package/docs/INTERNALS.md +8 -2
  13. package/docs/REFERENCE.md +17 -7
  14. package/docs/en/INTERNALS.md +103 -0
  15. package/docs/en/REFERENCE.md +339 -0
  16. package/docs/en/SDK.md +306 -0
  17. package/docs/en/training/README.md +59 -0
  18. package/docs/madre-banner.png +0 -0
  19. package/docs/training/README.md +20 -8
  20. package/docs/training/train.sh +2 -1
  21. package/package.json +14 -5
  22. package/public/abduction.js +2 -0
  23. package/public/app.js +2066 -488
  24. package/public/attribution.js +71 -0
  25. package/public/brands.js +3 -1
  26. package/public/editor.js +2 -0
  27. package/public/es.js +1706 -1226
  28. package/public/i18n.js +25 -1
  29. package/public/index.html +13 -10
  30. package/public/inquiry.js +2 -0
  31. package/public/loader.js +2 -0
  32. package/public/macroverso.js +24 -2
  33. package/public/nostromo-engine.js +2 -0
  34. package/public/resay.js +6 -0
  35. package/public/review-ask.js +2 -0
  36. package/public/routing.js +23 -1
  37. package/public/salas-mac.css +539 -28
  38. package/public/salas-mac.html +30 -22
  39. package/public/salas-mac.js +1498 -144
  40. package/public/salas.css +2 -0
  41. package/public/salas.html +1 -0
  42. package/public/salas.js +4 -2
  43. package/public/styles.css +1123 -20
  44. package/public/syntax.js +2 -0
  45. package/public/touch.js +2 -0
  46. package/public/tour-chapters.js +164 -52
  47. package/public/tour.js +85 -12
  48. package/public/troubleshooting.js +20 -18
  49. package/src/adapters/claude.mjs +2 -0
  50. package/src/adapters/codex.mjs +2 -0
  51. package/src/adapters/gemini.mjs +3 -1
  52. package/src/adapters/madre.mjs +3 -1
  53. package/src/adapters/opencode.mjs +7 -3
  54. package/src/adapters/process.mjs +2 -0
  55. package/src/asking.mjs +2 -0
  56. package/src/auth-probe.mjs +32 -7
  57. package/src/bridge/devices.mjs +2 -0
  58. package/src/bridge/handoff.mjs +2 -0
  59. package/src/bridge/host.mjs +2 -0
  60. package/src/bridge/network.mjs +2 -0
  61. package/src/bridge/policy.mjs +3 -1
  62. package/src/bridge/qr.mjs +2 -0
  63. package/src/bridge/server.mjs +2 -0
  64. package/src/capabilities.mjs +2 -0
  65. package/src/chats.mjs +2 -0
  66. package/src/checkpoint.mjs +2 -0
  67. package/src/choices.mjs +2 -0
  68. package/src/cli-args.mjs +2 -0
  69. package/src/cold.mjs +2 -0
  70. package/src/commands.mjs +2 -0
  71. package/src/config.mjs +2 -0
  72. package/src/conversation-context.mjs +15 -1
  73. package/src/credentials.mjs +112 -3
  74. package/src/dataset.mjs +2 -0
  75. package/src/directives.mjs +8 -6
  76. package/src/distiller.mjs +2 -0
  77. package/src/embeddings.mjs +2 -0
  78. package/src/enlaces.mjs +6 -4
  79. package/src/event-store.mjs +2 -0
  80. package/src/exam.mjs +6 -4
  81. package/src/extensions.mjs +33 -10
  82. package/src/eyecat-watch.mjs +2 -0
  83. package/src/eyecat.mjs +2 -0
  84. package/src/file-ops.mjs +2 -0
  85. package/src/files.mjs +32 -0
  86. package/src/github.mjs +2 -0
  87. package/src/heartbeat.mjs +57 -0
  88. package/src/i18n.mjs +15 -1
  89. package/src/image-studio.mjs +2 -0
  90. package/src/json-file.mjs +2 -0
  91. package/src/launch.mjs +2 -0
  92. package/src/lease.mjs +5 -1
  93. package/src/lobby-work.mjs +2 -0
  94. package/src/local-ai.mjs +50 -0
  95. package/src/looks.mjs +40 -5
  96. package/src/maturity.mjs +3 -1
  97. package/src/mcp/connect.mjs +345 -0
  98. package/src/mcp/github-server.mjs +2 -0
  99. package/src/mcp/image-server.mjs +2 -0
  100. package/src/mcp/memory-server.mjs +2 -0
  101. package/src/mcp/proxy.mjs +153 -0
  102. package/src/mcp/smtp-server.mjs +2 -0
  103. package/src/memory-dashboard.mjs +2 -0
  104. package/src/memory-tools.mjs +2 -0
  105. package/src/memory.mjs +2 -0
  106. package/src/models.mjs +83 -3
  107. package/src/modules/ahp.mjs +2 -0
  108. package/src/modules/ash-policy.mjs +2 -0
  109. package/src/modules/ash.mjs +3 -1
  110. package/src/modules/bishop-plan.mjs +5 -3
  111. package/src/modules/bishop.mjs +13 -11
  112. package/src/modules/choices.mjs +2 -0
  113. package/src/modules/correo.mjs +2 -0
  114. package/src/modules/enlaces.mjs +2 -0
  115. package/src/modules/git-pulse.mjs +2 -0
  116. package/src/modules/github.mjs +2 -0
  117. package/src/modules/helpers.mjs +2 -0
  118. package/src/modules/image-studio.mjs +3 -1
  119. package/src/modules/index.mjs +4 -1
  120. package/src/modules/intents-calibration.mjs +2 -0
  121. package/src/modules/intents-desk.mjs +4 -2
  122. package/src/modules/intents-observe.mjs +2 -0
  123. package/src/modules/intents-policy.mjs +4 -1
  124. package/src/modules/intents-try.mjs +2 -0
  125. package/src/modules/intents.mjs +8 -6
  126. package/src/modules/mcp-connect.mjs +293 -0
  127. package/src/modules/ollama.mjs +17 -3
  128. package/src/modules/playwright.mjs +25 -10
  129. package/src/modules/ripley.mjs +2 -0
  130. package/src/modules/runs.mjs +5 -3
  131. package/src/modules/sdk.mjs +2 -0
  132. package/src/modules/updates.mjs +2 -0
  133. package/src/mother.mjs +2 -0
  134. package/src/ollama.mjs +2 -0
  135. package/src/outbound.mjs +24 -5
  136. package/src/override.mjs +2 -0
  137. package/src/ports.mjs +2 -0
  138. package/src/prices.mjs +2 -0
  139. package/src/privacy.mjs +2 -0
  140. package/src/quota-monitor.mjs +2 -0
  141. package/src/quota-sources.mjs +2 -0
  142. package/src/request-guard.mjs +2 -0
  143. package/src/review-ask.mjs +2 -0
  144. package/src/room/archivist.mjs +2 -0
  145. package/src/room/attachments.mjs +2 -0
  146. package/src/room/budget.mjs +2 -0
  147. package/src/room/context.mjs +2 -0
  148. package/src/room/control.mjs +7 -1
  149. package/src/room/copilot.mjs +76 -0
  150. package/src/room/economy.mjs +2 -0
  151. package/src/room/escalation.mjs +3 -0
  152. package/src/room/ghost.mjs +2 -0
  153. package/src/room/guard.mjs +2 -0
  154. package/src/room/prompt.mjs +13 -4
  155. package/src/room/returns.mjs +82 -0
  156. package/src/room/runs.mjs +4 -0
  157. package/src/room/vectors.mjs +2 -0
  158. package/src/room.mjs +264 -45
  159. package/src/router.mjs +2 -0
  160. package/src/runs.mjs +2 -0
  161. package/src/runtime-detection.mjs +2 -0
  162. package/src/salas.mjs +2 -0
  163. package/src/sentinel-errors.mjs +2 -0
  164. package/src/server-sentinel.mjs +2 -0
  165. package/src/server.mjs +485 -55
  166. package/src/setup.mjs +2 -0
  167. package/src/smtp.mjs +2 -0
  168. package/src/tour.mjs +26 -9
  169. package/src/updates.mjs +2 -0
  170. package/src/usage-sentinel.mjs +2 -0
  171. package/src/vault.mjs +2 -0
  172. package/src/verdict.mjs +3 -1
  173. package/src/whats-new.mjs +12 -10
  174. package/docs/madre-banner.svg +0 -25
package/CHANGELOG.md CHANGED
@@ -4,7 +4,84 @@ Todas las versiones publicadas de `@jossuealcala/madre`. Fechas en ISO.
4
4
 
5
5
  Una versión se cierra cuando está en npm: hasta entonces su sección se llama **Sin publicar** y puede crecer. Cada versión publicada tiene exactamente una etiqueta `vX.Y.Z`, una release en GitHub y una sección aquí; el parche puede llegar a dos dígitos (`0.2.10`) antes de subir el menor. Ver `docs/ROADMAP.md` para el criterio de qué sube cada número.
6
6
 
7
- ## 1.0.1 · Sin publicar
7
+ ## 1.0.3 · Sin publicar
8
+
9
+ ## 1.0.2 · 2026-10-16
10
+
11
+ **Licencia nueva.** Desde 1.0.2, MADRE es software libre bajo la **GNU AGPL v3** con [términos adicionales](ADDITIONAL-TERMS.md) según su sección 7: cualquiera puede usarlo, estudiarlo, modificarlo y hacer forks, también con fines comerciales, siempre que su versión siga abierta con la misma licencia y mantenga visible la autoría —«MADRE ‹versión› · © 2026 Jossue Alcalá» en la esquina de cada proyecto y de Inicio, con enlace a jossuealcala.com, o «Desarrollado con MADRE de Jossue Alcalá» si lleva otro nombre—. Ajustes › Actualizaciones y errores › **Licencia y autoría** dice todo esto en la app. Hasta la 1.0.1, MADRE se publicó con licencia Apache 2.0, y esas versiones la conservan.
12
+
13
+ Para quien la usa es un parche: no hay saludo, recorrido ni «Qué hay de nuevo». Lo nuevo se dice con avisos de la primera vez, uno a la vez y una sola vez, en palabras simples y con lo que nombran iluminado en la pantalla: el copiloto, Herramientas externas (MCP), los archivos que se mantienen al día, la memoria sin escribir el nombre, los avisos que se hacen puntos y, en Inicio, el botón para agregar widgets.
14
+
15
+ - **El resultado de los comandos que pide un agente le regresa solo.** Cuando corres las líneas de un ```pulse-run, el resultado vuelve al agente que lo pidió en una respuesta propia, con el modo que tenía (hasta #3), lo que estaba contestando y la salida de cada línea; ya no hace falta escribir «ya lo corrí». Si ese agente sigue contestando, espera; DETENER TODO lo retiene. La tarjeta trae **Correr todos**, **Devolver lo que corrió** (cuando no quieres correr el resto) y dice a quién vuelve. Una salida larga ya no saca de la conversación la petición del humano: en lo que leen todos los agentes ocupa como mucho ~1,200 caracteres (su principio y su final).
16
+ - **Los agentes ya no confunden su permiso.** En #3 y #4 la instrucción del modo decía «solo lectura» encima del permiso para editar: con ACCESO TOTAL un agente respondía que solo inspeccionaría. Ahora dice lo que cada modo permite.
17
+ - **El permiso se pide con su tiempo.** Un agente que necesita más pide el modo y cuánto («Necesito #3 por 15 min»); la tarjeta lo muestra, deja elegir 5, 15 o 30 min (#4: 5) o solo este mensaje, y al confirmar, el permiso dura ese tiempo.
18
+ - **Planes en todos los modos.** La regla de no usar subagentes de la propia app se leía como «no armes planes», y con #2, #3 y #4 los agentes dejaban de proponerlos. El selector de modo dice ahora que cada modo también arma planes con otros agentes.
19
+ - **Copiloto.** Un robot junto a modo · modelo · esfuerzo. Lo enciendes confirmando #3 EDITAR una sola vez, por 30 min, 1, 4, 8 o 24 h, y mientras dura, el agente al que le escribes conduce el proyecto en #3 sin pedirte confirmar cada mensaje: edita, arma planes y le da a cada paso del plan hasta #3, y corre por su cuenta los comandos seguros (leer, pruebas, compilar, git local), cuyo resultado le regresa. Nunca borra (si se borra un archivo, MADRE lo regresa al terminar la respuesta), nunca toca las carpetas de MADRE ni los secretos, nunca abre #4 ni sube, publica o envía nada fuera de la computadora; tras 8 rondas seguidas sin ti se detiene y avisa. Arriba de la caja de escribir se lee HUMANO › COPILOTO › @AGENTE ›, y sus respuestas llevan un robot verde. DETENER TODO o un reinicio lo apagan.
20
+ - **Herramientas externas (MCP)**, en los Ajustes de cada proyecto. Agrega servidores MCP por comando o por dirección web (sin sesión, con token o iniciando sesión con OAuth, como los conectores de Claude), o tráelos de `.mcp.json`, `opencode.json`, Claude Code, Codex, Gemini CLI o Cursor; al importar solo se leen nombres y los valores se guardan de forma segura en MADRE. MADRE arranca y revisa cada servidor antes de que un agente lo use: el que no responde se queda fuera y su fila dice por qué. Las herramientas que solo leen van desde #1; las que actúan, desde el modo que elijas (#4 si no lo bajas). Ningún secreto queda en la línea de comandos ni en un archivo del proyecto.
21
+ - **La terminal, compacta.** Cada salida de comando es una píldora del ancho de lo que dice —si salió bien o falló y en cuánto, el comando y quién lo pidió—; la salida completa se abre con un clic.
22
+ - **Un chat más fácil de leer.** Las respuestas van en burbuja con el nombre del agente en su píldora; los adjuntos son tarjetas con tipo y tamaño; mientras un agente piensa, su avatar respira junto a lo que hace y el tiempo; el plan es una lista de tareas; al pie queda la hora y lo que costó aparece al pasar el cursor; las elecciones son una lista con número; el permiso cabe en una línea y, al concederse, queda como divisoria; los comandos pedidos van en pasos numerados que marcan ✓ o ✕; y hay más aire entre respuestas. Todo lo de un agente (su cabecera, su respuesta, lo que pide y sus comandos) empieza en el mismo borde, y su cabecera cabe en una línea: con poco espacio se calla primero el esfuerzo.
23
+ - **Los avisos se vuelven puntos.** Los avisos del chat se hacen un punto a los 10 s, del color de su tipo (rojo diagnóstico, ámbar permiso, verde bien, gris lo demás); un clic los abre en una lista que se lee: la etiqueta arriba, lo que dice debajo y lo repetido una sola vez con «×N». Los puntos son pequeños y tenues para no ensuciar la conversación. Se quedan abiertos los que piden algo: una falla con REINTENTAR, un permiso esperando, un módulo por instalar, los cambios con DESHACER, el aviso de solo lectura y los de Diagnóstico.
24
+ - **La lista de archivos ve lo que cambió.** Lo que un comando o un agente deja donde git no mira (una carpeta ignorada como `output/`) se encuentra por su fecha y se reporta; la lista se actualiza al terminar cada respuesta y cada comando, y tiene botón de actualizar junto a Ajustes. Las carpetas del camino llevan un punto hueco con el color de quien tocó algo dentro, y el archivo, uno lleno con «Último cambio: @agente · hace 5 min».
25
+ - **Navegador de pruebas.** Si falta el navegador elegido, el aviso dice cuál y el comando exacto (`npx @playwright/mcp install-browser webkit`, `chromium`…), en vez de pedir siempre chrome-for-testing; la revisión ya no reutiliza la respuesta de otro navegador.
26
+ - **Ajustes más fáciles de entender**, en español y en inglés: Memoria es «Lo que recuerda», Conectar MCP es «Herramientas externas (MCP)», Intenciones es «Esfuerzo sugerido», y cada ajuste dice qué hace sin jerga (archivista, destilar, recall, embeddings…).
27
+ - **El Mapa de memoria puede dejar de pedir el nombre.** «No volver a preguntar…» en su confirmación lleva a **Ajustes › Permisos › Acceso a la memoria**: pedir siempre, 1, 8 o 24 h, o nunca. Se guarda en este navegador y para ese proyecto (también el Coordinador).
28
+ - **Agregar widgets a Inicio desde la barra.** Un botón propio junto a Recargar abre «Agregar a Inicio»; antes solo se llegaba con clic derecho.
29
+ - **Inicio y los proyectos en pantallas angostas.** En tableta, un panel lateral solo pasa a ventana en vez de dejarle una tira a la conversación; en teléfono, las barras ya no quedan debajo de sus botones de la derecha: del logo queda solo el pulso, la píldora del recorrido dice «Recorrido · 3/13» y Recargar sale de la barra (la página se recarga sola al jalar). «+n» de los proyectos abiertos siempre se ve completo.
30
+ - **OpenCode con esfuerzo y todos sus proveedores.** Cada modelo de OpenCode ofrece sus propios niveles de razonamiento (los que publica: de «ninguno» a «máximo») y se mandan con `--variant`. Agregar un proveedor ya ofrece todos los que una sola llave abre en el catálogo de OpenCode (Groq, DeepSeek, Mistral, xAI, Together, Fireworks…), los más usados primero. Gemini CLI no tiene cómo elegir el esfuerzo por mensaje: lo decide él.
31
+ - **Entrena tu propia IA, explicado y en orden.** Qué son los datos de entrenamiento, siete pasos numerados y la opción para Linux con tarjeta NVIDIA (experimental: MLX funciona ahí, pero mlx-lm solo garantiza los chips de Apple).
32
+ - **Tarjetas más claras.** La de cada agente: su sesión, una cifra, cuatro datos, su plan y un botón a Ajustes. «Lo que se envía» se ve como el resto de MADRE: título alineado, pestañas centradas, los botones de siempre y sin los textos en mayúsculas de la consola. El panel del copiloto, más ordenado; «AUTO» en la esquina de «Cuánto piensa» y los avisos que flotan sobre el fondo.
33
+ - **La vista dividida cabe.** La barra del proyecto se acomoda a su propio ancho cuando está junto a otra conversación, al navegador o a dos paneles laterales, sin pisar Inicio · Proyectos · Ajustes; y la conversación se desvanece antes de la caja de escribir en vez de asomarse debajo.
34
+ - **Las ventanas vuelven de una en una.** Abrir los archivos o cualquier otra ventana desde la barra ya no trae de vuelta las que habías mandado al borde; cada una vuelve cuando la pides.
35
+ - **MADRE se abre en tu idioma.** La primera vez, si nadie lo ha elegido, MADRE toma el idioma de tu navegador: español en cualquiera de sus variantes, inglés para cualquier otro. Se guarda como si lo hubieras elegido, así que Inicio y todos los proyectos lo siguen, y se cambia cuando quieras en Ajustes › Apariencia. Quien ya eligió idioma no nota nada.
36
+ - **MADRE también en inglés fuera de la app.** El README, el CHANGELOG, las marcas y la documentación de uso (referencia, SDK, internos, conectores, hoja de ruta, entrenamiento y recolector de reportes) tienen su versión en inglés (`README.en.md`, `CHANGELOG.en.md`, `TRADEMARKS.en.md`, `docs/en/`), y las notas de cada versión en GitHub van en los dos idiomas. El español sigue siendo el original.
37
+ - **Las conversaciones abren al instante.** Una conversación de 166 mensajes tardaba 11.5 s en dibujarse: cada evento leía la altura de la conversación y la bajaba al final, y el navegador volvía a acomodarla entera dos veces por evento. Ahora el historial se dibuja de una vez y baja al final una sola vez: 40 ms, también al cambiar de conversación. La página recibe solo la última lectura de cuota de cada agente (eran el 87 % de lo que se descargaba: 3.3 MB → 0.6 MB; el registro las guarda todas), lo que está fuera de la pantalla no se dibuja hasta acercarse (`content-visibility`), y los scripts y estilos se reutilizan entre visitas (`ETag`, 304) y viajan comprimidos.
38
+ - **La esquina de MADRE lleva a su autor.** «MADRE 1.0.2 · © 2026 Jossue Alcalá», en cada proyecto y en Inicio, es un enlace a jossuealcala.com y ya no se pega a la barra de modo cuando el centro es angosto. Los términos adicionales de la licencia exigen conservarla.
39
+ - **«Mac» solo en una Mac.** Donde corre en otra computadora, como Linux, MADRE dice «esta computadora» en vez de «esta Mac», en los dos idiomas; lo que habla de hardware de Apple («Mac con chip M») no cambia.
40
+ - **El inglés dice lo mismo que el español.** 215 frases reescritas con los nombres nuevos y sin jerga (lease, key, aberration, sentinel, HOLD/BRIDGE…).
41
+
42
+ ## 1.0.1 · 2026-10-14
43
+
44
+ - **MADRE habla más claro.** Se revisaron los textos de toda la interfaz, del recorrido y de «Qué hay de nuevo» para que se entiendan aunque no sepas de IA ni de programación: 1,157 cambios, solo de palabras. *Turno* ahora es *respuesta*; los estados de una memoria son SIN CONFIRMAR, CONFIRMADA, EN CUARENTENA y DESCARTADA; Diagnóstico habla de *problema* y *solución*; la llave de #3 y #4 es *confirmar* y la de un proveedor, *llave de API*. Los comandos de la consola siguen en inglés y los guiños a Alien siguen ahí.
45
+ - **IA local por proyecto.** En **Inicio › Ajustes › IA local** eliges qué proyectos usan Ollama: **Automático** (todos, como antes), **Uno a uno** (solo los que enciendes) o **Manual** (cada proyecto decide en sus Ajustes). Cambiar de modo no toca a los proyectos que ya existen, solo cómo empiezan los nuevos; el cambio llega al instante a los proyectos abiertos. En un proyecto, «Activo» de Módulos › IA local ya no apaga la IA local de los demás. El widget Modelos locales marca los proyectos sin ella y lleva a estos ajustes.
46
+ - **Un aviso diario de que MADRE sigue en uso.** Una vez al día cada copia le dice a madre.run que está encendida: un identificador al azar que la copia crea para sí, la versión de MADRE, el sistema y la versión de Node. Nada más: ni nombre, ni correo, ni proyectos; madre.run no guarda la IP. Es la forma de saber cuántas personas usan MADRE, qué versiones corren y si regresan. Está siempre encendido, aparece en «Lo que se envía» y en *Lo que sale de la máquina* de la referencia, y sin red falla en silencio.
47
+ - **Un recorrido para quien ya tenía 1.0.** Quien terminó el recorrido de 1.0 ve un saludo propio y solo lo que cambió: los nombres más claros, Inicio a tu manera, los widgets, la IA local por proyecto, el cielo de conexiones, Ajustes y los gestos nuevos, cada capítulo con una línea «Nuevo desde 1.0». Para quien empieza, el saludo lleva primero a conectar los agentes y agregar proyectos, y un proyecto ya no lo saluda antes que Inicio.
48
+ - **Guías de los widgets y avisos de la primera vez.** Un capítulo explica cada widget, y la primera vez que uno aparece en Inicio dice qué muestra. La primera vez que abres Conexiones, el Mapa de proyectos, Ajustes o Agregar en Inicio, o Ajustes, Módulos, Diagnóstico, el Mapa de memoria, Agentes o Primeros pasos en un proyecto, una tarjeta dice para qué sirve.
49
+ - **Reiniciar todos.** Después de actualizar, Inicio reinicia de una vez los proyectos que siguen con la versión anterior, desde **Te necesita** o **Ajustes › Versión**. Los que están trabajando o esperándote se dejan para después, y te dice cuáles.
50
+ - **Un proyecto abierto en otro MADRE lo dice.** Abrirlo desde Inicio cuando ya está abierto en otra parte responde con la dirección donde está, en lugar de «no abrió».
51
+ - **La marca MADRE, por escrito.** `TRADEMARKS.md` dice qué se puede hacer con el nombre y qué no; `NOTICE` lleva la línea que todo fork conserva («Based on MADRE by Jossue Alcalá»), y las contribuciones se firman con `Signed-off-by`.
52
+ - **Claude ya se puede conectar con tu propia API key.** Al iniciar sesión eliges la puerta: «Cuenta de Claude» (tu suscripción) o «Consola de Anthropic» (se cobra a tu crédito de API). También puedes pegar tu `ANTHROPIC_API_KEY`: se escribe donde el CLI de Claude la lee (`~/.claude/settings.json`, solo para ti), MADRE no guarda copia y, si el CLI no la acepta, todo vuelve como estaba. Esa llave manda sobre todo Claude Code de esta computadora, y MADRE lo dice antes de guardarla.
53
+ - **Un inicio de sesión con navegador ya se puede terminar dentro de MADRE.** La página de Claude devuelve un código y su CLI lo espera: antes no había dónde pegarlo y el intento moría a los cinco minutos. Ahora la dirección se queda a la vista, hay una caja para el código y una tecla para cancelar; la espera dura hasta quince minutos, porque del otro lado hay una persona.
54
+ - **Inicio trae los ajustes de conexión completos.** La misma tarjeta que el proyecto: con qué cuenta está conectado cada agente, las puertas para entrar, la caja para pegar una llave, la página del inicio de sesión y su código. Un campo a medio escribir ya no se borra cuando el panel se actualiza solo.
55
+ - **El README abre con el logo oficial de MADRE** y la frase de 1.0, en lugar del banner con la firma «MU/TH/UR 6000 · INTERFACE 2037».
56
+ - **Los planes revisan sus resultados y pueden continuar** hasta tres tramos por petición. Un paso sin número sigue leyendo, o creando si el plan ya puede crear; uno que pide `#3` o `#4` por encima de tu mensaje espera tu llave para ese agente, y `#4` la pide siempre.
57
+ - **Inicio muestra las conexiones directas entre proyectos** antes de las del Coordinador y deja más espacio para leerlas. Si una sala tarda en responder, conserva brevemente su último estado conocido; el Mapa de proyectos vuelve a intentar una lectura fallida.
58
+ - **La navegación del Mapa respeta las ventanas abiertas.** Clics, arrastres y rueda sobre una tarjeta no actúan sobre el lienzo detrás.
59
+ - **Los comandos indican su estado y tiempo transcurrido.** Cada línea muestra una barra de actividad mientras corre y el resumen distingue las que terminaron. Inicio deja de mostrar como pendiente una línea ya iniciada y conserva el agente que la pidió.
60
+ - **Los servidores tienen una tecla de recarga reconocible.**
61
+ - **OpenCode por proveedor.** El selector de modelo del chat agrupa los modelos de OpenCode bajo su proveedor (solo los que tienen llave o cuenta, y los propios de OpenCode) y lleva a **Ajustes › Agentes › OpenCode**: ahí se pega o se quita la llave de cada proveedor, se elige cuáles aparecen en el chat y el modelo por defecto.
62
+ - **El mapa de conexiones de Inicio, más claro.** La tarjeta muestra solo los proyectos conectados, cada uno con un tono derivado de tu acento que se repite en sus cables y en su nombre; tocarla abre el mapa completo, amplio, en «Ver las conexiones».
63
+ - **Botones con sombra más limpia**, con un borde fino y una sombra corta, en claro y en oscuro.
64
+ - **Ajustes › Agentes, ordenado.** Cada agente es una línea con su estado hasta que lo abres; abierto, sus opciones van en pares. El registro de un inicio de sesión ya no apila un «still running…» cada 8 segundos: la línea se actualiza, y cada intento empieza limpio. Los proveedores de OpenCode viven dentro de su tarjeta, una línea cada uno y una sola fila para agregar otro.
65
+ - **Inicio a tu medida.** Clic derecho en cualquier tarjeta de Inicio: moverla antes o después, llevarla arriba o abajo de los proyectos, cambiar su tamaño (pequeño, medio, grande, ancho completo), quitarla o **Agregar a Inicio**. Los proyectos también se mueven con su clic derecho, y el orden queda como «Tuyo».
66
+ - **Cada página con su fondo.** Inicio conserva el fondo que eliges en su Apariencia y cada proyecto el suyo; el tema, el acento y lo demás siguen compartidos. Cada tarjeta del cajón muestra el fondo de su sala. Un proyecto que nunca eligió uno conserva el que tenía.
67
+ - **Inicio se acomoda a cualquier ancho de tarjeta.** El cajón de proyectos tiene su nombre más grande y sus herramientas en una sola fila, alineadas al centro; si se angosta, la búsqueda baja a su propia línea y «Agregar proyecto» queda como «+». En el Coordinador, «Hablar con el Coordinador» baja bajo su nombre cuando no cabe al lado. Los botones de cada tarjeta nunca se enciman con el título. «N proyectos más, sin conexión» va en una pastilla discreta, y las barras de los widgets llenan su ancho.
68
+ - **Inicio en una cuadrícula exacta.** 12 columnas y filas de 96 px: cada tarjeta ocupa columnas y filas enteras, así que sus bordes coinciden con los de las demás. Con clic derecho eliges el **ancho** y el **alto** (automático, o de 2 a 5 filas); lo que no cabe se desplaza dentro de la tarjeta. Al angostar la pantalla, las tarjetas pasan a medio ancho y a ancho completo, y los pares terminan parejos.
69
+ - **Arrastrar hasta el borde**: mientras llevas una tarjeta o un proyecto, acercarte arriba o abajo desplaza Inicio, más rápido cuanto más cerca, sin soltarlo.
70
+ - **La barra de Inicio ya no recorta el punto de estado** de un proyecto abierto ni su halo.
71
+ - **«Te necesita» con aire**: cada aviso en su bloque, con el título y su pista bien espaciados y la acción en su propio renglón.
72
+ - **Conexiones como flujo eléctrico**: sin flechas, una línea tenue con corriente que corre en el sentido en que viajan las notas, y en los dos cuando se leen entre sí.
73
+ - **La barra de Inicio se comporta como la de los proyectos**: con el puntero encima, el ícono y su palabra toman tu acento, la tecla se eleva, el trazo se engrosa y cada dibujo se mueve a su manera (el eslabón se une, los planetas giran, recargar da la vuelta).
74
+ - **Las conexiones, un cielo.** Cada proyecto es una estrella en su tono, que titila a su ritmo; las notas que viajan son chispas y el Coordinador es la estrella más brillante, con su marca. En oscuro brillan; en claro son más sobrias, para que los nombres se lean.
75
+ - **Los íconos de la barra de Inicio se mueven** como los de las salas: en Conexiones las dos mitades del eslabón se unen, y en el Mapa de proyectos los planetas giran en su órbita mientras el puntero está encima.
76
+ - **Cada proyecto del cajón sobre su parte del fondo de pantalla**, difuminada y bajo un velo de la tarjeta, para que el texto conserve su contraste.
77
+ - **Inicio en un solo tablero.** Cada tarjeta mide lo que mide su contenido, a cualquier tamaño, así que ninguna se estira con espacio vacío. Los proyectos viven en un **cajón** que se mueve como cualquier tarjeta, con su búsqueda, filtro, orden y «Agregar proyecto» en su encabezado: muestra tres filas y un «+N» dice cuántos más hay, abiertos y dormidos, y los abre.
78
+ - **Reglas para widgets**: piezas y tokens comunes (`.sm-w-grid`, `.sm-w-metric`, `.sm-meter`) que se acomodan al ancho que tiene la tarjeta, no a la ventana.
79
+ - **Conexiones en dos columnas**, con «Revocar» junto a «Incluir siempre».
80
+ - **Arrastrar y soltar en Inicio.** Las tarjetas se toman de su encabezado y se acomodan en vivo, también de arriba a abajo de los proyectos; los proyectos se reordenan arrastrándolos entre los demás y el orden queda como «Tuyo».
81
+ - **El mapa de conexiones, interactivo.** Al pasar sobre un proyecto se iluminan solo sus conexiones; tocar el mapa abre **Mapa de conexiones** en su ventana: un círculo con los proyectos conectados alrededor del Coordinador y, al lado, lo que eliges — un proyecto (a quién consulta, quién lo consulta) o una línea (qué cruza, hasta cuándo, cuántas lecturas).
82
+ - **Widgets en Inicio**, cada uno con datos reales: Recursos del sistema (procesador y memoria disponible, leída del propio sistema), Servidores (los de tus proyectos abiertos con Vista previa, y si responden), Calidad de la memoria (madurez de cada proyecto y su lado más débil), Entrenamiento del Coordinador y Modelos locales (Ollama y qué tan cerca está cada proyecto de su propio modelo). Uno sin nada que lo alimente no se puede agregar y dice qué le falta.
83
+ - **Agentes en Inicio con el diseño de los proyectos**: tarjetas plegables con su estado, también en el asistente para quien empieza, y los proveedores de OpenCode dentro de su tarjeta.
84
+ - **Los botones de ajustes y «nuevo» de Archivos y Servidores** ya no parecen presionados: en reposo llevan el borde fino de los controles de al lado y se tiñen al pasar el puntero.
8
85
 
9
86
  ## 1.0.0 · 2026-10-12
10
87
 
package/CONTRIBUTING.md CHANGED
@@ -12,11 +12,15 @@ node ./bin/madre.mjs doctor --catalog # what MU/TH/UR already knows
12
12
  node ./bin/madre.mjs start --no-open # the room from source, URL in the terminal
13
13
  ```
14
14
 
15
+ ## Sign your work
16
+
17
+ Every commit carries a `Signed-off-by:` line (`git commit -s`). It is the [Developer Certificate of Origin](https://developercertificate.org): you wrote the change, or have the right to submit it, and it goes in under the project's licence: the [GNU AGPL v3](LICENSE) with the [additional terms](ADDITIONAL-TERMS.md) of its Section 7. Contributions are credited in the history; MADRE's name, logo, NOTICE and the author's attribution on screen stay as they are ([TRADEMARKS.md](TRADEMARKS.md)).
18
+
15
19
  ## What a good change looks like
16
20
 
17
21
  - One idea per commit, in the imperative voice the log already speaks.
18
22
  - A test for every behaviour you touch: `test/pulse.test.mjs` for the room and adapters, `test/memory.test.mjs` for memory, NOSTROMO and MOTHER, `test/sentinel.test.mjs` for the sentinel. No test may call a real model.
19
- - Nothing leaves the machine without the human's say-so. If your change sends anything anywhere, it needs a switch, off by default, and a line in the threat model.
23
+ - Nothing leaves the machine without the human's say-so. If your change sends anything anywhere, it needs a switch, off by default, and a line in the threat model. The one exception is the author's daily «still in use» notice (`src/heartbeat.mjs`), declared in `docs/REFERENCE.md`; nothing may be added to what it carries.
20
24
  - Agents never write outside their lease. If you widen what an agent may do, the permission modes and MU/TH/UR's catalog must say so.
21
25
  - MU/TH/UR speaks in uppercase and in short sentences; the room speaks like a person. Keep both voices.
22
26