El recorrido completo de un invoke
Los once pasos reales de una llamada, de la función de JavaScript a la de Rust y de vuelta: quién decide, quién copia, y dónde puede fallar cada cosa.
El recorrido
Once pasos, dos serializaciones y dos comprobaciones de seguridad. Y con eso se explica cualquier fallo del puente.
Quién decide qué
Cinco de las seis decisiones son tuyas, tomadas al escribir el comando y las capabilities — que es exactamente lo que las fases III a V han estado enseñando a decidir.
Dónde se va el tiempo
Y los tres sitios, con lo del nivel 75.3:
- Pasos 2 y 10: las serializaciones. Proporcionales al tamaño de lo que cruza. Nivel 15.2.
- Paso 9: tu función. Que es donde debería irse el tiempo si el resto está bien.
- Y el coste fijo de los pasos 1 a 8, pequeño por llamada y significativo multiplicado. Nivel 42.1.
Si tu comando tarda y el paso 9 no, el problema es el tamaño o el número de llamadas — que es exactamente el diagnóstico del nivel 56.4.
Dónde falla cada cosa
Y el mapa que hace útil este nivel: cada error del puente tiene su paso.
| el error dice | el paso | dónde mirar |
|---|---|---|
| no serializable | 1, 2 o 10 | tus tipos |
| permiso denegado | 6 | tus capabilities. Fase V |
| fuera de ámbito | 7 | tu ámbito. Nivel 28 |
| tipo incorrecto | 8 | la firma de tu comando |
| tu error de dominio | 9 | tu lógica |
| la promesa nunca resuelve | 9 | tu función no termina. Nivel 55.5 |
Y la última fila es la más útil: una promesa que no resuelve significa que la función de Rust no ha terminado — no que el mensaje se perdiera.