Add `WebhookNotifier.SUPPORTED_EVENTS` and a `--strict` guard holding `webhook_schema.md`'s event table to the emission sites
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 55/100
调研方向
Start with forgelm/webhook.py, where the event names must become a SUPPORTED_EVENTS frozenset, and with the eight-event table in docs/reference/webhook_schema.md (EN and TR). Use tools/check_audit_event_catalog.py as the pattern for the new tools/check_webhook_event_vocabulary.py --strict guard. Done when the guard fails on any mismatch between the docs and the emission sites, and the row at docs/roadmap/risks-and-decisions.md:264 is removed with its ID F-PR54-M10-followup in the CHANGELOG. Coordinate with #671 on the overlapping guard half.
由索引模型根据 Issue 内容生成。
描述
Deferred work ·
F-PR54-M10-followup· severity Low · cost ~2 h · recorded indocs/roadmap/risks-and-decisions.md:264
Summary
Phase 14.5 shipped docs/reference/webhook_schema.md but not its optional third sub-task: a SUPPORTED_EVENTS frozenset as the single source of webhook event names, plus tools/check_webhook_event_vocabulary.py --strict. The eight-event table (EN + TR) is held to forgelm/webhook.py by review alone.
Condition or budget
None (optional).
State today (re-checked 2026-10-09)
forgelm/webhook.py has no SUPPORTED_EVENTS, and the guard does not exist; check_audit_event_catalog.py checks the names only against the audit-event catalog.
Related
#671 (CR-A17a-029) asks the catalog guard to check webhook event literals separately — it overlaps the guard half only.
Acceptance criteria
-
SUPPORTED_EVENTSis the single source, and a--strictguard fails whenwebhook_schema.md(EN or TR) and the emission sites disagree. - The row is removed from the deferral table and the CHANGELOG names its ID (the table's removal contract).
Recorded in docs/roadmap/risks-and-decisions.md (read at f94595f) and re-checked against the code on 2026-10-09. The row leaves that table only when the fix is on main, the CHANGELOG names its ID and any promised guard exists.
- 主要语言
- Python
- 星标
- 9
- 派生
- 1
- 平均合并
- 8 小时 36 分钟
- 30 天内合并 PR
- 49
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
HodeTech/ForgeLM 的其他 Issue
-
area: site bug good first issue severity: low wave: 4
难度 2/5 1-3 小时 新手友好度 75/100
HodeTech/ForgeLM#961 · 2 条评论 ·
维护者通常 1 天内回复
-
area: dev-tooling bug severity: low source: roadmap wave: 4
难度 2/5 1-3 小时 新手友好度 70/100
维护者通常 1 天内回复
-
Trend-tracking jq recipe prints evaluation_completed=false as 'n/a', because jq's // operator treats false like null (F-W1-DOCS-TRAIN-16)可能已有人在做 @yuefdev 于 5 天前认领。 未关闭documentation good first issue severity: low source: review-2026-09 wave: 4
难度 1/5 1-3 小时 新手友好度 80/100
维护者通常 1 天内回复
-
documentation severity: medium source: review-2026-09 wave: 3
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
documentation good first issue severity: medium source: review-2026-09 wave: 3
难度 2/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复
相似的 Issue
-
Python Volcengine provider returns failures instead of raising them可能已有人在做 @Ricardo-M-L 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 79/100
agent-infra/sandbox#248 ·
-
Textractor leaves empty temporary files when remote retrieval fails可能已有人在做 @HuaTNA 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
test(bm_generation): pin the learning parameters and CPU sync shortcut可能已有人在做 @iloveeyjafjalla 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
qboson/kaiwu-pytorch-plugin#1341 ·
维护者通常 2 天内回复
-
难度 2/5 1-3 小时 新手友好度 70/100
elder-plinius/V3R1T4S#625 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 62/100
维护者通常 1 天内回复