fix(eval): parse code fences like lib.sh in the outputs eval (#1055)

test-convert-outputs.sh's Python fence model read fences only at column 0. With an indented opening fence and a column-0 closer - valid CommonMark that GitHub renders, lint accepts and convert_openclaw splits correctly - the model missed the opener and treated the closer as its own opener, so it reported a torn fenced block across SOUL.md/AGENTS.md and failed the Check Tools workflow on an agent file that was fine.

Mirror lib.sh's fence_open_p / fence_closes_p (up to three spaces, same character, a closer at least as long as the opener with nothing but whitespace after the run) so the eval sees the same blocks the converter does.

test-convert-fence-model.sh builds a throwaway repo with one such fixture and runs the real eval; on the previous model it fails with the false torn-block report, and with this change all tools validate. The full roster still passes with zero manifest drift.
This commit is contained in:
ordinary being authored and GitHub committed 2026-10-07 11:45:46 -05:00
1 parent d21d4b4949
commit f99f6aa910
3 files changed
+81 -4

No files matched your search

+3
View File
@@ -36,6 +36,9 @@ jobs:
# maintainers regenerate at landing) and enforced on pushes to main.
run: bash scripts/test-convert-outputs.sh ${{ github.event_name == 'pull_request' && '--drift=advisory' || '' }}
- name: Parse indented code fences like lib.sh in the outputs eval
run: bash scripts/test-convert-fence-model.sh
- name: Validate agent selection (install.sh --agent / --agents-file)
run: bash scripts/test-agent-selection.sh