# Roadmap Cosas por hacer, ordenadas por dónde aporta más un commit. No es una lista de deseos: cada punto está acotado para que se pueda coger, hacer y medir. Si algo te interesa, [CONTRIBUTING.md](CONTRIBUTING.md) dice cómo probarlo. ## Ventanas en más gestores El motor de ventanas es X11 (`config/ventanas.sh`, con `xdotool`). En Wayland ya hay un backend para **Sway e Hyprland** (`config/ventanas-wayland.sh`), pero está a medias: - **Terminar Sway/Hyprland.** `maximiza`, `restaura` y `minimiza` son fiables; las mitades (izquierda/derecha/centro) están escritas de la documentación y **necesitan probarse** en un equipo real —el flotante y las unidades (`ppt`, `%`) cambian por versión—. Es un primer commit ideal si usas uno de los dos. - **KDE Plasma (Wayland).** Vía `kdotool` o scripting de KWin. Falta el backend. - **GNOME Wayland.** No hay API general para mover ventanas ajenas (es su modelo de seguridad); requiere una extensión. Documentar la limitación o escribir el puente a una extensión. - **Mover entre pantallas y a escritorios virtuales** en Wayland: el X11 lo hace, los backends de Wayland aún no. ## Más acciones El catálogo son 150 órdenes (`nucleo/datos/acciones.json`). Cada una es JSON: frases que la disparan, un comando de shell, y una plantilla de respuesta. Añadir una es un commit pequeño y satisfactorio. Ideas que faltan: - **Multimedia**: play/pausa, siguiente, volumen (`playerctl`, `wpctl`). - **Brillo** de pantalla (`brightnessctl`). - **Portapapeles**: leer/copiar (`wl-clipboard` / `xclip`). - **Capturas** de pantalla (`grim`, `spectacle`, `gnome-screenshot`). - **Energía**: bloquear, suspender, apagar (con confirmación). - **Red**: a qué wifi conectar (`nmcli`). - **Notificaciones** recientes, calendario, temporizadores. Al añadir acciones que dependan de una herramienta, degradar con gracia si no está (como hacen las de ventanas). ## Probar con otros modelos JARVIS ya puede **elegir su modelo** en caliente (herramienta `elegir_modelo`, y `JARVIS_MODELO` para fijarlo). Lo que falta es saber cuáles van bien: - **Medir el tool-calling** de más modelos locales (llama, mistral, gemma, phi...) con el mismo criterio del RAG (`nucleo/saber/enriquece/eval_set.jsonl` da la idea). Cuáles emiten `tool_calls` fiables y cuáles no. - **Auto-escalado**: que suba a un modelo potente solo cuando la pregunta lo pida, y vuelva al rápido. Hoy lo decide el propio modelo; se puede afinar. - **Un modelo pensado para voz**: respuestas cortas, sin divagar. ## El RAG - **Reranker**: un cross-encoder sobre los primeros k. Medido que un embedder transformer no compensa (ver [docs/rag.md](docs/rag.md)); un reranker es la otra palanca sin probar. - **Corpus de demostración público** para poder ver el RAG funcionando sin los apuntes privados de nadie (man pages, docs de una herramienta libre). - **Troceado que mantenga el bloque de comandos con su encabezado** (hoy separa algún comando de su contexto). ## Voz - **Más idiomas.** Hoy es castellano de punta a punta (STT, prompt, TTS). Piper y whisper tienen modelos de otros idiomas; falta parametrizarlo. - **Fine-tuning de la voz** (Piper/VITS) para clonar mejor con poco audio. ## Fine-tuning del modelo `entrena/` tiene el pipeline QLoRA, bloqueado porque `qwen3.5` es multimodal y `FastLanguageModel` lo mete por el camino de solo texto. El arreglo apunta a `FastVisionModel` con `finetune_vision_layers=False`. Sin probar. ## Empaquetado - **Perfiles de hardware** en `install.sh` (4 GB / 12 GB / solo-CPU) que ajusten el modelo y el contexto solos. - **Detección de rutas** más fina en los scripts de `config/` y `voz/`, que aún asumen parte de la disposición del autor.