v0.1.1
Security fixes from the 2026-07-29 pass over docs/securityscan.md.
Library:
detailskeys that name an inherited accessor (__proto__) are stored instead of being silently dropped, so an event round-trips as the bytes that were submitted.occurredAtrequires a real ISO 8601 instant: the right shape, a day-of-month that exists in its month, and a parsable value.Date.parse-only formats such asMarch 3, 2020, and dates it normalizes such as2026-02-30T00:00:00Z, are refused.decodeAuditEventfails on a row it cannot read faithfully rather than coercing it. An unknown stored actor kind no longer decodes as a principal, and a null or missing field no longer becomes"null"/"undefined".sweepvalidates a suppliedlimitas a positive safe integer, soNaNcan no longer leave a permanent deletion unbounded.
Release pipeline:
- Release validation refuses a published manifest defining
preinstall,install, orpostinstall. runNpmnever builds a shell command line; the Windows fallback that passed unescaped arguments throughcmd.exeis gone.- The publish workflow verifies the npm CLI tarball against a reviewed sha512 before installing the tool that packs and publishes the release.
Stricter validation only — no public type or signature changes. Full dispositions, including three findings disputed with reasoning, are in docs/securityscan.md.