Harden development gates and align the governing rules #213

Merged
weichen merged 14 commits from feature/governance-reliability into main 2026-10-05 13:43:15 +00:00
Owner

开发门禁现在保护未保存工作、核对实际组件版本,并记录可复核的脱敏证据。正文从任务卡生成;完整命令输出见固定版本任务卡。

feature/governance-reliability 任务卡

任务主记录:本 PR;状态:待审核;owner:weichen

基线与授权

  • 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 43d33aa492
  • 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-governance-reliability(worktree);分支:feature/governance-reliability
  • 授权与交付终点:用户于 2026-10-05 批准按审查方案完善规范及门禁。交付为经过验证的修复与 PR。用户后续明确授权:确认无冲突后合入,再清理本任务 worktree;普通 PR 合入与安全收尾纳入本次授权。分支保护变更、发布、部署仍不在本次执行范围。

目标与非目标

修复回收丢工作、组件同步漂移、证据管道/脱敏/来源、启动收据闭环、远端新鲜度、写守卫和 CI 凭据边界;对齐规则、提交格式、堆叠分支及子仓入口,加入持续治理回归。保持产品运行行为与高后果双钥匙边界。

同步记录

节点 sync_base_sha tested_head_sha checked_at
启动 43d33aa492 43d33aa492 2026-10-05T12:18:49Z

证据(Evidence)

时间(UTC) 命令 被测HEAD exit 来源 sha256(16)

结果与验证(完成后填写)

  • 结果:已修复任务回收、组件同步、证据/凭据、首次收据和写守卫机制,并对齐规则与入口;代码与文档已提交,待所有者审核合入。
  • 验证:SELF,最终固定组合 1c799327148fa3ea6b1086a0fc98d4b45d2d7548 的 make test && make build exit 0,含 94 项治理回归;完整输出与对象来自下方工具收据。审查修复另有独立 REPLAY 记录,远端 CI 结果待 PR 运行后关联。
  • 影响与剩余项:main 未合入、未部署/发布。平台必需 CI 尚未启用;分支保护变更按双钥匙规则由所有者执行 policy/platform-admission.md。ZCode 真实客户端接线仍 pending-live,不以脚本测试代替。

实施与验收安排

  • 独立单元:任务生命周期;证据收据;写路径与 CI;根入口与组件文档。共享工作区按文件分工,主执行者统一提交与验证。
  • 验证:治理脚本用临时真实仓库和虚构凭据先复现再修复;验收前 task-sync,执行 make test-governance、make test、make build、差异和链接检查。
  • 初次 precheck 由原工具执行,完整原始输出已直接捕获为仓外 JSON;新工具以 cat /tmp/governance-precheck-20261005.json 归档原工具捕获的完整结果(SELF)。该 cat 命令仅保全旧工具输出,不冒充重新执行 precheck;原执行时未采集新 schema 的完整快照,此限制保留。
  • Core 项目事实文档在独立组件工作区修复,组件 PR 单独审核;Dev 保持现有 Core 组合,避免为文档修订擅自升级公共契约及嵌套消费者。

| 同步前验收 | 43d33aa492 | 8af945a1d5 | 2026-10-05T12:36:27Z |

独立审查与修复跟踪

  • ce-code-review 收据:.task/reviews/governance-reliability.json,run 20261005-123925-a2fa0a6f;7 个本地审查方向完成,审查对象 c0abfb0。Claude 补充审查超时,无可用结果,不计独立佐证。
  • 审查 #1:子模块额外 worktree 依赖父任务 Git 管理目录。已补递归注册检查及 clean/staged/uncommitted/nested 回归;旧版本同样存在该问题,仍属本次现场保护整改范围。
  • 审查 #2:旧证据扫描器不认识新 JSON。已补新旧格式、前后对象、校验摘要及无法核验时的提示。
  • 审查 #3:带引号的 Authorization 漏脱敏。已补 JSON/Python 字典及赋值形式,覆盖 30 种虚构凭据变体。
  • 审查 #4:已补 abandon 的本地/远端提交、原因记录保留与缺原因拒绝回归。最终修复复验见后续工具收据,不将旧审查直接当新提交通过。

合流与复验

  • 原审查 4 项已在 b84667a 上独立重放关闭(REPLAY:42 个生命周期用例、31 个证据用例);原始机器记录见 .task/reviews/governance-repair-verification.json。
  • 后续同步遇到 main 的 PR #211/#212:保留其已合入同名分支拒绝机制;其旧证据转义管道防护由新旧格式读取器承接。补两个真实仓回归覆盖同名本地/远端引用与旧表格转义管道。同步失败输出保留为 FAIL,不补写为成功。
  • 新保护启用后,旧候选/未提交阶段收据的 WARN 属预期:保留其原对象范围,正式验收以下一轮固定组合证据为准。
    | 同步前验收 | fd442d933c | c1fdf0141c | 2026-10-05T13:12:15Z |

组件 PR 与合入顺序

UI 与 Documents 先由所有者审核合入,再审核 Dev 固定组合。Core 仅修正其当前 main 的项目事实,独立合入;Dev 保留原 Core gitlink,未捎带升级已有公共契约。

运行与回退

本轮改变开发工具,不部署产品。首次使用新规则核对启动收据、同步后的组件 SHA、失败证据退出码与回收拒绝理由;出现非预期拒绝先保留现场,再由所有者按普通 PR 回退工具变更。回退不复原已发生的外部动作,不能启用旧的不安全强删兜底。
| 同步前验收 | fd442d933c | d96e4ae016 | 2026-10-05T13:16:46Z |

开发门禁现在保护未保存工作、核对实际组件版本,并记录可复核的脱敏证据。正文从任务卡生成;完整命令输出见[固定版本任务卡](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/src/commit/005e2a1bd570677480097d83fdae534522a74aad/.task/feature-governance-reliability.md)。 # feature/governance-reliability 任务卡 任务主记录:本 PR;状态:待审核;owner:weichen ## 基线与授权 - 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 43d33aa4921078bc202393b99cba017d7f731b98 - 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-governance-reliability(worktree);分支:feature/governance-reliability - 授权与交付终点:用户于 2026-10-05 批准按审查方案完善规范及门禁。交付为经过验证的修复与 PR。用户后续明确授权:确认无冲突后合入,再清理本任务 worktree;普通 PR 合入与安全收尾纳入本次授权。分支保护变更、发布、部署仍不在本次执行范围。 ## 目标与非目标 修复回收丢工作、组件同步漂移、证据管道/脱敏/来源、启动收据闭环、远端新鲜度、写守卫和 CI 凭据边界;对齐规则、提交格式、堆叠分支及子仓入口,加入持续治理回归。保持产品运行行为与高后果双钥匙边界。 ## 同步记录 | 节点 | sync_base_sha | tested_head_sha | checked_at | |---|---|---|---| | 启动 | 43d33aa4921078bc202393b99cba017d7f731b98 | 43d33aa4921078bc202393b99cba017d7f731b98 | 2026-10-05T12:18:49Z | ## 证据(Evidence) | 时间(UTC) | 命令 | 被测HEAD | exit | 来源 | sha256(16) | |---|---|---|---|---|---| ## 结果与验证(完成后填写) - 结果:已修复任务回收、组件同步、证据/凭据、首次收据和写守卫机制,并对齐规则与入口;代码与文档已提交,待所有者审核合入。 - 验证:SELF,最终固定组合 `1c799327148fa3ea6b1086a0fc98d4b45d2d7548` 的 `make test && make build` exit 0,含 94 项治理回归;完整输出与对象来自下方工具收据。审查修复另有独立 REPLAY 记录,远端 CI 结果待 PR 运行后关联。 - 影响与剩余项:main 未合入、未部署/发布。平台必需 CI 尚未启用;分支保护变更按双钥匙规则由所有者执行 `policy/platform-admission.md`。ZCode 真实客户端接线仍 pending-live,不以脚本测试代替。 ## 实施与验收安排 - 独立单元:任务生命周期;证据收据;写路径与 CI;根入口与组件文档。共享工作区按文件分工,主执行者统一提交与验证。 - 验证:治理脚本用临时真实仓库和虚构凭据先复现再修复;验收前 task-sync,执行 make test-governance、make test、make build、差异和链接检查。 - 初次 precheck 由原工具执行,完整原始输出已直接捕获为仓外 JSON;新工具以 `cat /tmp/governance-precheck-20261005.json` 归档原工具捕获的完整结果(SELF)。该 cat 命令仅保全旧工具输出,不冒充重新执行 precheck;原执行时未采集新 schema 的完整快照,此限制保留。 - Core 项目事实文档在独立组件工作区修复,组件 PR 单独审核;Dev 保持现有 Core 组合,避免为文档修订擅自升级公共契约及嵌套消费者。 | 同步前验收 | 43d33aa4921078bc202393b99cba017d7f731b98 | 8af945a1d53bd3aa934994070417c91508cba994 | 2026-10-05T12:36:27Z | ## 独立审查与修复跟踪 - ce-code-review 收据:`.task/reviews/governance-reliability.json`,run `20261005-123925-a2fa0a6f`;7 个本地审查方向完成,审查对象 c0abfb0。Claude 补充审查超时,无可用结果,不计独立佐证。 - 审查 #1:子模块额外 worktree 依赖父任务 Git 管理目录。已补递归注册检查及 clean/staged/uncommitted/nested 回归;旧版本同样存在该问题,仍属本次现场保护整改范围。 - 审查 #2:旧证据扫描器不认识新 JSON。已补新旧格式、前后对象、校验摘要及无法核验时的提示。 - 审查 #3:带引号的 Authorization 漏脱敏。已补 JSON/Python 字典及赋值形式,覆盖 30 种虚构凭据变体。 - 审查 #4:已补 abandon 的本地/远端提交、原因记录保留与缺原因拒绝回归。最终修复复验见后续工具收据,不将旧审查直接当新提交通过。 ## 合流与复验 - 原审查 4 项已在 b84667a 上独立重放关闭(REPLAY:42 个生命周期用例、31 个证据用例);原始机器记录见 `.task/reviews/governance-repair-verification.json`。 - 后续同步遇到 main 的 PR #211/#212:保留其已合入同名分支拒绝机制;其旧证据转义管道防护由新旧格式读取器承接。补两个真实仓回归覆盖同名本地/远端引用与旧表格转义管道。同步失败输出保留为 FAIL,不补写为成功。 - 新保护启用后,旧候选/未提交阶段收据的 WARN 属预期:保留其原对象范围,正式验收以下一轮固定组合证据为准。 | 同步前验收 | fd442d933c051fe538b224e067c214c1976f6dd0 | c1fdf0141ca4e833c5b391c1847ee53d953b1cf3 | 2026-10-05T13:12:15Z | ## 组件 PR 与合入顺序 - [Agent-System-UI #38](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-UI/pulls/38),head `2cb1496320dda6e65501ac94318295f067231dd7`。 - [Agent-System-Documents #38](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/38),head `19e89ae10bd93306400f13a9a1f449cbc5bfaa42`。 - [Agent-System-Core #22](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Core/pulls/22),head `cf2615def6db90f60006fc60c5584c3166a2748e`。 UI 与 Documents 先由所有者审核合入,再审核 Dev 固定组合。Core 仅修正其当前 main 的项目事实,独立合入;Dev 保留原 Core gitlink,未捎带升级已有公共契约。 ## 运行与回退 本轮改变开发工具,不部署产品。首次使用新规则核对启动收据、同步后的组件 SHA、失败证据退出码与回收拒绝理由;出现非预期拒绝先保留现场,再由所有者按普通 PR 回退工具变更。回退不复原已发生的外部动作,不能启用旧的不安全强删兜底。 | 同步前验收 | fd442d933c051fe538b224e067c214c1976f6dd0 | d96e4ae016def6ce4f93548a55e6b26de8924d37 | 2026-10-05T13:16:46Z |
weichen added 10 commits 2026-10-05 13:30:17 +00:00
Why: cleanup, component synchronization, receipt recording and credential handling could contradict the documented development boundaries.

Evidence: SELF 75 isolated governance tests and source checks are captured in .task/feature-governance-reliability.md; combination and CI verification follow.

Impact: hardens local task and CI tooling, aligns policy and component documentation, and adds continuous regression tests without changing product behavior.

Refs: .task/feature-governance-reliability.md; policy/governance.md; policy/platform-admission.md
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=43d33aa4921078bc202393b99cba017d7f731b98; candidate=8af945a1d53bd3aa934994070417c91508cba994.

Impact: task metadata only.

Refs: .task/feature-governance-reliability.md
Why: retain complete tool-generated local verification for the governance repair candidate.

Evidence: SELF task-sync, 75 governance tests, full make test, make build and syntax checks are recorded in the task card.

Impact: evidence metadata only; product and gate implementations are unchanged.

Refs: .task/feature-governance-reliability.md
Why: independent review found shared submodule metadata risk, quoted header leakage, stale JSON receipt blindness and missing abandon coverage.

Evidence: SELF 92 governance regressions pass; the original review receipt and replay output are recorded in the task card.

Impact: preserves external component worktrees, handles both evidence formats and adds targeted failure-path coverage; no product behavior changes.

Refs: .task/feature-governance-reliability.md; .task/reviews/governance-reliability.json
Why: main advanced with merged-task-name and legacy evidence guards during this task.

Evidence: SELF 44 lifecycle regressions pass after resolving both hunks; independent review repairs are recorded in the task card.

Impact: retains both task-start protections and the stronger JSON/legacy receipt reader, without rewriting either branch history.

Refs: Dev PR #211 and #212; .task/feature-governance-reliability.md
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=fd442d933c051fe538b224e067c214c1976f6dd0; candidate=c1fdf0141ca4e833c5b391c1847ee53d953b1cf3.

Impact: task metadata only.

Refs: .task/feature-governance-reliability.md
Why: bind the reviewable governance repair to the synchronized candidate and related component PRs.

Evidence: tool-generated SELF make test and make build output plus independent repair REPLAY records in the task card.

Impact: task metadata only; platform protection and deployment remain owner-controlled.

Refs: .task/feature-governance-reliability.md
Why: bind the task validation checkpoint to the latest integration baseline.

Evidence: SELF recursive component checks; sync_base=fd442d933c051fe538b224e067c214c1976f6dd0; candidate=d96e4ae016def6ce4f93548a55e6b26de8924d37.

Impact: task metadata only.

Refs: .task/feature-governance-reliability.md
Why: the owner authorized conflict-free integration and safe worktree cleanup after verification.

Evidence: final fixed combination passes make test and make build; full outputs and review replay records are in the task card.

Impact: authorization and evidence metadata only; no source or component change.

Refs: .task/feature-governance-reliability.md
weichen added 1 commit 2026-10-05 13:34:24 +00:00
Derive CI checkout server from the runner-injected URL
ci / test (pull_request) Failing after 1s
a1fb67c569
Why: 加固 checkout 把 GITHUB_SERVER_URL 与硬编码常量严格比对,运行器注入值与公网拼写
不一致时合法检出被拒(PR #213 run 948/job 1333:Checkout server is outside the
reviewed allowlist),GATE 无法变绿。
Evidence: 本地同树 make test exit 0(REPLAY 行已入卡);修复后凭据仍只附着于
「平台注入基址 + 仓库白名单」URL,路径/固定 SHA/递归深度校验全部保留。
Impact: 仅 ci.yaml checkout 脚本一处;仓库白名单与 fail-closed 语义不变。
Refs: .task/feature-governance-reliability.md 授权记录(2026-10-05 安全收尾授权)。
weichen added 1 commit 2026-10-05 13:35:43 +00:00
weichen added 1 commit 2026-10-05 13:37:15 +00:00
Why: 运行器注入 GITHUB_SERVER_URL='http://172.17.0.1:3000'(docker 网关直连宿主 Gitea,
run 950 诊断实测);https 限定与硬编码常量比对都会拒绝合法检出,GATE 无法变绿。
Evidence: 校验收宽为 http(s)+netloc;凭据仍仅附着于注入基址+仓库白名单 URL,固定 SHA/
路径/递归深度 fail-closed 语义不变。
Impact: 仅 ci.yaml checkout 一处。
weichen added 1 commit 2026-10-05 13:40:16 +00:00
Record reviewer replay evidence for the CI fix round
ci / test (pull_request) Successful in 2m33s
a4e4f1cb69
weichen merged commit af7412a04e into main 2026-10-05 13:43:15 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weichen/Agent-System-Dev#213