0.36.0 (2026-09-18)
Features
- cli: add
cook completions <shell>for shell completion scripts (56c5376) - cli: add
cook completions <shell>for shell completion scripts (a1fc3f0), closes #467 - doctor: show which recipes use each reported ingredient (dca25c1)
- doctor: show which recipes use each reported ingredient (35471a3), closes #485
- packaging: add Fedora RPM packaging (97447ab)
- server: add --cors-origin and --cors-allow-credentials (979addf), closes #465
- server: build the CORS layer from the validated config (26f7bf0)
- server: make CORS configuration configurable (282eaaa)
- server: refuse cross-origin writes under the wildcard default (d314e78)
- server: validate CORS origin and credential flags (85d3f95)
- ui: add token layer and component vocabulary (2901588)
- ui: token foundation and Cooklang palette, existing layout kept (a83a5a8)
Bug Fixes
- build: emit search index as a script so file:// search works (0234e89)
- build: emit search index as a script so file:// search works (792338f), closes #471
- build: harden search index load and scope the file:// claim (091a916)
- build: ship only compiled stylesheets and scripts in the static site (b28ba40), closes #493
- build: wire resolved --lang to <html lang> attribute (1c13d44), closes #470
- doctor: compare reported recipe paths without assuming a separator (1abbab4)
- editor: do not show Saved before any save (cb93179), closes #491
- editor: syntax colours from tokens instead of hex (cb4f830), closes #490
- format: stop hard wrapping markdown output (831eec8)
- format: stop hard wrapping markdown output (b86976c), closes #497
- i18n: translate icon-button labels (d874c04), closes #488
- packaging: attach the built RPMs to the release (d70964f)
- packaging: give the build root the toolchain the spec asks for (c52da27)
- packaging: keep the packaged binary stripped (253bf34)
- packaging: make the RPM workflow build again (641f530)
- search: decode recipe files lossily instead of failing on invalid UTF-8 (ae3b33e)
- search: decode recipe files lossily instead of failing on invalid UTF-8 (3c8072a)
- search: pick up cooklang-find 0.7.1 for invalid UTF-8 in front matter (2f0de89), closes #498
- server: accept bracketed IPv6 CORS origins (8172463)
- server: read the write guard's host from the Host header only (abe2976)
- server: reject CORS origins that could never match (0e76be4)
- server: reject CORS origins with an empty host (b32ac93)
- server: report
tagsas an array whatever the frontmatter spelled (cab61d8) - server: report
tagsas an array whatever the frontmatter spelled (fc2c8a1) - server: stop deriving the new-recipe host from a forgeable header (ea9138b)
- server: take the API docs host from Host, not X-Forwarded-Host (76826a8)
- server: take the API docs host from Host, not X-Forwarded-Host (57b0e3d)
- shopping-list: cap reference depth, and cover the yield branch (c73c1da)
- shopping-list: follow recipe references all the way down (6034ee1)
- shopping-list: follow recipe references all the way down (a69b461), closes #509
- ui: build the scale URL safely and guard bad scale values (108359b)
- ui: keep icon-only actions below lg, tidy print rules and docs (c5aa9c2)
- ui: keep overflow menu highlight and brand mark legible (efb561d)
- ui: pantry stock colour, compact inline buttons, smaller row icons (3ca61d1)
- ui: recipes index review fixes (af83ef6)
- ui: safe scale navigation on menus, aria-pressed on preference toggles (944972c)
- ui: show the new-recipe error border, ring its input, compact API chips (1d310a4)
- ui: tighten token foundation after review (b1b64df)
- ui: white text on filled buttons via a darker accent fill (16293bb)
- web: align the pantry page with the header width (f0f7c24)
- web: close the UI follow-ups from #456 (9b19857)
- web: escape recipe names in server-mode search results (1b578c9), closes #487
- web: keep the served order on the default sort (8f4f144), closes #486
- web: no skipped heading levels on API docs and sectioned recipes (227d09e), closes #492
- web: show the shopping list empty state after clearing (89c0696), closes #489
- web: sort the recipes index naturally on the server (feaedb4), closes #486