You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(daemon): the admitted-plan token is a nominal, non-copyable object, not a branded literal
Review (P1): spreading a valid admission and overriding device or plan kept
the enumerable symbol brand and stayed assignable, so facts admitted for A
could bind B. The token is now a class whose payload lives in #private fields
behind getter-only accessors, minted only through a closure set in its static
block; the class value is not exported (only its type), so no module can name
the constructor. A spread is a plain object without the private members and
is not assignable; Object.assign / defineProperty on the frozen instance throw.
Planted reds: degrading the token to a plain public shape makes both
@ts-expect-error directives unused (2 tsc errors); the previous branded
literal fails the new runtime retarget test.
0 commit comments