Skip to content

fix(tools): 短前缀 paper_id 导致 skim/deep_read/embed/figures/reasoning 崩 - #60

Merged
Color2333 merged 1 commit into
mainfrom
fix/tool-short-prefix-uuid-crash
Jul 19, 2026
Merged

fix(tools): 短前缀 paper_id 导致 skim/deep_read/embed/figures/reasoning 崩#60
Color2333 merged 1 commit into
mainfrom
fix/tool-short-prefix-uuid-crash

Conversation

@Color2333

Copy link
Copy Markdown
Owner

Critical 工具层 bug(与 PR #59 同根,detached session 修复后的延伸)

现象:用户传短前缀 paper_id(如 b7e07388,system prompt 示例 F 明确教这种用法),confirm resume 执行 skim_paper 报 badly formed hexadecimal UUID string,action_result success=false。

根因_require_paper 支持短前缀(≥8 hex 自动模糊匹配完整 UUID),但 handler 里的 UUID(paper_id) 直接解析原始短前缀会崩——短前缀不是合法 UUID 字符串。

修复:handler 用 paper.id_require_paper 已 resolve 成完整 UUID),不再用原始 paper_id 调 UUID()。涉及:

  • read.py:_skim_paper / _deep_read_paper / _embed_paper(3 处 pid = UUID(paper.id)
  • figures.py:_analyze_figures 改用 _require_paper 统一解析 + UUID(paper.id)
  • reasoning.py:_reasoning_analysis 改用 _require_paper + UUID(paper.id)

figures.py/reasoning.py 此前自己管理 session 且 UUID(paper_id) 对短前缀崩,改用 _require_paper 后统一走 detached-but-loaded 模式(与 PR #59 的 read.py 一致)。

实测:生产 b7e07388 短前缀 confirm resume skim_paper → 修复前 success=false "badly formed hexadecimal UUID",修复后应成功。

测试:69 passed / 2 skipped(无回归)。

根因:_require_paper 支持短前缀(≥8 hex 自动模糊匹配完整 UUID),但
handler 里的 `UUID(paper_id)` 直接解析原始短前缀(如 "b7e07388"),
报 "badly formed hexadecimal UUID string"。

system prompt 示例 F 明确教用户"直接传 b7e07388",但 handler 崩了,
agent 可用性受损(LLM 按指令调工具却失败)。

修复:handler 用 `paper.id`(_require_paper 已 resolve 成完整 UUID),
不再用原始 paper_id 调 UUID()。涉及:
- read.py: _skim_paper / _deep_read_paper / _embed_paper(3 处 pid = UUID(paper.id))
- figures.py: _analyze_figures 改用 _require_paper 统一解析 + UUID(paper.id)
- reasoning.py: _reasoning_analysis 改用 _require_paper + UUID(paper.id)

figures.py/reasoning.py 此前自己管理 session 且 UUID(paper_id) 对短前缀崩,
改用 _require_paper 后统一走 detached-but-loaded 模式,与 read.py 一致。

测试:69 passed / 2 skipped(无回归)。
@Color2333
Color2333 merged commit c277038 into main Jul 19, 2026
2 checks passed
@github-actions

Copy link
Copy Markdown

🔍 OpenCode PR Review Required

这是一个受保护的分支,merge 前需要进行 code review。

请运行以下命令进行 OpenCode review:

/oc review https://github.com/Color2333/PaperMind/pull/$PR_NUM

或者在 PR 页面评论 /oc 来触发 OpenCode review。


This is an automated reminder from PR Review Gate.

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