Gestión de Estado
La aplicación depende exclusivamente de Svelte 5 runes ($state, $derived, $effect) para la reactividad, reemplazando por completo los antiguos stores de Svelte.
Svelte Runes
El estado está encapsulado en clases singleton o closures exportados desde src/lib/state/.
issuesStore.svelte.ts: Mantiene un Map normalizado de todos los issues.configStore.svelte.ts: Mantiene las preferencias del usuario (tema, modo de vista).modeStore.svelte.ts: Rastrea si el usuario está en el modo de edición Local o Remoto.
Cola de Commits
Para evitar ser bloqueados (rate-limit) por la API de GitHub durante un tipeo rápido, todas las mutaciones de I/O se enrutan a través de una Cola de Commits "Debounced".
Rendimiento
La Cola de Commits agrupa múltiples ediciones al mismo archivo dentro de una ventana de 2 segundos en un único commit de Git.
Actualizaciones Optimistas
Cuando un usuario edita un issue:
- La UI llama a
issuesStore.updateIssue(id, payload). - El store actualiza el rune inmediatamente. La UI se re-renderiza de forma síncrona.
- El store introduce un
WriteTasken la Cola de Commits. - Si la escritura remota falla, la Cola de Commits dispara un rollback en el
issuesStorey muestra un error toast.