CultLib/packages
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens d9a406f9ff Fix hygiene: connect() rejection tests no longer leak a resolved transport
Found running the M1 mutation (bypasses the certificate-accept check) on
Yggdrasil under cgroup-limited CPU: three tests correctly failed their
assertion (`assert.rejects(connector.connect(...))` / `manager.connect(...)`
observed a resolve instead of a reject), but realtime-quic-consumer.test.js
then hung instead of exiting — "Promise resolution is still pending but the
event loop has already resolved". Each of those assertions discarded the
connect() call's return value on the assumption it would always reject, so
the transport that unexpectedly connected under the mutant was never
captured, never disposed: a live native connection, an active
onConnectionEvent registration and an outstanding runtime reference kept
the process alive after node:test had already recorded the failures. This
is the exact scenario the batch names by history ("Soul saw M1 and M3 fail
their assertion and then hang the file").

Added `assertRejectsAndDisposes()`, a drop-in replacement for
`assert.rejects()` that disposes whatever the promise resolves to before
failing the assertion, and used it at all eight call sites in this file
that assert a connect() call rejects (two direct connector.connect() calls,
six through the session manager). Verified on Yggdrasil: M1 re-run now
fails the same three assertions and the file exits on its own.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-23 16:59:48 +02:00
..
cultcache-py Refuse re-entrant Python cache mutations and adopt legacy-key globals on load 2026-09-14 12:27:55 +02:00
cultcache-rs Require an atomic push_all from every Rust backing store 2026-09-14 12:28:07 +02:00
cultcache-ts Delete the TypeScript re-entry guard; state the store-wait rule once 2026-09-14 12:43:46 +02:00
cultmath Say what the cell-mass test proves, and what it does not 2026-09-22 21:43:52 +02:00
cultmesh-browser Share the route-certificate view between cultmesh-ts and cultmesh-browser 2026-09-23 15:52:46 +02:00
cultmesh-kotlin Consolidate CultNet schema contracts into CultLib/contracts/cultnet 2026-09-13 17:27:41 +02:00
cultmesh-py Consolidate CultNet schema contracts into CultLib/contracts/cultnet 2026-09-13 17:27:41 +02:00
cultmesh-rs Give every cultcache-rs entry type one home store 2026-09-14 00:38:41 +02:00
cultmesh-ts Fix hygiene: connect() rejection tests no longer leak a resolved transport 2026-09-23 16:59:48 +02:00
cultnet-py Merge the CultCache store-routing cuts into main 2026-09-14 15:16:29 +02:00
cultnet-rs Merge the CultCache store-routing cuts into main 2026-09-14 15:16:29 +02:00
cultnet-ts Share the route-certificate view between cultmesh-ts and cultmesh-browser 2026-09-23 15:52:46 +02:00