Repository navigation
fix: round-3 batch ④ — npm interop, hook rules, CLI robustness (L1-L6, M4', N4/N5) - #3
Merged
Merged
Conversation
批次④-A(第三轮评审 L1/L2): - L1: npm uninstall 现识别项目根 .drogon-plugin-install.json(PyPI CLI 独占 v3 戳)。纯 bundle 宿主(claude/zcode)一并清除,消灭互操作残留;混合宿主 保留记录并提示用 PyPI CLI 收尾,不误删他人账本(正向对照测试覆盖)。 - L2: --target 缺值/取值像选项时退出码 2 报用法错误,与 py argparse 对齐; 此前静默回退 cwd,typo 即操作错目录。
批次④-B(第三轮评审 L4/L6):
- CPP.007 现匹配具名 timeout 实参(sendRequest(req, kTimeout) 等,数字/16
进制/含 timeout 的标识符),异步 callback 重载与 cb 命名仍保持不报。
- CSP.001 跨行 `{{ ... }}` 检出:内容段用受约束类(非 `}}`,含换行)匹配,
避免 DOTALL 贪婪放大误报;合法跨行 `[[ ]]` 负例锁方向。
- L4:scan 逐文件 realpath 复核(_escapes_workspace),项目内符号链接指向
工作区外时跳过不读;工作区内链接正向对照照扫。端到端用例需链接特权,
Windows 无权限时 skip,ubuntu CI 覆盖;守卫核心另有本地单测。
…ions, rollback failed installs 批次④-C(第三轮评审 M4′/L3/L5): - M4′:两 CLI 的 expected==0 降级删除 —— 随包技能枚举为 0 即包残缺, 计数校验判失败并在 verify 输出诊断,不再"非空即过"静默绿灯。 - L3:full 归属指令文件卸载前检测标记段之外的自有内容(用户追加)—— 有则只剥标记段+保留文件+显式告警,无则维持整删(正向对照锁行为)。 - L5:install 宿主循环纳入 try/except,半途失败回滚本次写入 (技能目录/规则文件/半成品 bundle/full 指令文件;marker 编辑按剥段撤销), 安装戳不更新,不再留孤儿文件。
批次④-D(第三轮评审 N3 核实 + N4/N5 增强): - N3 核实结案:R3 的"白名单改黑名单"已同时消掉 MultiEdit 过时/NotebookEdit 未覆盖问题(NON_FILE_TOOLS 之外一律尝试提取),既有正/负测试锁住,无需再改。 - N4/N5:qoder kind 改 skills+instruction 落 .qoder/skills,codebuddy 落 .codebuddy/skills;指令文件通道不变(加法增强)。两宿主规范不开源, 通道效果列真机待核,README 同步标注。 - 配套:_OUR_DIR_CANDIDATES/无戳兜底 glob/_HOST_HINTS/`all` 互斥注释更新; verify 经技能通道计数的既有断言自动覆盖;卸载互逆 + 独占目录连带守卫测试。
…ntrol-test assertion PR #3 评审补漏: - CPP.007 标识符支 `[A-Za-z_]\w*…` 强制 timeout 前有字符,裸名 sendRequest(req, timeout)/(req, TIMEOUT) 漏检 → 改 \w*(?:[Tt]imeout|TIMEOUT)\w* - L6 用例表扩为 (rule_id, code) 参数化:补裸名/数字/十六进制正例与三参异步负例 - blocker:项目内符号链接对照测试断言 total==1,但真身与链接 realpath 均在 工作区内 → 双双照扫 total==2(硬链接本地实证),ubuntu CI 必红 → 修正断言
… uninstall, stricter --target PR #3 三代理评审补漏(每条均先见 RED): - L5:重装 bundle 宿主时旧 .drogon-plugin/ 改为改名备份(os.replace),失败原样 恢复(此前先 rmtree → 半途失败旧 bundle 永久丢失而旧戳仍宣称已装); Ctrl+C(KeyboardInterrupt)同样回滚,退出码 130 - L3:_instruction_has_foreign_content/_strip_marker_section 补捕 UnicodeDecodeError —— 非 UTF-8 指令文件卸载不再 traceback,保守保留; _drop_full_instruction 按剥段实际结果记录(不谎称"已剥标记段") - L2(npm):--target 空串此前经 `args.target || cwd` 静默回退 cwd → 一并退出码 2 - M4′:verify 残缺包消息补"(包残缺)"诊断指引(py/npm 同口径) - 测试补强:混合宿主对照改真混合(--host claude,agents,断言戳内容原样/ bundle 被清);新增 marker 回滚分支覆盖(agents 追加标记段后 cursor 失败); qoder 共享守卫补技能数断言 - 文案:CHANGELOG N3 措辞降级(payload 层闭环,matcher 层 NotebookEdit 仅登记)、 M4′ 限定技能校验路径;cli.py docstring 宿主表同步 N4/N5
Owner
Author
三代理评审记录(合并前自查,已随 22a6810 / 8af4dc2 修复)三个并行评审子代理(npm+hooks 侧 / PyPI CLI 侧 / 测试与声明对撞)对本 PR diff 做了全面评审,主代理逐条实证后修复: 已修(每条先见 RED)
评审确认无问题(未改动)
登记不修(advisory 可接受)
修复后全门禁:178 passed / 2 skipped,consistency 14 项 ✅,sync-assets 双侧 ✅,gen-host-artifacts ✅。 |
3 of 4 tasks
wangrh0909
approved these changes
Sep 27, 2026
wangrh0909
pushed a commit
that referenced
this pull request
Sep 27, 2026
…ntrol-test assertion PR #3 评审补漏: - CPP.007 标识符支 `[A-Za-z_]\w*…` 强制 timeout 前有字符,裸名 sendRequest(req, timeout)/(req, TIMEOUT) 漏检 → 改 \w*(?:[Tt]imeout|TIMEOUT)\w* - L6 用例表扩为 (rule_id, code) 参数化:补裸名/数字/十六进制正例与三参异步负例 - blocker:项目内符号链接对照测试断言 total==1,但真身与链接 realpath 均在 工作区内 → 双双照扫 total==2(硬链接本地实证),ubuntu CI 必红 → 修正断言
1 of 2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
第三轮评审报告
docs/ROUND3-SPEC-HOST-PLATFORM-CORRECTNESS-REVIEW.md§6 批次④整改(严格 TDD,每项先见 RED):npm ↔ PyPI 互操作(L1/L2) —
npm/bin/cli.jsuninstall现识别并清除 PyPI CLI 写的项目根 v3 安装戳.drogon-plugin-install.json(纯 bundle 宿主 claude/zcode 时删除;混合宿主保留账本并提示用 PyPI CLI 收尾——正向对照锁"不误删")--target缺值/取值形似选项 → 用法错误退出码 2,不再静默按 cwd 执行,与 PyPI argparse 对齐钩子规则与 --scan(L4/L6) —
hooks/posttooluse.py--scan逐文件 realpath 复核(_escapes_workspace),项目内指向工作区外的文件符号链接不再被读取;工作区内链接照扫sendRequest(req, kTimeout)(具名 timeout 变量);CSP.001 补抓跨行{{ }}(tempered dot,无 DOTALL 贪婪风险);异步重载与合法跨行[[ ]]负例锁死误报面CLI 健壮性(M4′/L3/L5) —
src/drogon_plugin/cli.py+ npm 侧同口径full归属指令文件卸载前检测标记段之外的用户内容:有则只剥标记段 + 告警保留;纯插件产物仍整删宿主通道增强(N4/N5) —
cli.pyHOSTS--host qoder补投.qoder/skills/、--host codebuddy补投.codebuddy/skills/(指令文件通道不变,加法增强;两宿主规范不开源,README 标注待真机核验)Test plan
pytest tests/ -q— 168 passed, 2 skipped(skip = L4 符号链接 E2E,Windows 无 symlink 特权,CI ubuntu 会执行)scripts/check-consistency.py— 14 项通过scripts/sync-assets.py --check/scripts/sync-assets.mjs --check— 双侧资产同步scripts/gen-host-artifacts.py --check— v0.4.0 一致