Saltar al contenido

El recorrido completo

Los ocho tramos que separan tu línea de JavaScript de la función de Rust, y la vuelta: qué hace cada uno, qué forma tiene la carga en cada punto, y en cuál de ellos puede morir.

El trazado

Lo que revela el trazado

Tres observaciones que cambian cómo se depura.

El permiso se comprueba antes que el nombre. Si una capability no concede el comando, el error es de permisos aunque además el nombre estuviera mal escrito. Por eso, ante un error de permisos, lo primero no es revisar el nombre: es revisar el fichero de capabilities.

Hay dos serializaciones y fallan de forma muy distinta. La de ida falla en ejecución, en la webview, porque JavaScript no tiene tipos que el compilador pueda mirar. La de vuelta falla al compilar, en Rust, porque el compilador exige que el tipo de retorno sepa serializarse. Esa asimetría es exactamente la que el nivel 19 aprovecha: si generas los tipos del frontend desde los de Rust, la primera también pasa a fallar antes de ejecutar.

Solo un tramo de los ocho es tu lógica. Los otros siete son el framework haciendo su trabajo. Cuando algo falla, la probabilidad de que sea uno de esos siete es alta, y saber cuál ahorra buscar en el sitio equivocado.

El mapa de diagnóstico