docs #1200: 产品化自定义 Webhook Body 模板 P2 - #1226
Conversation
🤖 自动审查报告
📁 修改的文件
🧠 AI 代码审查意见结论Ready to Merge 结构化审查结果
|
ZhuLinsen
left a comment
There was a problem hiding this comment.
评审结论
- 必要性:通过。本 PR 围绕 #1200 补齐既有
CUSTOM_WEBHOOK_BODY_TEMPLATE能力的用户可见说明、Web 设置提示和回归测试,符合产品化文档诉求。 - 是否有对应 issue:有,Refs #1200。
- PR 类型:docs/test。主体是文档与配置说明更新,同时补充通知发送和 Web 设置展示的回归测试。
- description 完整性:完整。已说明背景、范围、验证命令与结果、兼容性风险、回滚方式,并符合 AGENTS.md 对用户可见变更同步
docs/CHANGELOG.md的要求。 - 是否可直接合入:可。当前 CI 为 success,改动范围与描述一致;
mergeable_state=blocked更像受分支保护规则限制,不构成本身不可合入理由。
🤖 此回复由 OpenReview Bot 自动生成,仅供参考。如有疑问请 @维护者。
ZhuLinsen
left a comment
There was a problem hiding this comment.
评审结论
- 必要性:通过。围绕 #1200 补齐既有
CUSTOM_WEBHOOK_BODY_TEMPLATE的产品化说明、Web 设置提示和回归测试,符合用户可见能力文档化要求。 - 是否有对应 issue:有,Refs #1200。
- PR 类型:docs/test。主体是文档与配置说明更新,同时补充通知发送和 Web 设置展示的回归测试。
- description 完整性:完整。已说明背景、范围、验证命令与结果、兼容性风险、回滚方式,并同步
docs/CHANGELOG.md;未更新README.md符合 AGENTS.md 对首页级信息的约束。 - 是否可直接合入:可。当前 CI 为 success;本地 diff 未看到运行时发送逻辑、API schema、模型/provider/Base URL 或用户配置清理迁移变更,
mergeable_state=blocked属保护策略状态,本身不构成合入阻断。
🤖 此回复由 OpenReview Bot 自动生成,仅供参考。如有疑问请 @维护者。
|
@massif-01 佬解下冲突 |
ZhuLinsen
left a comment
There was a problem hiding this comment.
跟进结论
- 结论:部分接受 + 前序“可直接合入”需要收缩;当前文档/测试对全局模板优先级和 JSON 占位符语义的说明成立,但 PR 当前仍有合并冲突。
- 是否仍有阻断:有 + 阻断点是当前 merge 状态存在冲突,需先解冲突后再合入;CI 本身已通过。
说明
docs/notifications.md、docs/full-guide.md、docs/full-guide_EN.md已覆盖全局CUSTOM_WEBHOOK_BODY_TEMPLATE会先于 Bark / Slack / Discord 等自动 payload 生效、非法 JSON object fallback、裸$content/$title不做 JSON 转义,以及 Bark / NapCat 示例,之前若按“文档缺失”扩大为阻断,应收窄为已补齐。tests/test_notification_sender.py已新增 Bark URL 下全局模板优先、$content_json/$title_json转义行为测试,能覆盖本 PR 声明的核心语义。- 结构化提示里的“运行时配置迁移/清理风险”在当前 diff 中未看到对应行为变更;
src/core/config_registry.py和apps/dsa-web/src/utils/systemConfigI18n.ts主要是配置元数据与展示文案,不涉及静默清空、迁移或重置用户运行时配置。 - 当前 CI 摘要为 success,包括 ai-governance、backend-gate、docker-build、web-gate;剩余阻断仅来自冲突状态,不是测试失败或实现语义问题。
🤖 此回复由 OpenReview Bot 自动生成,仅供参考。如有疑问请 @维护者。
ZhuLinsen
left a comment
There was a problem hiding this comment.
评审结论
- 必要性:通过。围绕 #1200 将既有
CUSTOM_WEBHOOK_BODY_TEMPLATE语义产品化,补齐用户可见说明、Web 设置提示和回归测试,符合 AGENTS.md 对用户可见能力变更同步文档与 CHANGELOG 的要求。 - 是否有对应 issue:有,Refs #1200。
- PR 类型:docs/test。主体是通知文档、完整指南、配置说明文案与
.env.example更新,同时补充通知发送和 Web 设置展示测试。 - description 完整性:完整。已覆盖背景、范围、验证命令与结果、兼容性风险、回滚方式和 EXTRACT_PROMPT 未变更说明;未更新 README 符合 AGENTS.md 中“细节优先写入 docs、README 不膨胀”的约束。
- 是否可直接合入:可。当前 CI 为 success,结构化事实显示代码可合并;
mergeable_state=blocked更像受分支保护/权限策略影响,不构成单独阻断。当前 diff 未看到会静默清空、迁移或重置用户运行时模型/provider/Base URL 配置的改动,主要变更集中在 Webhook 模板文档、配置元数据和回归测试。
🤖 此回复由 OpenReview Bot 自动生成,仅供参考。如有疑问请 @维护者。
PR Type
Background And Problem
Issue #1200 的 P2 要求将已有的
CUSTOM_WEBHOOK_BODY_TEMPLATE能力产品化:明确全局 Body 模板会先于 Bark / Slack / Discord 等 URL 自动识别 payload 生效,补齐 JSON 占位符使用说明、Bark 冲突处理方案,以及 AstrBot / NapCat / 通用 webhook 示例。本 PR 不重写通知框架,不新增配置,不改变通知发送行为,只补齐当前实现语义的文档、Web 设置提示和回归测试。
Scope Of Change
src/core/config_registry.py、apps/dsa-web/src/utils/systemConfigI18n.ts、.env.example。$content_json/$title_json的 JSON 转义行为。docs/CHANGELOG.md的[Unreleased]扁平条目。Issue Link
Refs #1200
Verification Commands And Results
关键输出/结论:
tests/test_notification_sender.py::TestCustomWebhookSender tests/test_config_registry.py:31 passed。SettingsField.test.tsx:3 passed。npm run lint:通过。npm run build:通过;Vite 输出既有 chunk size warning。git diff --check:通过。./scripts/ci_gate.sh:1733 passed, 2 deselected, backend-gate all checks passed。Compatibility And Risk
不改变运行时发送逻辑、不新增环境变量、不修改 API schema、不迁移或改写用户
.env。已有用户未配置CUSTOM_WEBHOOK_BODY_TEMPLATE时仍走原 URL 自动识别 payload;配置错误模板时仍回退默认 payload。主要风险是用户直接复制 NapCat / OneBot 示例到不同部署,因此文档中已明确 endpoint、
user_id、group_id和鉴权方式需要按实际 NapCat 配置调整。Rollback Plan
最小回滚方式是 revert this PR;无需额外数据或配置迁移。用户侧如需恢复原自动 payload 行为,只需清空
CUSTOM_WEBHOOK_BODY_TEMPLATE。EXTRACT_PROMPT Change (if applicable)
未修改
src/services/image_stock_extractor.py中的EXTRACT_PROMPT。Checklist
docs/CHANGELOG.md;README.md仅在首页级信息变化时更新,细节优先写入docs/*.md/ If user-visible changes are included, relevant docs anddocs/CHANGELOG.mdare updated;README.mdis updated only for homepage-level changes, with details kept indocs/*.md