From fa96910d17e7544eb0ee4b3c94bba3c5fe097a06 Mon Sep 17 00:00:00 2001 From: agent-exec-transport Date: Thu, 22 Oct 2026 14:03:40 +0000 Subject: [PATCH] agent-exec transport 1865e8c45451294c493b6740822f7b05/501295b08736 --- ...6-10-22-gitea-endpoint-migration-review.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 docs/superpowers/reviews/2026-10-22-gitea-endpoint-migration-review.md diff --git a/docs/superpowers/reviews/2026-10-22-gitea-endpoint-migration-review.md b/docs/superpowers/reviews/2026-10-22-gitea-endpoint-migration-review.md new file mode 100644 index 00000000..89f1e91c --- /dev/null +++ b/docs/superpowers/reviews/2026-10-22-gitea-endpoint-migration-review.md @@ -0,0 +1,96 @@ +# 独立 Review:fix/gitea-endpoint-migration(第 2 轮) + +- 日期:2026-10-22;Review 会话:全新独立会话(本会话未参与实施) +- 对象:分支 `fix/gitea-endpoint-migration` HEAD `6cb6a276`,base `3d3474a731f9ef3ee1f41935e63bca3afb70db56` +- 实施 diff:`/tmp/gitea-mig-review2.diff`(已核对与 `git diff 3d3474a7..HEAD` 逐字节一致,唯一差异为本报告新文件与任务卡 `.task/fix-gitea-endpoint-migration.md`,均不在功能范围) +- 上轮(r1)唯一阻塞项:`plugins/registry.json` rdm 条目仍是旧 SSH 端点;本轮经 repair transport 修复,r1→r2 diff 增量恰为该文件一处 URL 替换,已核对。 + +## 总体判定 + +**REVIEW PASS(无阻塞项)。** + +五项核对点全部通过:旧端点功能性引用已清零(历史记录与刻意保留的 F4 负例除外);新端点两形态(web 无端口 / SSH 端口 52222)全仓 49 处书写一致;测试负例语义完整保留并实测通过;`policy/facts.md` 变更严格限于 F1—F3 行与 last_verified;diff 无秘密入仓。 + +## 分级清单 + +### 阻塞项 + +无。 + +### 非阻塞建议(不阻塞合入,仅记录) + +1. **历史文档中的旧 URL 仅为记录,防止误复用**:`docs/superpowers/plans/2026-10-16-development-governance-v2-master.md`(文末双钥匙命令段含 `API=https://git-home.u1680832.nyat.app:30319/api/v1`)、`docs/superpowers/plans/2026-10-17-guidelines-governance-adoption.md`、`docs/superpowers/specs/2026-10-20-fast-slow-o2-i{1,2}-review.md` 内含旧 git-home 链接。均为已 CLOSED/MERGED 的历史记录(PR/CI 当时事实),属本单元豁免类;且 AGENTS.md 已规定端点事实只以 `policy/facts.md` 为准。建议后续如有人重放这些命令段,以 facts.md 现行端点替换,勿照抄。 +2. **F4 存在已知漂移**:F4(旧 git-panel 端点 TLS 握手失败)last_verified 仍为 2026-10-14,任务卡已注记「F4 FAIL 已知漂移」。F4 刻意不动符合单元范围;漂移刷新属 facts 维护单元职责,与本迁移无耦合。 +3. **`.task/` 归档与 artifacts 内大量旧端点 URL**:均为任务历史回执/归档(豁免类),无需处理;列出仅为完整性确认。 + +## 核对点结果 + +### 1) 完整性——旧端点功能性引用清零 ✅ + +全仓扫描(排除 `.git/`、`.task/`)`git-ssh.u1680832` / `git-home.u1680832` 零残留;`git-panel.u1680832` 与裸 `u1680832` 仅剩以下刻意保留项: + +| 位置 | 性质 | 判定 | +|---|---|---| +| `policy/facts.md:11` | 退役端点政策禁令(「一律不得使用」) | 刻意保留,正确 | +| `policy/facts.md:21`(F4) | 旧端点 TLS 观察事实及探针命令 | 单元规定 F4 不动,正确 | +| `tests/test_facts_verify.py:372,377` | F4 探针负例(针对退役端点) | 与 F4 配套,正确 | +| `tests/test_ci_credentials.py:167` | 负例:无 scheme 的 metadata_url 必须被拒(实测 refused,0 请求) | 负例语义,正确 | +| `tests/test_task_triage.py:394`、`tests/test_ci_wait.py:118` | 合成 fixture(`git.example`/`.invalid`) | 非 real 端点,正确 | +| `docs/superpowers/{plans,specs}/*.md`(4 文件) | 历史 CLOSED/MERGED 记录 | 豁免类,见非阻塞 1 | + +此前未覆盖的文件类型已补查:全仓 JSON/TOML/YAML/ini(`policy/architecture.yaml`、`policy/architecture-baseline.json`、`plugins/**.json`、`examples/**.json`、`.zcode/config.json`、`docs/structure/cockpit-e2e.yaml`、`docker/`、`.templates/`、`Makefile`、`AGENT-EXECUTION.md`、`PROJECT.md`、`AGENTS.md`)均无旧端点引用;唯一含端点的 JSON 为 `plugins/registry.json`,已迁移。 + +### 2) 正确性——新端点格式一致 ✅ + +全仓 49 处 `gitea.naitangbaobao.cn` 全部落在两形态(`sort|uniq` 核对): + +- Web:`https://gitea.naitangbaobao.cn`(无端口),派生 `/api/v1`(task_triage DEFAULT_API、task.sh 两处 `${web_base}/api/v1`)、`/api/v1/user`(facts-verify ENDPOINT 及表头注释)、`/api/v1/version`(F1)、`/weichen/Agent-System-Dev/issues/518`(delivery 队列链接)。 +- SSH:`ssh://git@gitea.naitangbaobao.cn:52222/weichen/.git`——`.gitmodules` 全部 14 条 URL、`plugins/registry.json`(rdm,上轮阻塞项)、`scripts/svc.sh` RDM_ORIGIN_DEFAULT、`ci.yaml` 4 处 allowlist 前缀 + 2 处 insteadOf 改写前缀、`tests/test_ci_credentials.py`/`test_svc_realcombo.py` 期望值、facts.md F3。 + +无混写(无新域名带旧端口、无旧域名、无 web 误带 52222、无 SSH 缺 52222)。`ci.yaml` 的 `SERVER` 仍强制平台注入 http(s) URL,`GIT_CONFIG_VALUE_2` 以新 SSH 前缀做 insteadOf → `$SERVER/weichen/`,链路自洽。 + +### 3) 测试负例语义保留 ✅ + +`tests/test_facts_verify.py` `test_f2_rejects_unregistered_destination_before_reading_credentials` 的 bad_urls 逐项映射:http 明文、`evil.invalid`、错端口 `:30320`、显式默认端口 `:443`(替代旧「无端口」负例——`facts-verify.sh` 对 ENDPOINT 做整串比较,`:443` 同样被拒,语义等价)、URL 内凭据、`@evil.invalid` 重定向、`#frag`、`?next=`、`/users`、`/user/../admin`、尾随空格——全部保留,且仍断言「未登记目的地不发请求、不读凭据」。重定向(301/302/303/307/308)不跟随、不转发 Authorization 的断言保留。本地实测(stub 断网,离线): + +- `tests.test_facts_verify` 8/8 OK +- `tests.test_ci_credentials` 9/9 OK(含 `git-panel` 无 scheme 负例仍 refused) +- `tests.test_task_triage` 29/29 OK +- `tests.test_ci_wait` 11/11 OK +- `tests.test_svc_realcombo` 16 skipped(设计上需 `SVC_TEST_REAL=1`,离线 NOT_RUN,符合文件头条件) +- `bash -n` task.sh / facts-verify.sh / svc.sh 通过;`task_triage.py` 编译通过;`registry.json` JSON 合法 + +### 4) policy/facts.md 变更范围 ✅ + +`git diff base..HEAD -- policy/facts.md` 仅 3 行:F1、F2、F3 行(端点 URL + last_verified 2026-10-14→2026-10-22)。F4/F5/F6 行逐字未动,表前政策禁令段未动。F2 验证命令仍不含 curl/Authorization/.secrets(`test_registry_separates_retired_endpoint_policy_from_tls_observation` 实测通过,该测试直接解析现行 facts.md)。 + +### 5) 无秘密入仓 ✅ + +对 HEAD 全量 diff 的 `+` 行做秘密模式扫描(长随机串、`ghp_`/`AKIA`/`xox`、PEM 头、password/secret 赋值等):命中行全部为 git URL、SHA256、任务卡元数据与本地路径,无凭据值。测试 token 均为 `synthetic-*-not-a-real-secret`;`facts-verify.sh` 仍在运行时进程内读取 `~/.secrets/gitea`,仓内仅存路径指针。 + +## 复现命令 + +```bash +# diff 范围一致性(本报告对象与实际 HEAD diff 一致,除 .task 卡与本报告) +git diff 3d3474a731f9ef3ee1f41935e63bca3afb70db56..HEAD -- . ':(exclude).task' > /tmp/actual-head-diff.diff +diff /tmp/gitea-mig-review2.diff /tmp/actual-head-diff.diff && echo MATCH + +# 旧端点残留(应仅剩 facts.md 禁令/F4 与测试负例/fixture/历史文档) +grep -rn "u1680832" . | grep -v "^\./\.git/" | grep -v "^\./\.task/" | grep -v "docs/superpowers/" + +# 新端点一致性(应只出现两形态) +grep -rhn "gitea\.naitangbaobao\.cn" . | grep -v "^\./\.task/" \ + | grep -oE "[a-z]+://[^)\`'\" ,;;]*" | sort | uniq -c | sort -rn + +# facts.md 变更范围(应仅 F1—F3 三行) +git diff 3d3474a731f9ef3ee1f41935e63bca3afb70db56..HEAD -- policy/facts.md + +# 负例与单测(离线,stub 断网) +python3 -m unittest tests.test_facts_verify tests.test_ci_credentials \ + tests.test_task_triage tests.test_ci_wait tests.test_svc_realcombo +``` + +## 证据与边界 + +- 本报告所列测试输出为本地离线实测(SELF 级);端点可达性(F1—F3 的 curl/ls-remote)属网络验证,本单元 `network=false`,**NOT_RUN**,以实施侧任务卡记录的 F1/F2/F3 PASS(新端点实测)为准,合入前由必需 CI 复核。 +- 审阅者为全新独立会话,未参与实施;Review 仅产出本报告,未实施任何修复。