Repository navigation
fix(governance): sync SLA responders with the published roster - #6880
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · reasoning_effort=max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
已审阅完整 head 0f0aeaa6a0f8d7ff10d5e08c5c0495e57bce5d84,基线 dc45c128d630cd8f043690a9a00251615d7d13b4。本条 COMMENTED 记录代码批准,不是 GitHub 正式自审批。
动机
受影响的是用公开 SLA 报告核对贡献者是否得到及时回应的维护者。 此前 songoow 已在公开审阅名单中,但他的有效回应仍被默认报告漏计;现在同一输入能计入,其他身份过滤保持原规则。 独立真实 CLI 对比证实 User 类型的跨作者评审、评论和合并均恢复计入,Bot、自回复和名单外回应仍不计入。 本次只同步既有任命的统计默认值,不变更代码所有权、合并权限、SLA 目标或托管 CI 资格。 不修复会使维护者每次运行报告都看到虚假的缺少回应;既有回归已经从公开 roster 独立定义了正确名单,无需再要求用户配置同一事实。
改动思路
复用原报告的默认名单及既有 typed actor 判定,不增加 Markdown 运行时解析器、状态存储或并行规则。 完整边界是只读报告的默认 responder 集合,与既有公开 roster 一致。 公开任命和统计程序是不同 owner:前者决定谁有责任,后者按名单计算指标。此次只纠正后者的过时默认值,继续沿用原先的大小写无关精确匹配、跨作者过滤和 typed actor 数据,未新增授权判断。显式参数仍优先于默认名单;无需引入实时 Markdown 解析及其格式、读取失败和部署依赖。
具体改动
独立依据为基线 dc45c128d630cd8f043690a9a00251615d7d13b4 的 .github/GOVERNANCE.md。Maintainer And Review Roster:默认 responder 应与已发布 roster 一致,当前常量已实现。Review Service Levels:名单内跨作者的评审、评论或合并可以算回应,Bot 不算,显式 responder 配置仍有效;当前真实 CLI 控制实验验证这些边界。规范未在本 PR 改写,不能用本次新增名单自证任命;任命本来就在基线。
关键代码讲解
DEFAULT_RESPONDERS是唯一修改行,加入已任命的 songoow;既有 roster-parity 测试保持原样,没有用新期望绕过旧错误。first_response先检查 GitHub actor 类型,再按精确名单和非作者过滤,取最早合法事件。新增账号并未跳过这些条件,计数也不等于 GitHub approval。main继续以显式--responder替换默认值;JSONL 入口和现有 GitHub 只读入口共用该规则,没有新入口或持久化路径。
独立执行既有10项报告测试、Ruff,以及标准 premerge 的5项 direct 和2项 catalog,均通过,未跳过或放宽检查。另从不可变基线提取完整报告脚本,与当前 tracked head 脚本使用相同解释器和相同合成 JSONL,真实启动18次 CLI:新增 User 评审、评论、合并及大小写变体在基线均漏计,在 head 正确计入;旧名单成员仍计入。各次输入、退出码和完整 JSON 均保留,不以作者的验证声明替代独立执行。
对主干的风险
最有价值的反例是同一个 songoow 登录名以 Bot 类型出现,或评审自己创建的 PR。真实 CLI 对比确认两者在 head 都不算回应,名单外评论同样不算;这避免“新增账号”意外变成无条件认可身份。显式 --responder reader 的完整输出在基线与 head 相同,songoow 不在该名单时仍不计入。默认报告中 responders 列表的增加是有意变化,不能把其他控制病例的整份 JSON 都称为逐字不变。
语义与 CI 对齐
本次 aligned / reuse_existing:扩展的是 provider 本地账号集合,未创建协议枚举或通用状态。SLA 仍是目标而非保证,cross-author 活动计数不自动证明 code-owner 或维护者资格。所有调用只读公开统计输入,没有调度、quota、Goal 或新副作用,也没有功能关闭的隔离主张。测试继续覆盖 draft 时钟、截断披露和工作日计算。按当前配置未查询、轮询或等待 CI;历史托管 CI 失败未被改称修复或通过。
我的整体评价
APPROVE,goal_achieved。 user_experience 在既有报告任务范围 improved,维护者无需额外配置即可得到正确名单口径;long_horizon 为 preserved,没有声称提高长程模型效果或总成本。范围为1文件 +1/-1,沿用已有 provider 与独立 parity oracle,同域额外抽象无必要。未来任命变化仍需同步常量,现有回归负责及时暴露漂移。当前证据限于源码 CLI 与合成输入,未证明真实 GitHub 读取性能、安装态或完整托管 CI;代码批准不授予合并或安装权限。
English verdict: APPROVE — 0f0aeaa6a0f8d7ff10d5e08c5c0495e57bce5d84 against dc45c128d630cd8f043690a9a00251615d7d13b4. The single default-roster correction matches pre-existing governance.10 existing tests and18 real CLI baseline/head observations verify the intended inclusion and retain typed Bot, self-response, outsider and explicit-override boundaries. Ruff and local standard premerge pass; CI was not consulted. No appointment, merge or installation authority is implied.
Goal And Delivered Outcome
The published review roster includes
songoow, but the SLA report still defaults to four responders. This makes an eligible review disappear from the first-response metric and fails the existing roster-parity test, as seen in main CI. Add the already appointed reviewer to the report's default list.中文:公开审阅名单已加入
songoow,SLA 报告却仍使用旧名单,导致合资格回复漏计并使既有回归失败。本修复同步报告默认名单;显式--responder覆盖及 GitHub typed actor 对 Bot 的排除保持有效。Author Declaration
.github/GOVERNANCE.md, “Maintainer And Review Roster” and “Review Service Levels”, at basedc45c128d630cd8f043690a9a00251615d7d13b4.scripts/review_sla_report.py; the existing parity test fails on the base and passes on this head.Scope And Continuation
Complete within this report-provider scope. This synchronizes an existing appointment; it adds no appointment, permission, protocol, runtime state or UI. The existing parity oracle remains the guard against drift. A runtime Markdown parser or new shared roster abstraction would add an unnecessary compatibility boundary here; no companion refactor was needed.
Full hosted Python CI qualification remains open, including the separate shard timeouts and browser failure. This PR does not change test selection, worker counts, timeouts, coverage thresholds or those historical results. Merge and installation are separate maintainer actions.
Validation
Tested head:
0f0aeaa6a0f8d7ff10d5e08c5c0495e57bce5d84. Run state: finished. Inputs: synthetic and public fixture.tests/test_review_sla_report.pytests pass.UI impact: none; visual evidence and shared-authority fixture changes are not applicable. The public diff and this description contain no private state, local paths, raw traces or credentials. One signed-off commit changes one existing provider default. No tracked validation artifacts or extra tests were added.