Fix completed recovery and steer payload validation

This commit is contained in:
wassname committed 2026-09-09 22:54:48 +08:00
1 parent 9350d9f54b
commit f49be72a30
10 files changed
+139 -4

No files matched your search

+16
View File
@@ -106,6 +106,22 @@ it("retries an unanswered active-binding hello twice after delayed channel regis
vi.useRealTimers();
});
it("rejects an oversize steer before retaining it whether connected or disconnected", async () => {
const runtime = setup("supervisor");
runtime.link.markReady();
await runtime.link.waitReady();
const oversized = "x".repeat(16_000);
for (const connected of [true, false]) {
if (!connected) runtime.fixture.connect(false);
const entriesBefore = runtime.entries.length;
const sentBefore = runtime.fixture.sent.length;
expect(() => runtime.link.steer(oversized)).toThrow("16 KB payload limit; no instruction was retained");
expect(runtime.entries).toHaveLength(entriesBefore);
expect(runtime.fixture.sent).toHaveLength(sentBefore);
}
await runtime.hooks.get("session_shutdown")();
});
it("retains only the newest disconnected steer across a supervisor reload", async () => {
const first = setup("supervisor");
first.link.markReady();