v5.3.0 — M16 Capstone
M16 Capstone — audit remediation, CLI configuration, and security hardening
Added
- Vault rotate passphrase-file support —
vault rotatenow accepts--old-passphrase-fileand--new-passphrase-fileflags. - CLI store flags —
--gzip,--strategy,--chunk-size,--concurrency,--codec,--merkle-threshold, and CDC-specific flags. All library-level options now accessible from the CLI. - CLI restore flags —
--concurrency,--max-restore-buffer. .casrcconfig file — JSON config at repo root sets defaults for CLI flags.- Memory restore guard —
maxRestoreBufferSize(default 512 MiB) prevents unbounded memory allocation. - Web Crypto encryption buffer guard —
maxEncryptionBufferSize(default 512 MiB). - Orphaned blob tracking —
STREAM_ERRORnow includesmeta.orphanedBlobs. - KDF brute-force awareness —
decryption_failedmetric + CLI rate-limiting delay. - Encryption counter — vault metadata tracks
encryptionCountwith GCM nonce bound warning. - Lifecycle method rename —
inspectAsset()/collectReferencedChunks()(old names preserved as deprecated aliases). - Passphrase input security —
--vault-passphrase-file <path>, interactive TTY prompt, empty passphrase rejection.
Changed
- Crypto adapter normalization —
NodeCryptoAdapter.encryptBuffernow returns Promise, matching Bun/Web. - FixedChunker pre-allocated buffer — O(n²)
Buffer.concat()loop replaced with pre-allocated buffer. runActioninjectable delay — deterministic INTEGRITY_ERROR rate-limit tests across all runtimes.
Fixed
- Post-decompression size guard, CLI passphrase prompt deferral, CRLF normalization, constructor validation,
Error.captureStackTraceportability, chunk size upper bound (100 MiB),.casrcconfig validation, KDF algorithm validation, empty passphrase rejection, nullish coalescing for config merging, and more.
See CHANGELOG.md for the full list.
What's Changed
- M16 Capstone — audit remediation (v5.3.0) by @flyingrobots in #17
Full Changelog: v5.2.4...v5.3.0