Files
scriptc/packages
Malte UblandClaude Opus 5.5 f09e02255d Guard the X509 dynamic-value fence against recursive types
refuseX509DynValues walks a converted value's type looking for an
X509Certificate record, and it memoized only records (by shape id) and
unions (by union id). A type that reaches itself through an array, set,
map or promise has no id to memoize by, so `type Rec = string | Rec[]`
in a program that also holds a certificate recursed until the compiler
ran out of stack — a crash, not a diagnostic.

The walk now keeps an identity-based visited set over those kinds: a type
met again while it is still being visited answers false, the least fixed
point of reachability, since nothing outside the cycle makes a
certificate reachable. Unions keep their memo, which now also covers a
union cycle that names one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 05:38:06 -07:00
..
2026-10-27 16:45:14 -05:00
2026-10-25 11:26:13 -05:00
2026-10-25 11:26:13 -05:00
2026-10-25 11:26:13 -05:00
…
2026-10-25 11:26:13 -05:00
2026-10-25 11:26:13 -05:00
2026-10-25 11:26:13 -05:00
2026-10-25 11:26:13 -05:00