Saltar a contenido

Novedades de 0.9.1

Publicada el 2026-10-07: SDK Python rayito 0.9.1, SDK TypeScript rayito 0.9.1 y rayd 0.9.1.

Una release de parche sobre 0.9.0, sin cambios de API ni del agente: corrige un fallo presente desde 0.3.0 al crear un sandbox con un plazo corto. rayd sólo cambia de número.

Un timeout corto sin idle ya no falla

Hasta 0.9.0, Sandbox.create(timeout=120) lanzaba InvalidArgumentException (InvalidArgumentError en TypeScript) aunque no pasaras idle. La auto-suspensión por defecto espera 300 s sin tráfico, y el SDK la comprobaba contra tu timeout como si la hubieras pedido tú. Pasaba con cualquier timeout de 300 s o menos, y también con on_timeout y un max_lifetime de 300 s o menos.

Desde 0.9.1, si no pasas idle, la ventana por defecto se adapta al plazo:

Lanzamiento Si los 300 s no caben Resultado
Sólo timeout se desactiva la auto-suspensión el sandbox termina en su timeout, como en E2B
on_timeout="kill" se desactiva la auto-suspensión rayd lo termina en su plazo
on_timeout="pause" baja a 60 s (el mínimo de la API) sin cliente, se suspende lo antes posible tras el plazo
from rayito import Sandbox

with Sandbox.create(timeout=120) as sbx:  # (1)!
    print(sbx.commands.run("echo hola").stdout)
  1. Antes, InvalidArgumentException. Ahora arranca sin auto-suspensión y termina a los 120 s.
import { Sandbox } from "rayito";

await using sbx = await Sandbox.create({ timeoutMs: 120_000 });
console.log((await sbx.commands.run("echo hola")).stdout);

Un idle que pasas tú no se adapta: Sandbox.create(timeout=120, idle=IdlePolicy()) sigue siendo InvalidArgumentException, porque pediste una ventana que no cabe. Detalle: Pausar y reanudar.

Medido en AWS real

En la aceptación de la release, create(timeout=120) sin idle desde Python y desde TypeScript arrancó en ≈ 7 s, lanzó el MicroVM sin idlePolicy y con maximumDurationInSeconds 120, y el MicroVM quedó TERMINATED a los ≈ 131 s.

Para quien corre el e2e

Los e2e de s3-mounts y rayd-otlp documentan ahora una precondición que antes sólo se descubría al fallar: rayito stack deploy s3-mounts y rayito stack deploy otlp-export crean la política gestionada, pero no la adjuntan al rol de ejecución. Sin ella, esos casos fallan en lugar de saltarse. Los pasos están en CONTRIBUTING.md y en la cabecera de cada test.

Cómo actualizar desde 0.9.0

pip install -U "rayito[cli]"
pnpm add rayito@latest

Nada más es obligatorio. La serie de compatibilidad sigue siendo 0.9, así que un SDK 0.9.1 funciona con una imagen de rayd 0.9.0 y al revés: no hace falta republicar la imagen.

Detalle completo: Changelog.