@jossuealcala/madre 1.0.1 → 1.0.3
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.
- package/ADDITIONAL-TERMS.md +93 -0
- package/CHANGELOG.en.md +2013 -0
- package/CHANGELOG.md +102 -1
- package/CONTRIBUTING.md +1 -1
- package/LICENSE +661 -202
- package/NOTICE +26 -14
- package/README.en.md +241 -0
- package/README.md +21 -12
- package/TRADEMARKS.en.md +50 -0
- package/TRADEMARKS.md +33 -16
- package/bin/madre.cjs +40 -0
- package/bin/madre.mjs +7 -0
- package/docs/INTERNALS.md +6 -0
- package/docs/REFERENCE.md +40 -5
- package/docs/SDK.md +4 -2
- package/docs/en/INTERNALS.md +103 -0
- package/docs/en/REFERENCE.md +365 -0
- package/docs/en/SDK.md +308 -0
- package/docs/en/training/README.md +59 -0
- package/docs/training/README.md +48 -9
- package/docs/training/train.sh +7 -2
- package/package.json +13 -5
- package/public/abduction.js +2 -0
- package/public/app.js +3154 -539
- package/public/attribution.js +114 -0
- package/public/brands.js +23 -6
- package/public/code-tools.js +143 -0
- package/public/editor.js +22 -4
- package/public/es.js +1004 -416
- package/public/hardware.js +50 -0
- package/public/i18n.js +25 -1
- package/public/index.html +18 -11
- package/public/inquiry.js +2 -0
- package/public/loader.js +2 -0
- package/public/macroverso.js +189 -96
- package/public/market-art.js +161 -0
- package/public/market-view.js +529 -0
- package/public/market.js +189 -0
- package/public/neural.js +110 -0
- package/public/nostromo-engine.js +414 -47
- package/public/power.js +100 -0
- package/public/resay.js +11 -0
- package/public/review-ask.js +2 -0
- package/public/routing.js +23 -1
- package/public/salas-mac.css +119 -18
- package/public/salas-mac.html +14 -2
- package/public/salas-mac.js +358 -56
- package/public/salas.css +2 -0
- package/public/salas.html +1 -0
- package/public/salas.js +4 -2
- package/public/styles.css +1793 -77
- package/public/syntax.js +2 -0
- package/public/touch.js +2 -0
- package/public/tour-chapters.js +2 -0
- package/public/tour.js +84 -5
- package/public/troubleshooting.js +24 -17
- package/public/wallpaper.js +275 -0
- package/src/adapters/claude.mjs +2 -0
- package/src/adapters/codex.mjs +2 -0
- package/src/adapters/cursor.mjs +96 -0
- package/src/adapters/gemini.mjs +13 -4
- package/src/adapters/madre.mjs +5 -2
- package/src/adapters/opencode.mjs +7 -3
- package/src/adapters/process.mjs +2 -0
- package/src/asking.mjs +2 -0
- package/src/auth-probe.mjs +145 -12
- package/src/bridge/devices.mjs +2 -0
- package/src/bridge/handoff.mjs +2 -0
- package/src/bridge/host.mjs +2 -0
- package/src/bridge/network.mjs +2 -0
- package/src/bridge/policy.mjs +3 -1
- package/src/bridge/qr.mjs +2 -0
- package/src/bridge/server.mjs +2 -0
- package/src/capabilities.mjs +11 -0
- package/src/chats.mjs +2 -0
- package/src/checkpoint.mjs +18 -1
- package/src/choices.mjs +2 -0
- package/src/cli-args.mjs +2 -0
- package/src/cold.mjs +2 -0
- package/src/commands.mjs +2 -0
- package/src/config.mjs +2 -0
- package/src/conversation-context.mjs +15 -1
- package/src/credentials.mjs +35 -3
- package/src/dataset.mjs +78 -4
- package/src/directives.mjs +2 -0
- package/src/distiller.mjs +2 -0
- package/src/embeddings.mjs +2 -0
- package/src/enlaces.mjs +214 -6
- package/src/event-store.mjs +2 -0
- package/src/exam.mjs +6 -4
- package/src/extensions.mjs +13 -3
- package/src/eyecat-watch.mjs +2 -0
- package/src/eyecat.mjs +2 -0
- package/src/file-ops.mjs +2 -0
- package/src/files.mjs +32 -0
- package/src/github.mjs +2 -0
- package/src/heartbeat.mjs +2 -0
- package/src/i18n.mjs +31 -1
- package/src/image-studio.mjs +2 -0
- package/src/json-file.mjs +2 -0
- package/src/launch.mjs +2 -0
- package/src/lease.mjs +5 -1
- package/src/lobby-work.mjs +2 -0
- package/src/local-ai.mjs +2 -0
- package/src/looks.mjs +127 -2
- package/src/market-key.mjs +8 -0
- package/src/market-remote.mjs +239 -0
- package/src/maturity.mjs +3 -1
- package/src/mcp/connect.mjs +345 -0
- package/src/mcp/github-server.mjs +2 -0
- package/src/mcp/image-server.mjs +2 -0
- package/src/mcp/memory-server.mjs +2 -0
- package/src/mcp/proxy.mjs +153 -0
- package/src/mcp/smtp-server.mjs +2 -0
- package/src/memory-dashboard.mjs +2 -0
- package/src/memory-tools.mjs +2 -0
- package/src/memory.mjs +2 -0
- package/src/models.mjs +49 -3
- package/src/module-scope.mjs +68 -0
- package/src/modules/ahp.mjs +104 -7
- package/src/modules/ash-policy.mjs +2 -0
- package/src/modules/ash.mjs +3 -1
- package/src/modules/bishop-exam.mjs +122 -0
- package/src/modules/bishop-plan.mjs +5 -3
- package/src/modules/bishop.mjs +84 -23
- package/src/modules/choices.mjs +2 -0
- package/src/modules/correo.mjs +2 -0
- package/src/modules/enlaces.mjs +89 -6
- package/src/modules/git-pulse.mjs +2 -0
- package/src/modules/github.mjs +2 -0
- package/src/modules/helpers.mjs +2 -0
- package/src/modules/image-studio.mjs +13 -2
- package/src/modules/index.mjs +4 -1
- package/src/modules/intents-calibration.mjs +2 -0
- package/src/modules/intents-desk.mjs +4 -2
- package/src/modules/intents-observe.mjs +2 -0
- package/src/modules/intents-policy.mjs +4 -1
- package/src/modules/intents-try.mjs +2 -0
- package/src/modules/intents.mjs +11 -7
- package/src/modules/local-models.mjs +124 -0
- package/src/modules/mcp-connect.mjs +293 -0
- package/src/modules/ollama.mjs +15 -4
- package/src/modules/playwright.mjs +88 -15
- package/src/modules/ripley.mjs +2 -0
- package/src/modules/runs.mjs +5 -3
- package/src/modules/sdk.mjs +63 -9
- package/src/modules/updates.mjs +2 -0
- package/src/mother.mjs +2 -0
- package/src/npm-launch.mjs +18 -0
- package/src/ollama.mjs +8 -5
- package/src/outbound.mjs +16 -6
- package/src/override.mjs +2 -0
- package/src/ports.mjs +6 -2
- package/src/prices.mjs +2 -0
- package/src/privacy.mjs +2 -0
- package/src/quota-monitor.mjs +2 -0
- package/src/quota-sources.mjs +2 -0
- package/src/request-guard.mjs +2 -0
- package/src/review-ask.mjs +2 -0
- package/src/room/archivist.mjs +2 -0
- package/src/room/attachments.mjs +2 -0
- package/src/room/budget.mjs +2 -0
- package/src/room/context.mjs +2 -0
- package/src/room/control.mjs +7 -1
- package/src/room/copilot.mjs +76 -0
- package/src/room/economy.mjs +2 -0
- package/src/room/escalation.mjs +2 -0
- package/src/room/ghost.mjs +2 -0
- package/src/room/guard.mjs +2 -0
- package/src/room/prompt.mjs +25 -5
- package/src/room/returns.mjs +82 -0
- package/src/room/runs.mjs +4 -0
- package/src/room/vectors.mjs +2 -0
- package/src/room.mjs +223 -35
- package/src/router.mjs +3 -1
- package/src/runs.mjs +6 -1
- package/src/runtime-detection.mjs +11 -0
- package/src/salas.mjs +28 -0
- package/src/sentinel-errors.mjs +2 -0
- package/src/server-sentinel.mjs +2 -0
- package/src/server.mjs +757 -81
- package/src/setup.mjs +3 -1
- package/src/smtp.mjs +2 -0
- package/src/tour.mjs +2 -0
- package/src/updates.mjs +2 -0
- package/src/usage-sentinel.mjs +2 -0
- package/src/vault.mjs +2 -0
- package/src/verdict.mjs +3 -1
- package/src/whats-new.mjs +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,108 @@ 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.
|
|
7
|
+
## 1.0.4 · Sin publicar
|
|
8
|
+
|
|
9
|
+
## 1.0.3 · 2026-10-17
|
|
10
|
+
|
|
11
|
+
- **Un espacio de código junto a la conversación.** La tecla nueva `CÓDIGO` de la barra abre tus archivos a un lado de la conversación, sin dejarla: la lista del proyecto con su buscador, pestañas para lo que tienes abierto y, sobre el código, la ruta y la función donde estás. ⌘P (Ctrl+P fuera de macOS) abre cualquier archivo por su nombre. Cambiar de pestaña no pierde lo que escribiste: el borrador se queda en su pestaña, con un punto, hasta que guardas o descartas, y las pestañas siguen ahí cuando vuelves al proyecto. En las barras que ya tenías acomodadas, `CÓDIGO` aparece junto a Agentes.
|
|
12
|
+
- **Lo que cambió un agente, en su color.** Después de un turno en #3 EDITAR, las líneas que cambió el agente quedan marcadas con su color, y cada cambio trae tres botones: **Conservar**, **Deshacer** (solo esas líneas; lo demás del turno se queda) y **Preguntar por qué**, que se lo pregunta en la conversación. Arriba del código, «@claude · 2 cambios por revisar» te lleva de uno a otro. Si deshaces el turno completo con DESHACER, o reescribes tú esas líneas, dejan de marcarse.
|
|
13
|
+
- **Acciones sobre lo que seleccionas.** Al pedir revisión de unas líneas aparecen Explicar, Mejorar, Escribir pruebas y Arreglar, cada una con su pregunta lista para el agente.
|
|
14
|
+
- **Al lado.** En un Markdown, el documento renderizado se actualiza mientras escribes; en una página HTML, se recarga al guardar. Para la página hace falta Vista previa, y si está apagada el botón para encenderla está ahí mismo.
|
|
15
|
+
- **Gemini se conecta con tu llave de Google AI Studio, sin terminal.** En Ajustes › Agentes, en Conecta tus agentes y en Inicio, lo primero en la tarjeta de Gemini es el campo para pegar tu llave de API de Google AI Studio, con el enlace para sacarla: MADRE la escribe donde la busca el CLI de Gemini, solo legible por ti, y no guarda copia. Debajo está el botón «Cuenta de Google», que abre tu navegador para elegir tu cuenta, para las cuentas que Google todavía acepta en Gemini CLI: Google rechaza las cuentas personales gratuitas (responde «IneligibleTierError» y pide migrar a Antigravity). Antes había que abrir una terminal, correr `gemini` y escribir /auth. Todo pasa por el CLI oficial de Google y MADRE no lee ni guarda tu sesión. Si cancelas, Gemini queda como estaba. Con la sesión ya iniciada, cada agente muestra un solo «Iniciar sesión otra vez», como Codex; en Claude eliges la cuenta (suscripción o Anthropic Console) después del clic.
|
|
16
|
+
- **OpenCode se conecta con GitHub Copilot, sin terminal.** La tarjeta de OpenCode, en Ajustes › Agentes, en Conecta tus agentes y en Inicio, tiene ahora el botón «GitHub Copilot»: MADRE corre `opencode auth login -p github-copilot`, elige github.com por ti y muestra en la sala la página (github.com/login/device) y el código que escribes ahí, con su botón para copiarlo. Al autorizar en GitHub, OpenCode queda conectado a tu suscripción de Copilot (Pro, Pro+, Business o Enterprise). Todo pasa por el CLI oficial de OpenCode y MADRE no lee ni guarda tu sesión. Desde la sala solo se ofrecen los proveedores que permiten este acceso a herramientas de terceros: la suscripción de Claude nunca, porque Anthropic no lo permite; ChatGPT y GitLab, todavía no, hasta que OpenAI y GitLab lo confirmen por escrito. Esos y GitHub Enterprise siguen en «¿Prefieres tu terminal?» con `opencode auth login`, y las llaves de los demás proveedores se siguen pegando en la sala.
|
|
17
|
+
- **La terminal, como segunda opción y nunca obligatoria.** Debajo de cada agente, «¿Prefieres tu terminal?» despliega el mismo paso (instalar o iniciar sesión) escrito como comando, con su botón para copiarlo. Los botones de MADRE siguen siendo el camino principal, y la tarjeta de un agente sin instalar ya no muestra el comando de npm en su primera línea.
|
|
18
|
+
- **El Coordinador puede aprender de tus proyectos.** En Inicio, cada conexión que lee el Coordinador tiene una casilla nueva, «El Coordinador aprende de él», apagada hasta que la marcas tú. Con ella, al exportar los datos de entrenamiento del Coordinador entra todo lo que ese proyecto comparte (no solo lo que coincida con una pregunta), cada nota con el nombre de su proyecto para que nunca los mezcle. Si el proyecto está dormido se usa la copia de la última vez que respondió, y el panel dice de dónde salió cada cosa. Quitar la casilla o revocar la conexión borra esa copia; un modelo ya entrenado conserva lo aprendido hasta que lo vuelvas a entrenar. Además, la exportación de entrenamiento de cualquier proyecto lee ya todas sus conversaciones, no solo la abierta.
|
|
19
|
+
- **Apagar MADRE desde la barra.** Un botón de encendido al final de la barra superior, en Inicio y en cada proyecto. Pregunta antes («¿Apagar MADRE?», con cuántos proyectos se cierran) y luego cierra todo en orden: cada proyecto abierto detiene a sus agentes, guarda lo pendiente y libera su puerto, y al final se cierra Inicio. La página queda diciendo que MADRE está apagado. Ollama sigue corriendo, porque es su propio programa.
|
|
20
|
+
- **Inicio recuerda cómo lo acomodaste.** El orden y el tamaño de los widgets, el orden de los proyectos, los proyectos fijados en la barra y cómo se leen las tarjetas se guardan en MADRE y ya no en cada pestaña. Siguen iguales aunque abras Inicio desde otro proyecto o vuelvas a abrir MADRE y le toque otro puerto.
|
|
21
|
+
- **La IA local y las notas entregadas, también en Ajustes.**
|
|
22
|
+
- Los Ajustes de cada proyecto tienen una sección nueva, «IA local», con lo mismo que Módulos › IA local, incluido «Tu computadora». Inicio › Ajustes › IA local también muestra «Tu computadora».
|
|
23
|
+
- «Lo que recuerda» tiene un bloque «Notas entregadas» con Aceptar y Rechazar.
|
|
24
|
+
- Cuando hay notas esperando, la barra del proyecto lo avisa («1 nota por aceptar») y te lleva directo a ellas.
|
|
25
|
+
- **Los proyectos conectados comparten su estado.** Una conexión puede permitir algo más que leer notas: con «Comparte su estado», quien lee también lee el estado de Continuidad del otro proyecto (objetivo, fase, siguiente paso, bloqueos, último traspaso, decisiones aceptadas y lo pendiente). Nunca viajan sus archivos ni su código. Si el Coordinador aprende de ese proyecto, el estado entra a su entrenamiento como una foto con fecha.
|
|
26
|
+
- **Notas entregadas entre proyectos.** Con «Recibe notas entregadas», el proyecto que lee puede pasarle notas al otro. Llegan como una tarjeta con Aceptar y Rechazar, y solo entran a su memoria si las aceptas tú o un agente de ese proyecto en #3 EDITAR o más. Ningún proyecto escribe directo en la memoria de otro.
|
|
27
|
+
- **El examen del Coordinador local.** Con @madre, el Coordinador solo respondía. Ahora su modelo local puede presentar un examen desde Entrena tu propia IA, en Inicio, con tres partes:
|
|
28
|
+
- preguntas reales sobre tus proyectos;
|
|
29
|
+
- preguntas sobre cosas de las que nunca se habló;
|
|
30
|
+
- órdenes de prueba.
|
|
31
|
+
|
|
32
|
+
Si aprueba, da órdenes hasta #1 y no propone conexiones. Si vuelves a entrenarlo o cambias de modelo, el examen deja de valer.
|
|
33
|
+
- **La IA local se mide en tu computadora.** Módulos › IA local tiene un bloque nuevo, «Tu computadora»: lee tu equipo (chip Apple y su memoria compartida, tarjeta NVIDIA y su memoria de video, o solo el procesador) y lo compara con el mínimo de cada tamaño de Qwen2.5, de 0.5B a 72B, para correrlo y para entrenarlo. Dice qué modelo usar en el día a día, cuál puedes entrenar y qué funciones vale la pena encender: buscar por significado, quien resume la memoria, @madre, el Coordinador con IA local y entrenar. El botón para descargar el modelo propone el que tu equipo corre bien, en vez de 3B para todos. Si descargas uno más grande (7B, 14B, 32B o 72B), @madre lo usa. En Entrena tu propia IA eliges el tamaño y los comandos se ajustan: desde 3B la base viene en 4 bits, se une con `--de-quantize` y Ollama la guarda en 4 bits. Si un tamaño no alcanza en tu equipo, la receta dice cuánta memoria pide.
|
|
34
|
+
- **Puedes subir mientras un agente trabaja.** La conversación ya no te regresa al final cada vez que algo cambia de alto: en cuanto subes, se queda donde la dejaste, sin temblar. Si mientras lees termina una respuesta o un plan, aparece sobre la caja de escribir un botón redondo con un punto del color de quien contestó; un clic te lleva abajo y se va solo cuando llegas. Y saltar a una parte del historial que nunca habías visto (arrastrando la barra, con Inicio o buscando) ya no hace brincar la conversación: al abrirla, cada mensaje se mide una vez en segundo plano y el navegador recuerda su alto real.
|
|
35
|
+
- **Los avisos nacen de un punto.** El aviso que flota sobre la caja de escribir empieza como el punto de su color, se abre en su píldora y al irse vuelve a cerrarse en el punto, con una sombra suave que lo despega del fondo. Mientras está, la última línea de la conversación sube lo que mide el aviso, así que ya no tapa al aviso del chat que dice lo mismo.
|
|
36
|
+
- **Un comando con punto de restauración se ve como los demás avisos**: esquinas redondeadas y su DESHACER debajo, en vez de una cápsula que se inflaba en círculo. Las píldoras de los comandos largos ya no se cortan a la derecha: respetan el carril del agente y acaban en «…».
|
|
37
|
+
- **Los comandos largos se pueden correr.** Una línea de varios cientos de caracteres (un `npx tsx -e "…"`, un `node -p`) ya no queda en «No corre: es demasiado larga»: la tarjeta la muestra completa, se recorre dentro de su botón si es muy alta, y corre. El límite solo frena una línea desbocada (más de 4,000 caracteres).
|
|
38
|
+
- **La caja de escribir no se aplasta.** Con HUMANO › COPILOTO › AHORRO DE TOKENS › @AGENTE y el ahorro de tokens encendido, el texto se escribía letra por letra en un renglón. Ahora el texto conserva su ancho, la dirección se corta con «…» antes que el agente al que le escribes, la ficha del ahorro de tokens no se parte en renglones y, con muchos renglones, la primera línea visible se desvanece bajo el borde.
|
|
39
|
+
- **Modo neural en los mapas.** El Mapa de memoria y el Mapa de proyectos tienen una tecla nueva, **Neural**, que dibuja la misma red como las neuronas de un cerebro: cada memoria es un punto de luz en su color, los enlaces son axones finos y solo se encienden los caminos por donde viaja algo, con la neurona a la que llega. El núcleo y el Coordinador se vuelven el bulbo central del cerebro, que late. Al encenderlo, la luz sale del centro y va prendiendo cada neurona. Se ve lo mismo con mucho menos trabajo para tu computadora; si al mapa le faltan cuadros, la tecla te invita a probarlo, y tú decides cuándo usar cada modo. La elección vale para Inicio y todos tus proyectos.
|
|
40
|
+
- **Los mapas cierran como las demás ventanas.** En el Mapa de memoria y en el Mapa de proyectos, «Salir ×» y «Volver a Inicio ×» son ahora la × de Ajustes y Conexiones. Los avisos de primera vez de Inicio ya no aparecen sobre el Mapa de proyectos: esperan a que lo cierres.
|
|
41
|
+
- **Tu propia imagen de fondo.** En Ajustes › Apariencia, la última tecla de los fondos es «Tu imagen»: eliges una foto (PNG, JPEG o WebP) y queda de fondo al instante, ajustada a la pantalla como los fondos de MADRE, con su capa o su malla en sus propios colores, su intensidad y su desenfoque. «Encuadre» muestra la foto completa con el recuadro de lo que se ve en tu pantalla; lo arrastras para elegir qué parte queda a la vista. La imagen es una sola para Inicio y todos los proyectos (cada uno decide si la usa) y se puede cambiar o quitar ahí mismo. Se guarda en tu computadora, en `~/.pulse/wallpaper/`, reducida a 2880 px por su lado mayor.
|
|
42
|
+
- **Una sola escala de íconos.** Cada ícono toma uno de cuatro tamaños según lo que lo contiene: la marca dentro de una píldora, la tecla o el dibujo junto a una palabra, la tecla cuadrada y el botón que flota. Las teclas de Inicio, recargar, Ajustes y apagar toman el tamaño de las de la barra cuando esta se pliega. Lo que aún usaba signos de texto como ícono (el ⚙ de «Agentes en Ajustes», las flechas ‹ ›, los ▸ ▾ de carpetas y pliegues, el ↗ de lo que se abre fuera y el ◉ de «sigue abierto aquí» o «memoria guardada») usa ahora los dibujos de la sala.
|
|
43
|
+
- **La barra con un panel al lado.** Con Código acoplado y la conversación angosta, la barra vuelve a medir qué cabe: lo que no entra pasa a «Más» en vez de quedar debajo de Inicio, el nombre del proyecto se lee completo y, si hace falta, «1 nota por aceptar» se reduce a su bandeja y su número. Lo que cambia en una ventana angosta (mensajes más anchos, la palabra de Crear) cambia también ahí.
|
|
44
|
+
- **Acomodar la barra sin que se desborde.** Mientras la acomodas, una barra con más teclas de las que caben se desplaza de lado dentro de su caja, también con la rueda del ratón, y la tecla que arrastras ya no sale de ella. «Agregar a la barra» se lee mejor: el título con su indicación debajo, cada tecla como se verá en la barra con su «+» y su nombre completo.
|
|
45
|
+
- **Preguntar sobre el código, más claro.** Al preguntar por unas líneas, el agente elegido se ilumina y los demás quedan apagados. La tarjeta de lo que cambió un agente ya no lleva el borde de color a la izquierda. En «Lo que se envía», la barra de desplazamiento va en el borde de la ventana, fuera de las tarjetas.
|
|
46
|
+
- **Detalles que se veían mal**: el anillo del avatar que piensa ya no se corta por la izquierda; el punto de aviso del botón de conversaciones va montado en su esquina, por fuera; la receta para entrenar tu IA (Mac y Linux) muestra cada comando completo con Copiar a la vista; el reloj del agente que trabaja ya no deja un recuadro gris de ayuda bajo el cursor ni obliga al navegador a reacomodar las ventanas cada segundo; en la barra de arriba, el botón de widgets de Inicio late al pasar el ratón y llena sus cuadros al abrirse, y las sombras de Conexiones, Mapa, Módulos, Diagnóstico y Código son más suaves; Código, al pasar el ratón, toma el color de acento y dibuja una / entre < >, y abierto se queda así; y «sigue abierto aquí» queda centrado con las preguntas que tiene debajo, porque su × ya no lo empuja a un lado.
|
|
47
|
+
- **Codex ya no pide #4 para leer en #3.** Codex lee los archivos con la terminal (`cat`, `sed`, `rg`) y el aviso de #3 le decía «no puedes correr comandos»: a veces respondía «Necesito #4 por 5 min» para abrir el archivo que debía editar. Ahora, solo a quien lee con la terminal, MADRE le aclara que leer con comandos de solo lectura está bien y que lo que no corre son programas (pruebas, builds, instalaciones, servidores). Claude y OpenCode no cambian: leen con sus propias herramientas.
|
|
48
|
+
- **Gemini dice por qué Google lo rechaza.** Cuando Google rechaza la cuenta personal gratuita, la respuesta ya no es el genérico «Google rechazó las credenciales»: dice que Google ya no acepta ese inicio de sesión y que pegues una llave de Google AI Studio en Ajustes › Agentes › Gemini, y Diagnóstico encuentra su remedio. La tarjeta de Gemini ya no promete un plan gratuito.
|
|
49
|
+
- **La mesa redonda habla en tu idioma también cuando alguien no contesta.** Si un agente falla, el resumen de @madre cita el motivo en el idioma de la pregunta; antes podía salir en inglés en medio de un resumen en español.
|
|
50
|
+
- **Cuando un agente dice que creó algo que no existe, MADRE lo dice claro.** El aviso ya no es una línea que se hace punto a los diez segundos: dice «@agente dijo que creó gastos.html, pero no está en tu proyecto», que no se escribió nada, y trae «Pedirlo otra vez», que regresa la misma petición a la caja con una nota para el agente. Un plan que menciona los archivos que harán sus pasos ya no dispara este aviso.
|
|
51
|
+
- **Ollama ya no parece un servidor tuyo que se cayó.** Ollama abre un proceso propio por cada modelo que carga (`llama-server`, con su puerto) y lo cierra cuando lo descarga tras unos minutos sin uso. Si Ollama se había abierto desde la carpeta de un proyecto, ese proyecto avisaba «tu servidor :53328 se detuvo». Ahora ese proceso cuenta como parte de Ollama.
|
|
52
|
+
- **Un aviso de primera vez nunca se queda fuera de tu alcance.** La tarjeta sigue a lo que señala mientras te mueves por la página. Si lo que señala queda arriba o abajo de lo que ves, en el borde aparece una píldora con su título y «Sube para verlo» o «Baja para verlo», que te lleva ahí con un clic. Antes, un aviso sobre un widget de más abajo nacía fuera de la pantalla y no había cómo cerrarlo.
|
|
53
|
+
- **Inicio habla un solo idioma.** En una MADRE nueva que adopta el idioma de tu navegador, los títulos de los widgets se quedaban en español aunque todo lo demás cambiara a inglés.
|
|
54
|
+
- **Cursor, el sexto agente.** Si tienes Cursor y su programa de terminal (`cursor-agent`), MADRE lo encuentra y lo pone junto a los demás: le escribes con `@cursor`, entra a planes y mesas redondas, y en Ajustes › Agentes inicias sesión con tu cuenta de Cursor desde un botón. Por ahora lee y contesta: cada turno corre en su modo de solo preguntas, con una configuración hecha para ese turno que no le deja escribir ni correr comandos, y que se borra al terminar. Tu sesión de Cursor no se toca. Escribir en tu proyecto (#2 a #4) llegará cuando se haya probado su confinamiento.
|
|
55
|
+
- **Los agentes, con dibujos propios.** Codex, Claude, Gemini, OpenCode y Cursor tienen dibujos nuevos de MADRE que recuerdan la marca de cada uno sin copiar su logo: la flor anudada, la chispa, la estrella de cuatro puntas, el bloque y el cubo con su puntero.
|
|
56
|
+
- **Un agente que no puede contestar se ve apagado.** Sin sesión, sin instalar o sin un adaptador que MADRE pueda usar, el agente queda gris en la barra del proyecto y en la de Inicio, y sale del selector de la caja de escribir. Si le escribes con su nombre, el mensaje se queda en la caja y se abren sus Ajustes para conectarlo.
|
|
57
|
+
- **Crea un proyecto desde cero.** En «Agregar proyecto», en Inicio y en la bienvenida, la opción nueva «Nuevo proyecto» crea una carpeta vacía con el nombre que escribas, en tu carpeta personal o en la que estabas recorriendo, y la agrega a Inicio. Nunca escribe encima de una carpeta que ya existe, y explica por qué si el nombre no sirve.
|
|
58
|
+
- **MADRE en el aire de Inicio.** Sin fondo de pantalla, detrás de Inicio hay dos nubes muy tenues de la paleta de MADRE que se mueven despacio: su verde en el tema claro, y en el oscuro su verde fósforo con un rastro de cian y ciruela. Con «menos movimiento» se quedan quietas.
|
|
59
|
+
- **Gemini no se queda con una cuenta que Google rechaza.** Google deja iniciar sesión con una cuenta personal gratuita y la rechaza después, en la primera pregunta. Ahora el botón «Cuenta de Google» espera esa primera respuesta: si Google rechaza la cuenta, Gemini queda como estaba (con tu llave, si la tenías) y MADRE te dice por qué.
|
|
60
|
+
- **Los avisos dentro de una ventana son la misma tarjeta que los demás.** En Ajustes, el aviso de la primera vez ya no es una franja pegada a los bordes: es la tarjeta de siempre, con sus márgenes y su botón pequeño a la derecha.
|
|
61
|
+
- **Los errores, en tu idioma.** El aviso de que Google rechazó la cuenta de Gemini, y otros tres de Gemini, se leen en español aunque se hayan guardado en inglés.
|
|
62
|
+
- **El anillo del agente que piensa se ve entero.** En Chrome, el anillo que late alrededor del avatar se cortaba en seco por la izquierda.
|
|
63
|
+
- **El Mercado.** Una tienda de módulos a pantalla completa, en Inicio (tecla «Mercado») y en cada proyecto (Módulos › Mercado). Arriba, un carrusel con los destacados, cada uno con su ilustración; debajo, estantes por lo que hace cada módulo («Sin pasar por la terminal», «Para crear», «IA en tu computadora», «Conéctalo») y una página por módulo con su precio (todo gratis por ahora), dónde está encendido, su vista previa, qué hace y qué toca. Cada módulo tiene un ícono nuevo, con su dibujo sobre sus propios colores.
|
|
64
|
+
- **Para este proyecto, para todos o para uno.** Abierto desde un proyecto, «Obtener» lo enciende solo en ese proyecto. Abierto desde Inicio, eliges «para todos tus proyectos» o «solo en» uno. Un módulo que escribe en la carpeta (Continuidad) te lleva a su tarjeta en Módulos, donde lees los comandos antes de que corran.
|
|
65
|
+
- **Módulos en Inicio.** La tecla nueva «Módulos» muestra lo que tienes encendido o instalado y en qué proyectos: un interruptor para todos tus proyectos y una pastilla por proyecto para encenderlo o apagarlo solo ahí. Un cambio llega a cada proyecto abierto con su siguiente mensaje, sin reiniciarlo.
|
|
66
|
+
- **En la conversación.** Si pides algo que un módulo apagado haría (abrir tu página en un navegador, crear una imagen, ver tus pull requests), aparece debajo una tarjeta con «Encender», «Verlo en el Mercado» y «No, gracias».
|
|
67
|
+
- **Módulos nuevos sin esperar a una versión de MADRE.** El Mercado se actualiza desde madre.run cada vez que MADRE se abre: los módulos nuevos, los destacados y sus textos llegan con un catálogo firmado por el autor, y MADRE no lee uno que no verifique con la llave que trae dentro ni instala un archivo cuya huella no sea la del catálogo. Sin internet, usa lo último que verificó. Un módulo obtenido del Mercado se actualiza solo cuando sale una versión nueva y te lo dice una vez, con lo que cambió. Las novedades del Mercado y los módulos nuevos se anuncian una vez, con un botón «Verlo». La conexión está en la lista de lo que sale de tu computadora, y se apaga con «Buscar versiones nuevas» o `PULSE_MARKET=0`.
|
|
68
|
+
- **El interruptor de un módulo en un proyecto es de ese proyecto.** En Módulos de un proyecto, encender o apagar un módulo ya no lo cambia en todos tus proyectos: la fila dice «Encendido en este proyecto». «Para todos» se decide en Inicio.
|
|
69
|
+
- **SDK: `ready`, `footer` y un interruptor por proyecto.** Un módulo puede declarar `ready(ctx)`, lo que pide antes de encenderse (en un proyecto, en todos o desde el Mercado), y `footer`, hasta dos teclas junto a la versión de MADRE que dibuja MADRE: un ícono suyo, las palabras del módulo y una dirección https. `ctx.settings.enabled` ya es el de este proyecto: MADRE guarda en `rooms` lo que dijo cada uno. El contrato pasa a 38 campos. El primer módulo del Mercado que lo usa es «Donar»: un corazón junto a la versión para apoyar a MADRE en GitHub Sponsors.
|
|
70
|
+
- **Continuidad sin terminal.** En un proyecto sin git, MADRE corre `git init` por ti antes de instalarla, y lo dice en la misma confirmación. En una Mac sin git, el aviso trae el botón que abre el instalador de Apple. Los textos de los módulos se leen en tu idioma, y las rutas y comandos se ven como están escritos.
|
|
71
|
+
- **El navegador de pruebas trae su navegador.** Al encender el Navegador de pruebas, si falta el servidor o el navegador, MADRE los descarga y vuelve a probar antes de decirte nada; mientras tanto avisa que puede tardar unos minutos. Si npm falla, el aviso dice el motivo de npm en vez de la ruta de su registro.
|
|
72
|
+
- **Abrir MADRE con `npx` ya no rompe Continuidad ni el Navegador de pruebas.** Las variables que deja `npx` hacían que los comandos que MADRE corre por ti intentaran instalar el paquete de MADRE otra vez.
|
|
73
|
+
- **Con un Node viejo, un aviso claro.** En un Node anterior a 22.5, `madre` dice qué versión hace falta y cómo instalarla (nodejs.org o `nvm install 22`), en vez de los avisos de npm y un «Permission denied».
|
|
74
|
+
- **MADRE en un servidor sin pantalla.** La referencia explica cómo abrirla en un servidor y verla desde tu computadora con un túnel SSH.
|
|
75
|
+
- **Detalles**: las cajas con comandos vuelven a mostrar su ícono de copiar; al abrir una conversación nueva en modo ventana, la ventana ya no se queda pegada en la esquina; y el registro de un módulo que se instala se lee sobre el fondo de la sala, en letra de código.
|
|
76
|
+
|
|
77
|
+
## 1.0.2 · 2026-10-16
|
|
78
|
+
|
|
79
|
+
**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.
|
|
80
|
+
|
|
81
|
+
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.
|
|
82
|
+
|
|
83
|
+
- **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).
|
|
84
|
+
- **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.
|
|
85
|
+
- **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.
|
|
86
|
+
- **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.
|
|
87
|
+
- **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.
|
|
88
|
+
- **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.
|
|
89
|
+
- **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.
|
|
90
|
+
- **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.
|
|
91
|
+
- **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.
|
|
92
|
+
- **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».
|
|
93
|
+
- **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.
|
|
94
|
+
- **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…).
|
|
95
|
+
- **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).
|
|
96
|
+
- **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.
|
|
97
|
+
- **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.
|
|
98
|
+
- **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.
|
|
99
|
+
- **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).
|
|
100
|
+
- **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.
|
|
101
|
+
- **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.
|
|
102
|
+
- **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.
|
|
103
|
+
- **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.
|
|
104
|
+
- **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.
|
|
105
|
+
- **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.
|
|
106
|
+
- **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.
|
|
107
|
+
- **«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.
|
|
108
|
+
- **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…).
|
|
8
109
|
|
|
9
110
|
## 1.0.1 · 2026-10-14
|
|
10
111
|
|
package/CONTRIBUTING.md
CHANGED
|
@@ -14,7 +14,7 @@ node ./bin/madre.mjs start --no-open # the room from source, URL in the termi
|
|
|
14
14
|
|
|
15
15
|
## Sign your work
|
|
16
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 [
|
|
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
18
|
|
|
19
19
|
## What a good change looks like
|
|
20
20
|
|