Repository navigation
fix(triage): 忽略代码示例中的分诊命令 - #346
Conversation
There was a problem hiding this comment.
存在阻断问题:上一轮未解决线程(.github/scripts/prepare_issue_triage_context.py:58,comment 4478781272)指出的 HTMLParser 缓冲问题目前只对 script/style 结束标签做了 close(),多行 HTML 注释仍会延迟解析。复现 `
@codex /triage
|
已在 b13497b 修复这轮审查指出的 HTML 注释问题:未闭合注释的隐藏状态会跨 Markdown 块保留,完整 |
There was a problem hiding this comment.
本轮增量(第 4 轮)仍存在可复现的误判:HTML 内的围栏代码示例跨空行拆成多个 block 后,fence_char 因每次调用重置,后续示例行会被当作真实命令。详见行内评论。
架构评估
本轮已是针对同一可见性判定的第 4 轮补丁。当前同时维护跨 block 的 HTMLParser 状态、块级 quote_depth/list_depth,以及每次调用重建的 fence 状态,边界语义不一致;新增的跨空行用例说明继续逐例打补丁会持续产生回归。建议将可见文本提取收敛为一次性 token/状态机处理,而不是在 HTML block 内继续维护独立的 Markdown 围栏解析。
既有讨论
前轮未解决线程中的 textarea、嵌套列表围栏和 script/style 缓冲问题已由当前提交的测试覆盖,未重复行内评论;本轮发现的是新的跨 block fence 状态问题。
There was a problem hiding this comment.
本轮增量修复将 HTML 围栏关闭后的处理改为在 Markdown token 边界停止,避免继续把新开启的围栏内容当作可见文本;新增的普通与列表围栏回归用例覆盖了此前未解决线程中的误触发。相关命令识别测试 24 项通过,未发现新的阻断级问题。
架构评估:命令识别已连续多轮围绕跨 block HTML 状态和围栏边界打补丁,Markdown token、HTMLParser 与手写状态机并存,长期维护风险偏高。本轮修复本身没有引入新的可复现缺陷,因此不阻断合并;若后续再出现同类边界问题,应改为单一的可见文本或 token 解析路径,而不是继续增加局部特判。
Summary
/triage命令,跳过围栏、缩进代码、行内代码、引用及 HTML 代码示例。Fixes #343
Testing
PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s .github/aicodingflow-tests:544 项通过(Python 3.12,按 CI 安装依赖)。PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s .github/tests:14 项通过(同一环境)。actionlint .github/workflows/triage-issue.yml、Python 编译检查、git diff --check:通过。Risk
How to revert
git revert 7ef9689e087409e00dbb362ff8bba35989261399撤销本次提交并推送还原提交。