Skip to content

fix: parse single-line fenced LLM replies in measurement decider - #51

Merged
Anai-Guo merged 1 commit into
mainfrom
chore/auto-maint-2026-10-22
Oct 23, 2026
Merged

Anai-Guo merged 1 commit into
mainfrom
chore/auto-maint-2026-10-22

Conversation

@Anai-Guo

Copy link
Copy Markdown
Owner

自动维护改动

类型:维护(小 bug 修复 + 回归测试)
改动:orchestrator/decider.decide_measurement 剥离 markdown 围栏时用 text.index("\n"),模型把 JSON 放在单行围栏内({...} / json{...})会抛 ValueError;改为 find() 加回退(去掉反引号与可选的 json 语言标签),并新增 tests/test_decider_fences.py 6 个回归用例(修复前 3 个失败 / 修复后全过)。与 #44/#45/#46/#47 同类,是最后一处。测试放在独立文件,避免与待处理的 #37 冲突。
测试:通过(本地全量 528 passed,ruff check / format 全过)
参考:无

本 PR 由每日维护任务生成,请人工 review 后再合并。

🤖 Generated with Claude Code

decide_measurement stripped markdown fences with text.index("\n"), which
raises ValueError when the model returns the JSON on a single fenced line
(```{...}``` or ```json{...}```). Use find() with a fallback that drops the
backticks and an optional language tag, so such replies parse normally and
genuinely malformed ones still degrade to the rule-based decision. Same
pattern already applied to the paper-pilot client, skill generator,
analyzer and classifier; this is the last remaining instance.

Regression tests live in a new file so they do not collide with the
pending decider test suite.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Anai-Guo
Anai-Guo merged commit 779aaa4 into main Oct 23, 2026
3 checks passed
@Anai-Guo
Anai-Guo deleted the chore/auto-maint-2026-10-22 branch October 23, 2026 10:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant