Compare commits
9
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2880013697 | ||
|
|
7bdd0b5b4a | ||
|
|
4121998ed6 | ||
|
|
eb92553fec | ||
|
|
9a7399486e | ||
|
|
479f1757d6 | ||
|
|
4ae2d31545 | ||
|
|
55eb175cd5 | ||
|
|
f8629dee14 |
@@ -77,6 +77,9 @@ jobs:
|
||||
"fetch.recurseSubmodules": "false", "submodule.recurse": "false",
|
||||
"http.followRedirects": "false", "protocol.allow": "never",
|
||||
"protocol." + urlsplit(SERVER).scheme + ".allow": "always",
|
||||
# 嵌套 pins(RDM/KB 等)仍以权威 SSH 端点声明 URL:把它改写到同一受信
|
||||
# HTTPS 基址,才能复用既有的 URL 级 token 头而不依赖真实 SSH。
|
||||
# 本仓 .gitmodules 已是 HTTPS 形式,SSH 允许清单常量保持不变。
|
||||
}
|
||||
|
||||
|
||||
@@ -286,6 +289,9 @@ jobs:
|
||||
"fetch.recurseSubmodules": "false", "submodule.recurse": "false",
|
||||
"http.followRedirects": "false", "protocol.allow": "never",
|
||||
"protocol." + urlsplit(SERVER).scheme + ".allow": "always",
|
||||
# 嵌套 pins(RDM/KB 等)仍以权威 SSH 端点声明 URL:把它改写到同一受信
|
||||
# HTTPS 基址,才能复用既有的 URL 级 token 头而不依赖真实 SSH。
|
||||
# 本仓 .gitmodules 已是 HTTPS 形式,SSH 允许清单常量保持不变。
|
||||
}
|
||||
|
||||
|
||||
@@ -429,9 +435,10 @@ jobs:
|
||||
# https 基址后再取。只追加 pin 的三个 40 位 hex,不 source pin 文件。
|
||||
SERVER="$(printf '%s' "$GITHUB_SERVER_URL" | sed 's:/*$::')"
|
||||
scheme="${GITHUB_SERVER_URL%%://*}"
|
||||
# 嵌套 pins 的 SSH 端点有两代(旧 git-ssh.* 与迁移后的 gitea.*:52222);
|
||||
# 只映射旧端点会让嵌套克隆退回真实 SSH,CI 无 key 时必然 host key 失败。
|
||||
# 两个 insteadOf 同键多值,git 会依次匹配。
|
||||
# 嵌套 pins 的 SSH 端点有两代:旧 git-ssh.*:31411 与迁移后的 gitea.*:52222。
|
||||
# 两条 insteadOf 必须同时保留:RDM 自身的 pins 已迁到权威端点,而它钉住的
|
||||
# 基座/前端仓里仍有以旧端点声明的嵌套 pins,去掉任一条都会让那批 pins 退回
|
||||
# 真实 SSH,CI 无 key 时必然 host key 失败。等所有 .gitmodules 迁完后才能收敛。
|
||||
export GIT_CONFIG_COUNT=5
|
||||
export GIT_CONFIG_KEY_0="protocol.$scheme.allow"
|
||||
export GIT_CONFIG_VALUE_0="always"
|
||||
@@ -617,6 +624,9 @@ jobs:
|
||||
"fetch.recurseSubmodules": "false", "submodule.recurse": "false",
|
||||
"http.followRedirects": "false", "protocol.allow": "never",
|
||||
"protocol." + urlsplit(SERVER).scheme + ".allow": "always",
|
||||
# 嵌套 pins(RDM/KB 等)仍以权威 SSH 端点声明 URL:把它改写到同一受信
|
||||
# HTTPS 基址,才能复用既有的 URL 级 token 头而不依赖真实 SSH。
|
||||
# 本仓 .gitmodules 已是 HTTPS 形式,SSH 允许清单常量保持不变。
|
||||
}
|
||||
|
||||
|
||||
@@ -723,16 +733,17 @@ jobs:
|
||||
# https 基址后再取。
|
||||
SERVER="$(printf '%s' "$GITHUB_SERVER_URL" | sed 's:/*$::')"
|
||||
scheme="${GITHUB_SERVER_URL%%://*}"
|
||||
# 嵌套 pins 的 SSH 端点有两代(旧 git-ssh.* 与迁移后的 gitea.*:52222);
|
||||
# 只映射旧端点会让嵌套克隆退回真实 SSH,CI 无 key 时必然 host key 失败。
|
||||
# 两个 insteadOf 同键多值,git 会依次匹配。
|
||||
# 嵌套 pins 的 SSH 端点有两代:旧 git-ssh.*:31411 与迁移后的 gitea.*:52222。
|
||||
# 两条 insteadOf 必须同时保留:RDM 自身的 pins 已迁到权威端点,而它钉住的
|
||||
# 基座/前端仓里仍有以旧端点声明的嵌套 pins,去掉任一条都会让那批 pins 退回
|
||||
# 真实 SSH,CI 无 key 时必然 host key 失败。等所有 .gitmodules 迁完后才能收敛。
|
||||
export GIT_CONFIG_COUNT=5
|
||||
export GIT_CONFIG_KEY_0="protocol.$scheme.allow"
|
||||
export GIT_CONFIG_VALUE_0="always"
|
||||
export GIT_CONFIG_KEY_1="http.$SERVER/.extraheader"
|
||||
export GIT_CONFIG_VALUE_1="AUTHORIZATION: token $SUBMODULE_TOKEN"
|
||||
export GIT_CONFIG_KEY_2="url.$SERVER/weichen/.insteadOf"
|
||||
export GIT_CONFIG_VALUE_2="ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/"
|
||||
export GIT_CONFIG_VALUE_2="ssh://git@gitea.naitangbaobao.cn:52222/weichen/"
|
||||
export GIT_CONFIG_KEY_3="core.hooksPath"
|
||||
export GIT_CONFIG_VALUE_3="/dev/null"
|
||||
export GIT_CONFIG_KEY_4="url.$SERVER/weichen/.insteadOf"
|
||||
|
||||
@@ -1,166 +0,0 @@
|
||||
# feature/scripts-robustness-fixes 任务卡
|
||||
|
||||
任务主记录:<PR 链接,交付前填写>;状态:进行中;owner:weichen
|
||||
|
||||
## 基线与授权
|
||||
|
||||
- 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= d1ea338fe9932fddf21429d826ffe354817e8fde
|
||||
- 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-scripts-robustness-fixes(worktree);分支:feature/scripts-robustness-fixes
|
||||
- 分支类型:standalone;root_target:main;immediate_target:main;accepting_requirements:false
|
||||
- 需求分流:verdict=NEW;selected_initiative=无;requirement_sha256=8a1d5a7fcdd4f0e7da30b4886b871d626690cfc4d9989c8e0e4e0487615804fd;triage_receipt=/tmp/triage-scripts-1792766148.json;receipt_sha256=d1804f49128e964cdcf7d6967bf9dcea49dff102d3d5e86511e9e2d06045b38e
|
||||
|
||||
- 授权与交付终点:用户已批准启动 Dev 仓脚本健壮性两修。范围内连续推进:诊断、实施、验证、组合、Review、PR/CI/合入。未授权:组件仓改动、A4、部署。
|
||||
- 设计决定(2026-10-22,host):
|
||||
1. svc manifest 迁移间歇跳过:先复现(全量 discover vs 单模块对照),定位环境差异根因(python3 探测/MANIFEST_PY 解析/并发工作目录),修复为确定性(绝对路径锚定+失败可见化,禁止静默跳过——失败必须可见或重试成功)。
|
||||
2. 物化后 .gitmodules 改写:复现机制(新 worktree 物化 → 对比 .gitmodules),定位写回源(check-worktree.py materialize / git 行为 / 本地 URL 配置传播),修复为不再改写(或物化后自动还原),并加守卫测试。
|
||||
3. 两个修复均需回归测试证明(flake 复现用例或守卫用例)。
|
||||
- 交付模式:goal-first(目标、范围和交付终点一次确认;范围内连续推进)
|
||||
- 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md)
|
||||
- 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入)
|
||||
- 人工决策点:仅限目标/范围/验收变更、重大取舍、高后果操作或无法自动判定的业务验收
|
||||
- 当前阶段:需求拆解;当前增量:I1(待定义)
|
||||
- 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位)
|
||||
|
||||
## 目标与非目标
|
||||
|
||||
**目标**:svc manifest 迁移确定性(全量跑不再间歇跳过);物化后 .gitmodules 不再被改写(或自动还原+守卫测试)。
|
||||
|
||||
**非目标**:组件仓行为变更;A4;部署;svc settle 等待事件驱动化重构(另行评估)。
|
||||
|
||||
## 诊断结论(2026-10-22 晚,host)
|
||||
|
||||
1. **svc flake = 机器负载依赖**:失败时段机器 load average 66(27 用户共享机,并行会话重负载 + 残留 agent CLI);空闲后全量 governance 两次 553 测试全过(含 svc 23/23)。非脚本缺陷;修复候选:svc settle 等待改轮询+deadline(负载鲁棒性增强),或在低负载窗口跑治理套件。
|
||||
2. **.gitmodules 改写机制未复现**:实测 materialize/`submodule update --init --jobs 8` 均不改写(md5 不变);疑似并行会话共享检出操作所致。已还原 82+ 处;缓解=checkout 扫还原(已验证)。机制需上游排查。
|
||||
3. **agent 单元派发在负载 66 下不可行**(cursor 配额死、pi 输出截断、时序 flake)——本任务暂停派发,待负载回落。
|
||||
|
||||
## Agent 实施收据
|
||||
|
||||
路由与 fail-stop 规则见根目录 AGENT-EXECUTION.md 与 policy/delivery.md;每次尝试一行,原始日志留在源码外收据路径。
|
||||
|
||||
| 单元 ID | 预期范围 | 配置摘要 | 角色 | 候选顺序 | attempt | CLI/模型 | 终态 | transport | fallback | 源码外收据路径 |
|
||||
|---|---|---|---|---|---|---|---|---|---|---|
|
||||
| 待定义 | — | NOT_RUN | NOT_RUN | NOT_RUN | NOT_RUN | NOT_RUN | NOT_RUN | NOT_RUN | NOT_RUN | — |
|
||||
|
||||
## 关联方向与规划
|
||||
|
||||
- 适用状态:待核对(无适用规划时说明原因)
|
||||
- 主记录路径/版本:待核对(路径按仓库根目录定位,归档后不变;只引用唯一正文)
|
||||
- 对应里程碑:待核对
|
||||
|
||||
## 需求分析
|
||||
|
||||
| ID | 描述 | 项目符合度及依据 | 优先级 | 验收条件 | 依赖 | 结论 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| R1 | 待填写 | 待评估 | 待定 | 待定义 | 待确认 | 待评审 |
|
||||
|
||||
## 方案与计划
|
||||
|
||||
- 方案引用:待填写(含对象版本)
|
||||
- 实施计划引用:待填写(含增量与需求 ID)
|
||||
- 测试计划引用:待填写(含需求 ID 与验收条件)
|
||||
|
||||
## 阶段记录
|
||||
|
||||
| 阶段 | 对象版本 | 状态 | 决策/执行者 | 时间 | 依据 |
|
||||
|---|---|---|---|---|---|
|
||||
| 需求拆解 | 待定 | 待执行 | — | — | — |
|
||||
| 需求评估 | 待定 | 待执行 | — | — | — |
|
||||
| 需求表确认 | 待定 | 待执行 | — | — | — |
|
||||
| 方案设计 | 待定 | 待执行 | — | — | — |
|
||||
| 实施计划 | 待定 | 待执行 | — | — | — |
|
||||
| 实施与自检 | 待定 | 待执行 | — | — | — |
|
||||
| 正式测试与验收 | 待定 | 待执行 | — | — | — |
|
||||
| 代码 Review | 待定 | 待执行 | — | — | — |
|
||||
| 合入 | 待定 | 待执行 | — | — | — |
|
||||
| 合入核验与收口 | 待定 | 待执行 | — | — | — |
|
||||
|
||||
## 探索试验与迭代
|
||||
|
||||
| 增量/试验 | 假设 | 范围 | 判断和停止条件 | 授权/决策依据 | 结果 | 变更影响 | 需重审补测 |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| 待定义 | — | — | — | 待核对 | NOT_RUN | 待评估 | 待评估 |
|
||||
|
||||
## 同步记录
|
||||
|
||||
| 节点 | sync_base_sha | tested_head_sha | checked_at |
|
||||
|---|---|---|---|
|
||||
| 启动 | d1ea338fe9932fddf21429d826ffe354817e8fde | d1ea338fe9932fddf21429d826ffe354817e8fde | 2026-10-23T14:37:42Z |
|
||||
|
||||
## 证据(Evidence)
|
||||
|
||||
<!-- CMD="<命令>" make evidence 写入;手抄/转写输出视为无效证据(AGENTS.md 证据与验证门禁)。 -->
|
||||
| 时间(UTC) | 命令 | 被测HEAD | exit | 来源 | sha256(16) |
|
||||
|---|---|---|---|---|---|
|
||||
|
||||
## 交付调度
|
||||
|
||||
- 调度状态:未入队;调度记录:无
|
||||
- entry_id:无;attempt_id:无;窗口执行者:无
|
||||
- 固定候选:无(base/head、组件与相关配置引用实际尝试)
|
||||
- 调度依据:policy/delivery.md#合入调度
|
||||
- 固定后证据:源码外 RECEIPT;实际结果后按授权原样导入和闭合
|
||||
|
||||
## 结果与验证(完成后填写)
|
||||
|
||||
- 结果:
|
||||
- 验证:<结论摘要 PASS/FAIL/SKIP/NOT_RUN 逐项;逐条证据由 make evidence 写入上方证据表>
|
||||
- 影响与剩余项:
|
||||
|
||||
## 规划进展与下一步
|
||||
|
||||
- 本次推进/剩余:待核对(依据实际成果更新适用方案/规划)
|
||||
- 首选下一任务:待核对(无适用规划、已完成或受阻时如实说明,不虚构任务)
|
||||
- 推荐依据:待填写
|
||||
- 前置条件/待确认:待核对
|
||||
- 预期产物/验收条件:待定义
|
||||
- 重复任务核对:待核对(已有/在途任务、PR 与规划记录)
|
||||
- 启动授权:未授权(建议不自动启动新任务,仍须明确授权)
|
||||
|
||||
## 合入与清理
|
||||
|
||||
- Review 记录:NOT_RUN(审阅智能体/平台身份、base/head、结论、问题闭合及重放依据)
|
||||
- 冲突记录:NOT_RUN(最新目标同步、冲突处置、组合兼容核验及复审/补测)
|
||||
- CI 记录:NOT_RUN(当前 HEAD 完整 SHA、全部必需检查、运行链接、执行身份及 GATE 结果)
|
||||
- 合入记录:NOT_RUN(交付授权范围、PR、被核验 HEAD、合入 SHA、目标分支及内容核验)
|
||||
- 清理记录:NOT_RUN(授权依据、写者退出确认、worktree/分支/任务卡处置)
|
||||
|
||||
<!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. -->
|
||||
```json
|
||||
{
|
||||
"summary_schema": 1,
|
||||
"source": "SELF",
|
||||
"timestamp": "2026-10-23T14:36:07.805032+00:00",
|
||||
"command": "make precheck",
|
||||
"exit_code": 0,
|
||||
"cwd": "/home/weichen/projects/Agent-System-Dev",
|
||||
"before_head": "d1ea338fe9932fddf21429d826ffe354817e8fde",
|
||||
"after_head": "d1ea338fe9932fddf21429d826ffe354817e8fde",
|
||||
"branch": "main",
|
||||
"target_branch": "main",
|
||||
"target_head": "d1ea338fe9932fddf21429d826ffe354817e8fde",
|
||||
"root_target": "main",
|
||||
"immediate_target": "main",
|
||||
"before_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"after_tracked_diff_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"output_tail": [
|
||||
"make[1]: Entering directory '/home/weichen/projects/Agent-System-Dev'",
|
||||
"[repo] branch=main head=d1ea338fe9",
|
||||
"[remote] origin/main=d1ea338fe9 ahead=0 behind=0",
|
||||
"[tree] clean submodules_drift=0 uninit=0",
|
||||
"[worktrees] linked=10",
|
||||
"[recycle] merged un-recycled branches: chore/migrate-gitea-endpoints feature/exec-recovery-diagnostics-a2 fix/gitea-endpoint-facts tmp-fe-inspect",
|
||||
"[cards] 已合入未闭合任务卡:feature-audit-review-minors-cleanup.md feature-ecs-deploy-dev8788-and-kb.md——make task-close 回填归档(主检出运行)",
|
||||
"[initiatives] local cards (not authoritative): none",
|
||||
"[hooks] core.hooksPath=scripts/hooks(pre-commit/post-merge 实际接线)",
|
||||
"[facts] policy/facts.md 6 条事实均在有效期内",
|
||||
"[required-reading] core/baseline.md, workflows/delivery.md §1, policy/delivery.md",
|
||||
"[R0] d1ea338fe9(完整:d1ea338fe9932fddf21429d826ffe354817e8fde)",
|
||||
"[worktree] before-sync: recursive component checks passed",
|
||||
"[verdict] READY — 保留本次 precheck receipt 后建任务工作区:PRECHECK_RECEIPT=/tmp/task-precheck.json make task-start NAME=feature/your-branch",
|
||||
"make[1]: Leaving directory '/home/weichen/projects/Agent-System-Dev'"
|
||||
],
|
||||
"output_sha256": "7460323cc7f093d85d9b964d7fb7197080ebe1ff84e117ad869031991633cc3e",
|
||||
"receipt_sha256": "aae150e36af3cb529115df35e766063e5849329b55eda357da693bde2a000f9e",
|
||||
"receipt_path": "/home/weichen/.cache/agent-system-dev/evidence/aae150e36af3cb529115df35e766063e5849329b55eda357da693bde2a000f9e.json"
|
||||
}
|
||||
```
|
||||
@@ -3,7 +3,7 @@
|
||||
{
|
||||
"id": "rdm",
|
||||
"name": "研发记忆 RDM",
|
||||
"repo": "ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-RDM.git",
|
||||
"repo": "ssh://git@gitea.naitangbaobao.cn:52222/weichen/Agent-System-RDM.git",
|
||||
"repoEnv": "SVC_RDM_ORIGIN",
|
||||
"defaultRef": "origin/main",
|
||||
"goModule": "agent-system-rdm",
|
||||
|
||||
+1
-1
@@ -144,7 +144,7 @@ SRC_DIR="${SVC_SRC_DIR:-${XDG_CACHE_HOME:-$HOME/.cache}/agent-system-svc/src}"
|
||||
# 独立 RDM 源仓(下游组合仓 Agent-System-RDM 的干净克隆;SVC_RDM_SRC_DIR 覆盖路径,
|
||||
# SVC_RDM_ORIGIN 覆盖克隆来源)。rdm 源的解析/列举/物化全部基于它,语义与 SRC_DIR 一致。
|
||||
RDM_SRC_DIR="${SVC_RDM_SRC_DIR:-${XDG_CACHE_HOME:-$HOME/.cache}/agent-system-svc/rdm-src}"
|
||||
RDM_ORIGIN_DEFAULT="ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-RDM.git"
|
||||
RDM_ORIGIN_DEFAULT="ssh://git@gitea.naitangbaobao.cn:52222/weichen/Agent-System-RDM.git"
|
||||
|
||||
# 提示信息走 stderr:stdout 只留给数据(提交表/服务表/DSN),便于 $( ) 捕获组合。
|
||||
c_info() { [ "${CLI_QUIET:-0}" = 1 ] && return 0; printf '\033[1;34m[svc]\033[0m %s\n' "$*" >&2; }
|
||||
|
||||
+3
-3
@@ -813,7 +813,7 @@ card_merge_squash() { # $1=branch $2=ref → squash/rebase 落地没有 merge
|
||||
# 仅查最近 5 页(250 条):card_merge 的 merge 提交路径仍是主路径,此兜底面向新近任务卡。
|
||||
local token="${GITEA_TOKEN:-}" web_base url repo owner api payload pg found sha
|
||||
[ -n "$token" ] || return 1
|
||||
web_base="${TASK_CARD_WEB_BASE:-https://git-home.u1680832.nyat.app:30319}"
|
||||
web_base="${TASK_CARD_WEB_BASE:-https://gitea.naitangbaobao.cn}"
|
||||
url=$(git remote get-url origin 2>/dev/null) || return 1
|
||||
url="${url%.git}"
|
||||
repo=$(basename "$url"); owner=$(basename "$(dirname "$url")")
|
||||
@@ -951,7 +951,7 @@ cmd_close_self() {
|
||||
esac
|
||||
pr="$nums"
|
||||
fi
|
||||
web_base="${TASK_CARD_WEB_BASE:-https://git-home.u1680832.nyat.app:30319}"
|
||||
web_base="${TASK_CARD_WEB_BASE:-https://gitea.naitangbaobao.cn}"
|
||||
url=$(git remote get-url origin); url="${url%.git}"
|
||||
repo=$(basename "$url"); owner=$(basename "$(dirname "$url")")
|
||||
link="${web_base}/${owner}/${repo}/pulls/${pr}"
|
||||
@@ -981,7 +981,7 @@ cmd_close() {
|
||||
fetch_target
|
||||
# 默认值取远端通告的 Web 面(git push 输出的 PR 建议链接);可用 TASK_CARD_WEB_BASE 覆盖。
|
||||
# git-panel 前缀已失效(TLS 握手失败),默认值改为实测可用的 git-home(AGENTS.md 访问事实节)。
|
||||
local web_base="${TASK_CARD_WEB_BASE:-https://git-home.u1680832.nyat.app:30319}"
|
||||
local web_base="${TASK_CARD_WEB_BASE:-https://gitea.naitangbaobao.cn}"
|
||||
local url owner repo
|
||||
url=$(git remote get-url origin); url="${url%.git}"
|
||||
repo=$(basename "$url"); owner=$(basename "$(dirname "$url")")
|
||||
|
||||
@@ -29,7 +29,7 @@ import urllib.parse
|
||||
import urllib.request
|
||||
|
||||
SCHEMA = "agent-system/task-triage/v1"
|
||||
DEFAULT_API = "https://git-home.u1680832.nyat.app:30319/api/v1"
|
||||
DEFAULT_API = "https://gitea.naitangbaobao.cn/api/v1"
|
||||
DEFAULT_TARGET = "main"
|
||||
DEFAULT_MAX_AGE = 14400
|
||||
PAGE_LIMIT = 50
|
||||
|
||||
@@ -49,9 +49,7 @@ def ci_git_env():
|
||||
if not (CI_SERVER and CI_TOKEN):
|
||||
return {}
|
||||
scheme = CI_SERVER.split("://", 1)[0]
|
||||
# 嵌套 pins 的 SSH 端点有两代:旧 git-ssh.* 与迁移后的 gitea.*:52222。
|
||||
# 只映射旧端点会让 pins 取件退回真实 SSH,而 CI 运行器没有 key,必然
|
||||
# host key verification failed。同键多值,git 会依次匹配。
|
||||
# 子模块已改用权威 HTTPS 端点;这里只保留权威 SSH 端点的改写,供仍以 SSH 声明 pins 的仓库使用。
|
||||
return {
|
||||
"GIT_CONFIG_COUNT": "5",
|
||||
"GIT_CONFIG_KEY_0": "protocol.%s.allow" % scheme,
|
||||
|
||||
Reference in New Issue
Block a user