Files
github-spec-kit/tests/integrations
Marsel Safin 6ab0c1dac1 fix(integrations): escape control characters in goose recipe YAML renderer (#3384)
* fix(integrations): escape control characters in goose recipe YAML renderer

YAML forbids C0 control characters (except tab and newline) and DEL in
every scalar form, and a bare CR acts as a line break inside a block
scalar. _render_yaml wrote the body verbatim into a |2 literal block
scalar, so such bodies produced recipes the YAML parser rejects. Detect
block-scalar-unsafe characters and fall back to an escaped double-quoted
scalar via yaml.safe_dump, mirroring the TOML renderer's fallback
strategy from #3341.

Fixes #3382

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(integrations): use sys.maxsize instead of float inf for yaml width

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(integrations): extend block-scalar guard to C1 controls and Unicode line breaks

YAML's printable set excludes C1 controls (U+0080-U+009F except NEL), and
YAML 1.1 treats NEL/LS/PS as line breaks inside a literal block scalar, so
bodies carrying any of these still produced unparseable recipes. Widen the
fallback guard to the full class and cover it in the regression loop.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(integrations): also treat surrogates and U+FFFE/U+FFFF as block-scalar unsafe

YAML's printable set also excludes lone UTF-16 surrogates and the
non-characters U+FFFE/U+FFFF; bodies carrying them still hit the literal
block path and produced unparseable recipes. Extend the guard and the
regression loop.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs(integrations): clarify YAML prompt serialization

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-14 07:15:04 -05:00
..