v3.7.1 — consumer:guides bug-fix patch (#52 + #51 + #48)
Patch release closing 3 issues from the brandon-behring/guides + brandon-behring/guides-experimentation Phase 0b batch (2026-05-22→23). Unblocks that workspace's CI (was crashing on validate under Node 20) and fixes brace-math rendering in research-portfolio.
Fixed
book-scaffold validateno longer requires Node 22 (#52).scripts/validate.mjspreviously importedglobfromnode:fs/promises, an API added in Node 22. The scaffold's generated consumer CI templates shipnode-version: '20', sonpm run validatecrashed on every consumer's prebuild hook withSyntaxError: The requested module 'node:fs/promises' does not provide an export named 'glob'. Replaced with a recursivereaddirwalker (extracted toscripts/walk-mdx.mjsfor unit-testability). Works on Node 18+; output format matches the previousglobshape.- MDX math with curly braces now renders in
research-portfoliopreset (#51). Expressions like$\mathbb{E}\{X\}$,$\mathbb{P}\{X|Y\}$,$\mathrm{Cov}\{X, Y\}$previously failed becausesrc/config.tsgated the KaTeX wiring on the literalprofile === 'academic', ignoring thekatex: trueflag thatresearch-portfoliosets in its profile definition. Withoutremark-mathintercepting first, MDX parsed{X}as a JSX expression containing undefined variableX. Fix: gate onPROFILES[profile]?.katex === true(single source of truth: the profile registry). New visual fixturefixture-research-portfolio/.../math.mdxcovers brace-math at 4 viewport widths. create-booknow adds KaTeX peer deps forresearch-portfolioscaffolds (paired with the above). Previously only academic scaffolds gotkatex/rehype-katex/remark-mathin their generatedpackage.json.create-booknow acceptscourse-notesandresearch-portfoliopresets (latent bug fix).VALID_PROFILEShad been rejecting both since they shipped (v3.3.0 and v3.5.0 respectively) — they could only be selected by editing a scaffolded book manually.
Added
- Component prop tables for v3.5.0 components (#48) in
PACKAGE_DESIGN.md §10. CoversPreReleaseBanner,PolicyRef,AICollaborationDisclosure,BlockedByCalloutwith prop signatures + default values + slot semantics.
Release policy
- D12 lock-step preserved:
@brandon_m_behring/create-book@3.7.1ships alongside the toolkit. - Pre-publish smoke gate (v3.6.5) ran for both academic and research-portfolio scaffolds before publish.