This release adds 2 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+4 more
Affected surfaces
Summary
AI summaryUpdates Patch Changes, CLI, and WASM across a mixed release.
Full changelog
Patch Changes
-
0a0ff4c: Bundle the Python tree-sitter grammar (WASM) into the CLI's published tarball; remove
tree-sitter-pythonas a runtime dependency.The
tree-sitter-pythonnpm package ships both a native binding and a WASM grammar artifact. hookwarden only uses the WASM path (viaweb-tree-sitter), but the native binding rannode-gyp-buildat install time — failing on platforms without prebuilds (Alpine/musl, locked-down corporate environments) and adding install-time latency for everyone.Fix:
packages/cli/scripts/sync-wasm.mjscopiestree-sitter-python.wasmintopackages/cli/wasm/at install + pack time. The CLI loader reads from the bundled location instead of resolving the npm package at runtime.tree-sitter-pythonmoves fromdependencies→devDependencieson both@hookwarden/engineandhookwarden(CLI).Net effect for end users:
npm i hookwardenno longer triggers a native compile step. Works cleanly on Alpine, locked-down CI, and any environment without a C++ toolchain.- Tarball grows from 55 kB → 123 kB (gzipped) — the price of bundled portability.
- Runtime behavior unchanged. Same WASM, same parser, same tests passing.
-
1fadc62: Fix
stripe/raw-body-misusefalse positive on the canonical Stripe happy-path pattern.The engine's
body_as_bytes_or_bufferevidence signal previously searched the handler's arrow function body for raw-body indicators. Butexpress.raw({ type: 'application/json' })is registered as an inline per-route middleware argument — outside the arrow body — so the search missed it, even though the middleware was correctly resolved intomiddleware_chain.Result:
stripe/raw-body-misusefired as a critical finding on every codebase that uses Stripe correctly with the path-scopedexpress.rawpattern. The PI-3 integration test had been written around this —expect(stdout).toContain("verified")masked the fact that exit code was 1 and a critical FP was being emitted alongside the verified badge.Fix: Added
collectRawBodyMiddlewareEvidenceoverlay inpackages/engine/src/model/build.tsthat follows the same pattern as thesdkVerifyEvidenceoverlay. Whenmiddleware_chaincontainsexpress.raw(qualified call) orraw(named import) AND the import source isexpressorbody-parser, an evidence entry of kindbody_as_bytes_or_bufferis appended. Theimport_sourceguard prevents false-negative matches from unrelatedrawmiddleware on other routers.Test: PI-3 strengthened — now asserts exit 0,
stripe/library-verifiedpresent,stripe/raw-body-misuseabsent, andcounts.active.critical == 0on the happy-path fixture. Full suite: 234/234 pass.Net effect for users: scanning a correct Stripe webhook handler that uses
express.rawas a per-route middleware no longer emits a critical false positive. Thestripe/library-verified(info, verified) finding still fires correctly to confirm the handler is verified.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Hookwarden
All releases →Related context
Beta — feedback welcome: [email protected]