From 75a3aa519317e5c4a6e39af14fb5f429ee56d874 Mon Sep 17 00:00:00 2001 From: weichen Date: Thu, 22 Oct 2026 14:17:02 +0000 Subject: [PATCH 1/2] Update Gitea endpoints after server migration Why: the Gitea server moved to https://gitea.naitangbaobao.cn with SSH on port 52222; endpoint references must follow or superproject CI checkout refuses the old URLs. Evidence: host-verified API reach and SSH auth (Dev task card fix/gitea-endpoint-migration) Impact: configuration only; no runtime behavior change. Refs: Dev PR #706 --- .gitea/workflows/governance.yml | 2 +- .gitmodules | 4 +- AGENTS.md | 6 +- ...-collaboration-storage-and-distribution.md | 4 +- ...026-10-13-fast-slow-u3-quality-revision.md | 2 +- .../2026-10-13-iam-i1-permission-contract.md | 2 +- ...2026-10-14-dhf-template-generation-plan.md | 4 +- .../2026-10-14-merge-queue-manual-phase2.md | 8 +- docs/proposals/INDEX.md | 54 ++++----- ...6-10-07-planning-index-source-receipt.json | 2 +- .../2026-10-07-planning-index-source.json | 112 +++++++++--------- ...1-collaboration-storage-audit-receipt.json | 2 +- ...10-11-rdm-final-target-source-receipt.json | 2 +- ...26-10-11-rdm-two-trees-source-receipt.json | 2 +- docs/records/2026-10-14-merge-queue-trial.md | 16 +-- ...two-trees-stage2-gitea-token-01a13639.json | 2 +- ...o-trees-stage2-gitea-version-01a13639.json | 2 +- .../rdm-two-trees-stage2-evaluation-r1.md | 20 ++-- .../snapshot.json | 20 ++-- .../stage2-sources/overlap-snapshot.json | 20 ++-- .../stage2-sources/remote-snapshot.json | 92 +++++++------- .../stage4-sources.json | 60 +++++----- .../stage5-dependencies.json | 58 ++++----- ...batch6-tasks11-12-publication-review-r1.md | 2 +- .../2026-10-13-fast-slow-u2-u3-validation.md | 4 +- 25 files changed, 251 insertions(+), 251 deletions(-) diff --git a/.gitea/workflows/governance.yml b/.gitea/workflows/governance.yml index be8c736..0b1130f 100644 --- a/.gitea/workflows/governance.yml +++ b/.gitea/workflows/governance.yml @@ -31,7 +31,7 @@ jobs: parsed_server = urlsplit(SERVER) if parsed_server.scheme not in {"http", "https"} or not parsed_server.netloc: sys.exit("Checkout server must be the platform-injected http(s) URL") - SSH = "ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/" + SSH = "ssh://git@gitea.naitangbaobao.cn:52222/weichen/" # 审查过的白名单,独立于候选 .gitmodules:仅列出两个治理 gitlink。 REPOSITORIES = { "deps/development-guidelines": "Development-Guidelines", diff --git a/.gitmodules b/.gitmodules index 49e221b..bdc7eff 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "deps/development-guidelines"] path = deps/development-guidelines - url = ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Development-Guidelines.git + url = ssh://git@gitea.naitangbaobao.cn:52222/weichen/Development-Guidelines.git [submodule "deps/development-manager"] path = deps/development-manager - url = ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Development-Manager.git + url = ssh://git@gitea.naitangbaobao.cn:52222/weichen/Development-Manager.git diff --git a/AGENTS.md b/AGENTS.md index 763b0ae..1912ab4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -23,9 +23,9 @@ 历史文档与旧链接里的 `git-panel.u1680832.nyat.app:30319` 已失效(TLS 握手失败), 见到一律按过期处理,不要再试。当前权威通道: -- **Web / API(HTTPS)**:`https://git-home.u1680832.nyat.app:30319`(Gitea 1.27.3, +- **Web / API(HTTPS)**:`https://gitea.naitangbaobao.cn`(Gitea 1.27.3, API 前缀 `/api/v1`;偶发 broken pipe / 超时,重试即可)。 -- **Git over SSH**:`ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/.git` +- **Git over SSH**:`ssh://git@gitea.naitangbaobao.cn:52222/weichen/.git` (各仓 origin 与 gitlink 均为此格式)。 - **API token**:`~/.secrets/gitea`,两行键值 `URL_PREFIX=…` 与 `ACCESS_TOKEN=<40 位 hex>`;取值 `grep ACCESS_TOKEN ~/.secrets/gitea | cut -d= -f2-`, @@ -33,7 +33,7 @@ (baseline 硬边界 2:只记录来源、字段与可用状态)。 - **SSH key**:`~/.ssh/home_gitea`(ED25519,公钥指纹 `SHA256:GYXaOXIMeloQ1fKSfdJ/ndgPQzs/Ix7Hk62ekfkfQ20`,Gitea 侧密钥名 GMKtec); - `~/.ssh/config` 已有 `git-ssh.u1680832.nyat.app` 主机条目,克隆/推送直接可用。 + `~/.ssh/config` 已有 `gitea.naitangbaobao.cn(端口 52222)` 主机条目,克隆/推送直接可用。 ## Agent 执行与新项目准入(强制) diff --git a/docs/proposals/2026-10-11-collaboration-storage-and-distribution.md b/docs/proposals/2026-10-11-collaboration-storage-and-distribution.md index 7848b34..1894272 100644 --- a/docs/proposals/2026-10-11-collaboration-storage-and-distribution.md +++ b/docs/proposals/2026-10-11-collaboration-storage-and-distribution.md @@ -8,7 +8,7 @@ product_contract_source: ce-plan-bootstrap # 多人协作存储与分布式演进方案 - Plan -修订:r2.3;确认状态:**已批准(2026-10-11 用户指示「按方案开始改造」)**;推进状态:U1–U7 **代码与测试已合入**(Backend [#164](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/164);Dev [#410](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/410)/[#439](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/439)/[#442](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/442);闭卡 [#424](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/424) 等)。正确性 A1–A7 与 B1 已绿(CI/SELF)。容量合同 B2/B3/B5 contract 与双实例 C2 **本机 SELF 窗口已跑通**(见[容量报告](../records/2026-10-12-u7-capacity-window-report.md))。2026-10-12 用户决定不做容量重放;同日 B6 pgbench、C4 断连、C5 库恢复已有本机 SELF(见[运维演练报告](../records/2026-10-12-u7-ops-drill-report.md))。2026-10-13 未配置对象存储时的上传 panic 已修,C5 工件恢复 K4 重测为 SELF 通过。**SELF≠GATE/REPLAY**,双主机 C3 未做——**仍不放行第二实例承接写请求**。 +修订:r2.3;确认状态:**已批准(2026-10-11 用户指示「按方案开始改造」)**;推进状态:U1–U7 **代码与测试已合入**(Backend [#164](https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/164);Dev [#410](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/410)/[#439](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/439)/[#442](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/442);闭卡 [#424](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/424) 等)。正确性 A1–A7 与 B1 已绿(CI/SELF)。容量合同 B2/B3/B5 contract 与双实例 C2 **本机 SELF 窗口已跑通**(见[容量报告](../records/2026-10-12-u7-capacity-window-report.md))。2026-10-12 用户决定不做容量重放;同日 B6 pgbench、C4 断连、C5 库恢复已有本机 SELF(见[运维演练报告](../records/2026-10-12-u7-ops-drill-report.md))。2026-10-13 未配置对象存储时的上传 panic 已修,C5 工件恢复 K4 重测为 SELF 通过。**SELF≠GATE/REPLAY**,双主机 C3 未做——**仍不放行第二实例承接写请求**。 需求来源:2026-10-11 用户要求完善 SQLite、PostgreSQL/pgvector、Redis 分工;随后确认“10–100 人,多人多项目多会话并行,未来支持多服务分布式”。 需求负责人:weichen;方案编制:Codex;实施及运维负责人:待指定。更新时间:2026-10-13(Asia/Shanghai)。 关联任务:方案与 U1–U7 实施卡已归档;容量收尾见 Dev `.task/feature-u7-capacity-wrap-measure.md`。放行检查单:Dev `docs/release-multi-instance.md`。 @@ -45,7 +45,7 @@ product_contract_source: ce-plan-bootstrap | 独立 Squad | 独立 CLI 使用 `adapters/sqlite/runstore.go` 的 `orchestration.db`;这不是 Backend 实际接线 | 不把迁移该 SQLite 文件当作 Backend 分布式改造完成 | | 验证 | PG/Redis 集成由 `AGENT_PG_TEST_DSN`/`AGENT_REDIS_TEST_ADDR` 控制;当前 CI YAML 没有显式准备这两种服务 | 缺变量会跳过关键测试;CI 通过不能自动证明真 PG/Redis 或双进程链路通过 | -已有规划衔接:Q1 已记录 Store 收敛但仍留 platform→squad 队列桥接等余项;N3 原案与归档卡的 JournalOnly 落地不同,应以当前接线确定权威。共享权限沿用 EXT-8 授权适配器与 RDM 的成员/角色职责,不新建第二套成员模型。历史报告用于定位,不能替代当前验收。远端调查发现 Backend [#135](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/135) 正在增加 S0 工作区 overlay/frozen base/CAS apply;U5 必须复用并核对其契约,不能另造冲突的工作区实现。该 PR 尚未作为本案已合入依赖。其他被查仓当时未返回 open PR,详见收据;实施启动时重新核对。 +已有规划衔接:Q1 已记录 Store 收敛但仍留 platform→squad 队列桥接等余项;N3 原案与归档卡的 JournalOnly 落地不同,应以当前接线确定权威。共享权限沿用 EXT-8 授权适配器与 RDM 的成员/角色职责,不新建第二套成员模型。历史报告用于定位,不能替代当前验收。远端调查发现 Backend [#135](https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/135) 正在增加 S0 工作区 overlay/frozen base/CAS apply;U5 必须复用并核对其契约,不能另造冲突的工作区实现。该 PR 尚未作为本案已合入依赖。其他被查仓当时未返回 open PR,详见收据;实施启动时重新核对。 ## 3. 需求与可判定结果 diff --git a/docs/proposals/2026-10-13-fast-slow-u3-quality-revision.md b/docs/proposals/2026-10-13-fast-slow-u3-quality-revision.md index 4b1051b..14df628 100644 --- a/docs/proposals/2026-10-13-fast-slow-u3-quality-revision.md +++ b/docs/proposals/2026-10-13-fast-slow-u3-quality-revision.md @@ -42,4 +42,4 @@ 零付费门禁:来源映射与前缀等价测试;“需求规定50万、会议审批未完成”的错误批准候选先 RED 后 GREEN,明确批准原文与否定/待确认表达不误拒;预算假 provider 的两阶段加最终、临界额度与失败保持;UI 现有阅读、窄屏、焦点、设计守护及实际 HTTP 浏览器回归;Backend SQLite/真实 PostgreSQL 与 Dev 组合测试;独立代码审阅和精确组件 SHA。旧样本可用于离线回归,**不能当成新版真实模型前后对照**。 -真实模型出口仍用同一合成 A01 及正常材料整理路径,至少两个真正有用、结束前可感知的不同阶段成果,逐项数字/审批/意见/引文正确,并有真实最终正文和完整 Usage;同时遵守任何检查点拒绝后停止的独立边界。行为面改动依 [Dev 交付政策](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/src/branch/feature/fast-slow-u2-u3-plan/policy/delivery.md)须在固定新候选上做任务级真实模型前后对照。新的付费样本、run 数、token 目标及停止条件要在候选代码和零付费审阅准备好后另行明确批准;未获批准标 `NOT_RUN`,全部 PR 保持草稿,不合入、不部署。 +真实模型出口仍用同一合成 A01 及正常材料整理路径,至少两个真正有用、结束前可感知的不同阶段成果,逐项数字/审批/意见/引文正确,并有真实最终正文和完整 Usage;同时遵守任何检查点拒绝后停止的独立边界。行为面改动依 [Dev 交付政策](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/src/branch/feature/fast-slow-u2-u3-plan/policy/delivery.md)须在固定新候选上做任务级真实模型前后对照。新的付费样本、run 数、token 目标及停止条件要在候选代码和零付费审阅准备好后另行明确批准;未获批准标 `NOT_RUN`,全部 PR 保持草稿,不合入、不部署。 diff --git a/docs/proposals/2026-10-13-iam-i1-permission-contract.md b/docs/proposals/2026-10-13-iam-i1-permission-contract.md index 4ac6578..da23e08 100644 --- a/docs/proposals/2026-10-13-iam-i1-permission-contract.md +++ b/docs/proposals/2026-10-13-iam-i1-permission-contract.md @@ -182,7 +182,7 @@ U1 只检查文档差异、链接、动作与 scope 一致性、R1–R20 追溯 ## 8. I1 宿主改名投影的已批准修订(2026-10-13) -用户已批准[委任改名契约修订与修复计划 r1](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/4ee4eb99a95460d6660f05a67181357b67e2e956/docs/proposals/2026-10-13-iam-i1-host-projection-amendment.md),批准对象原文摘要为 `3eee5714cce974ce13229b3e184bc3aa763a5e0819fdf7dcf088dafe68b1ed2a`。正文维护在 RDM 一处;批准状态与实际实现、测试、Review、CI 和合入分开记录。 +用户已批准[委任改名契约修订与修复计划 r1](https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/4ee4eb99a95460d6660f05a67181357b67e2e956/docs/proposals/2026-10-13-iam-i1-host-projection-amendment.md),批准对象原文摘要为 `3eee5714cce974ce13229b3e184bc3aa763a5e0819fdf7dcf088dafe68b1ed2a`。正文维护在 RDM 一处;批准状态与实际实现、测试、Review、CI 和合入分开记录。 合法项目 `project.settings` 可以委任改名;现有 `ProjectHost` 的管理修改保持 owner-only。RDM 仅对这一动作建立受信的单目标投影适配:先以实际认证 actor 判定当前项目设置权及状态,再核对域/宿主绑定/物理项目的完整身份,只用受信创建者的 scoped Host 执行该 hostID 的改名。不借创建者身份重新授权,不把投影句柄返回或传入其他业务动作;无需额外 `doc.read`,私人读取和 Native work 不扩权。 diff --git a/docs/proposals/2026-10-14-dhf-template-generation-plan.md b/docs/proposals/2026-10-14-dhf-template-generation-plan.md index e21c7a0..b86d237 100644 --- a/docs/proposals/2026-10-14-dhf-template-generation-plan.md +++ b/docs/proposals/2026-10-14-dhf-template-generation-plan.md @@ -16,8 +16,8 @@ execution: code - owner 已批准 r0.1 的需求、方案和实施计划并授权 U1–U6 按阶段推进,另批准 E1-R1 隔离追加试验。U1 当前增量已走完阶段 6–10:阶段 6/7 获 owner 人工结论,独立 Review 闭合整改,最终 HEAD 的 GATE 与独立重放核验记录在案,三份交付 PR 均已合入。 - RDM 已封装 44 个逻辑原件,owner 分别接受项目建议书、F01、F02、DI 四份确切四哈希包(内容与版式接受,正式发布授权仍未给出);全部 44 项仍 `needs-review`,正式发布数 0。E1/E1-R1 使 14 DOC 均有转换候选,但逐项 Word 保真 **NOT_PASSED**;其余 40 项待包级裁定。F01/F02 的正式类型/存量字典升级及 U2–U6 真实产品流程仍未完成。 -- U1 当前增量的终态以归档任务卡为准:Dev 仓 `.task/archive/feature-dhf-template-pipeline-plan.md`(随 Dev #542 归档合入)。合入记录:[Documents #102](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/102) merge `9062445db808`、[RDM #365](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/365) merge `57d2214feb0a`、[Dev #540](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/540) merge `11aa76a3bc1c`,三个 main 树各自与受测 head 一致。U1 剩余 40 项包级裁定、14 DOC 保真对照、类型合同与 U2–U6 按本方案顺序继续;此前 WIP/待整改表述与旧 GATE 不再作为放行依据。 -- **2026-10-14 收口(本轮)**:批量 1–5 包级裁定获 owner「全部按推荐」批复并落档(RDM `docs/records/dhf/package-review-decision-2026-10-14.md`);其余 DOC 11 份(#377)与 DOCX 17 份(#381)四哈希候选包合入,44/44 具备候选包;owner 同轮授权 catalog 翻转,#383 将 44 项全部置 `published`+confirmed+绑定四哈希+issues 全清。U5 交付命令接线与实例播种随 #385 落地,真实产品二进制全链路试点 PASS;U6 逐项验收矩阵随 #387 完成——44/44 入账=41 PASS+2 EXPECTED_BLOCKED(F01/F02 字典门禁,owner 裁定暂缓)+1 EXPECTED_LIMITED(无槽位确认报告,空填充 fail-closed 拒绝实测),0 FAIL;过程中修复 F05/F06 封面双层嵌套缺陷并补登记 11 个批量裁定 docType。卡片 #379/#382/#384/#386/#388/#390/#392 全部归档,RDM main `c5ea0f5`。交接文档 [u6-replay-handoff.md](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/branch/main/docs/records/dhf/u6-replay-handoff.md) 固化 owner 侧三项动作:①部署发布包+三用户真实试点(回传导出 Word SHA256 与审签元数据);②独立审阅者以一键驱动 `scripts/dhf-u6-replay.sh` 完成 R1–R4 重放并签署(作者 SELF 试运行全绿,审阅者重跑方为 REPLAY);③提供带附件/页眉页脚的真实原件路径以启动 U4。独立 REPLAY 与真实环境试点完成前,本方案 DoD 的「试点交付/全量交付」两项维持 owner 阻塞态。 +- U1 当前增量的终态以归档任务卡为准:Dev 仓 `.task/archive/feature-dhf-template-pipeline-plan.md`(随 Dev #542 归档合入)。合入记录:[Documents #102](https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/102) merge `9062445db808`、[RDM #365](https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/365) merge `57d2214feb0a`、[Dev #540](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/540) merge `11aa76a3bc1c`,三个 main 树各自与受测 head 一致。U1 剩余 40 项包级裁定、14 DOC 保真对照、类型合同与 U2–U6 按本方案顺序继续;此前 WIP/待整改表述与旧 GATE 不再作为放行依据。 +- **2026-10-14 收口(本轮)**:批量 1–5 包级裁定获 owner「全部按推荐」批复并落档(RDM `docs/records/dhf/package-review-decision-2026-10-14.md`);其余 DOC 11 份(#377)与 DOCX 17 份(#381)四哈希候选包合入,44/44 具备候选包;owner 同轮授权 catalog 翻转,#383 将 44 项全部置 `published`+confirmed+绑定四哈希+issues 全清。U5 交付命令接线与实例播种随 #385 落地,真实产品二进制全链路试点 PASS;U6 逐项验收矩阵随 #387 完成——44/44 入账=41 PASS+2 EXPECTED_BLOCKED(F01/F02 字典门禁,owner 裁定暂缓)+1 EXPECTED_LIMITED(无槽位确认报告,空填充 fail-closed 拒绝实测),0 FAIL;过程中修复 F05/F06 封面双层嵌套缺陷并补登记 11 个批量裁定 docType。卡片 #379/#382/#384/#386/#388/#390/#392 全部归档,RDM main `c5ea0f5`。交接文档 [u6-replay-handoff.md](https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/branch/main/docs/records/dhf/u6-replay-handoff.md) 固化 owner 侧三项动作:①部署发布包+三用户真实试点(回传导出 Word SHA256 与审签元数据);②独立审阅者以一键驱动 `scripts/dhf-u6-replay.sh` 完成 R1–R4 重放并签署(作者 SELF 试运行全绿,审阅者重跑方为 REPLAY);③提供带附件/页眉页脚的真实原件路径以启动 U4。独立 REPLAY 与真实环境试点完成前,本方案 DoD 的「试点交付/全量交付」两项维持 owner 阻塞态。 修订 r0.1;需求负责人 weichen;方案编制 Codex;各仓实施负责人待立项指定。 本文件是 DHF 接入专项的评审草案,授权终点为源码/资产调查、方案和计划文档、记忆归档。 diff --git a/docs/proposals/2026-10-14-merge-queue-manual-phase2.md b/docs/proposals/2026-10-14-merge-queue-manual-phase2.md index b899387..b5847cb 100644 --- a/docs/proposals/2026-10-14-merge-queue-manual-phase2.md +++ b/docs/proposals/2026-10-14-merge-queue-manual-phase2.md @@ -2,15 +2,15 @@ 状态:**阶段 4 方案设计与[阶段 5 实施计划](2026-10-14-merge-queue-manual-phase2-implementation-plan.md)均已通过;阶段 6 实施待评审**。2026-10-14,负责人 weichen 在本任务会话中对 Documents 草稿 PR #104 的规范稿 `aa4d372f01d0473928c570aa69c09ca771f2de45` 明确回复“通过阶段 4”,随后对 PR #105 的计划稿 `28c4ceb17315e1bb06f8e39c8407eb525effb8fe` 回复“通过阶段 5”,选择由当前智能体实施。这些批准不等于启用第二轮窗口或接管其他任务。执行协调者须在每个窗口明确登记。本文只设计 Dev 仓 `refs/heads/main` 的下一轮人工调度,不启用自动队列。 -主记录:[Dev 调度 Issue #518](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/issues/518);既有规则:[Development-Guidelines 固定版合入调度](https://git-home.u1680832.nyat.app:30319/weichen/Development-Guidelines/src/commit/2f5b19872be2a4597838a4131ad75d1be089ee5e/standards/merge-queue.md)、[Dev 项目细化](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/src/branch/main/policy/merge-queue.md);首轮结果:[三任务试行报告](../records/2026-10-14-merge-queue-trial.md)。本稿为下一轮范围与验收设计;动态队列状态只维护在 #518,不复制第二份任务进度表。 +主记录:[Dev 调度 Issue #518](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/issues/518);既有规则:[Development-Guidelines 固定版合入调度](https://gitea.naitangbaobao.cn/weichen/Development-Guidelines/src/commit/2f5b19872be2a4597838a4131ad75d1be089ee5e/standards/merge-queue.md)、[Dev 项目细化](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/src/branch/main/policy/merge-queue.md);首轮结果:[三任务试行报告](../records/2026-10-14-merge-queue-trial.md)。本稿为下一轮范围与验收设计;动态队列状态只维护在 #518,不复制第二份任务进度表。 ## 1. 评审结论与问题 首轮 #489、#488、#486 在同一协调者下顺序合入,每个真实任务只有一次最终 PR CI,三项各自合入后的 main CI 另计;没有因首轮正常顺序合入废弃的最终 CI。首轮报告将 MQ1、MQ5–MQ7 的未覆盖部分及自动原子领取、旧执行者拒绝列为部分满足或 `NOT_RUN`,不得据此宣布全仓自动约束已就位。 -2026-10-14 22:13(Asia/Shanghai)对 #518 当前正文/评论和 Dev PR #539–#548 的只读 API 对照([SELF 观察快照](../records/2026-10-14-manual-phase2-source-audit.json),原始本机文件 `/tmp/mq-manual-expansion-audit-20261014.json`)显示:这十个 PR 均已合入;[#540](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/540)、[#542](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/542) 有窗口领取与释放记录;#539 只有合入后的事实记录;其余七个在当前 #518 正文与所返回的评论中找不到对应 PR 的窗口记录。这是**记录覆盖缺口**,不等于断言这些合入未经其他人工协调。它使“所有 Dev main 写入者都受同一 manual 窗口控制”的结论无法成立。 +2026-10-14 22:13(Asia/Shanghai)对 #518 当前正文/评论和 Dev PR #539–#548 的只读 API 对照([SELF 观察快照](../records/2026-10-14-manual-phase2-source-audit.json),原始本机文件 `/tmp/mq-manual-expansion-audit-20261014.json`)显示:这十个 PR 均已合入;[#540](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/540)、[#542](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/542) 有窗口领取与释放记录;#539 只有合入后的事实记录;其余七个在当前 #518 正文与所返回的评论中找不到对应 PR 的窗口记录。这是**记录覆盖缺口**,不等于断言这些合入未经其他人工协调。它使“所有 Dev main 写入者都受同一 manual 窗口控制”的结论无法成立。 -[#537](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/537) 曾取得旧候选绿色 GATE,但 Stage 8 审阅判为 `NOT READY`,窗口释放,后由用户取消且 PR 未合入;该例证明 CI 与人工阶段结论须分别核验。[#542](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/542) 的归档文字变化使旧候选作废,run 3100 不能放行新 head,run 3107 才属于实际合入对象。两者是应保留的正常失败/恢复事实,不计为“因正常排队 main 移动而浪费的 CI”。 +[#537](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/537) 曾取得旧候选绿色 GATE,但 Stage 8 审阅判为 `NOT READY`,窗口释放,后由用户取消且 PR 未合入;该例证明 CI 与人工阶段结论须分别核验。[#542](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/542) 的归档文字变化使旧候选作废,run 3100 不能放行新 head,run 3107 才属于实际合入对象。两者是应保留的正常失败/恢复事实,不计为“因正常排队 main 移动而浪费的 CI”。 目前 Dev 开放 PR 只有 #482 与 #512:#482 非草稿但落后 main、平台回读不可合入;#512 为草稿。两者的既有绿色状态均属于旧对象,且未取得本轮写者接管确认。因此**当前没有可直接领取的第二轮任务**,不得为凑满数量生成生产 PR、自动同步它们或把队列扩围理解为接管授权。 @@ -20,7 +20,7 @@ **目标:**在保留人工阶段评审和现有平台准入的前提下,将首轮单一协调者的经验扩展为可供多个已授权任务 owner 依次使用的 **manual** 窗口;在候选固定后减少因正常排队合入而造成的无效同步和完整 CI;准确统计没有节省的成本与退出案例。 -**范围:**仅 Dev 仓库 ID=29、托管实例 `git-home.u1680832.nyat.app:30319` 的 `refs/heads/main`。普通 PR、任务卡闭合、紧急和机器人目标写入均须出现在同一调度记录;不同组件仓按各自目标协调。候选任务原卡仍是需求、授权、阶段和证据的主记录。第二轮以随后实际就绪的三个已授权真实任务为观察样本,闭卡 PR 单列成本与窗口,不充作三个业务任务。 +**范围:**仅 Dev 仓库 ID=29、托管实例 `gitea.naitangbaobao.cn` 的 `refs/heads/main`。普通 PR、任务卡闭合、紧急和机器人目标写入均须出现在同一调度记录;不同组件仓按各自目标协调。候选任务原卡仍是需求、授权、阶段和证据的主记录。第二轮以随后实际就绪的三个已授权真实任务为观察样本,闭卡 PR 单列成本与窗口,不充作三个业务任务。 **非目标:**自动优先级、合并列车、批量/预测合并、复制旧 CI 状态、降低必需检查、调整分支保护、发布/部署、代替其他任务 owner 编写业务代码。#482、#512 和已取消的 #537 不因本设计自动变为就绪或重新授权。 diff --git a/docs/proposals/INDEX.md b/docs/proposals/INDEX.md index baa5318..16654a1 100644 --- a/docs/proposals/INDEX.md +++ b/docs/proposals/INDEX.md @@ -103,28 +103,28 @@ Dev 链接均指向对应任务 PR,可从其任务卡继续追溯组件 PR; |---|---|---|---| | [系统骨架](2026-09-29-system-skeleton-design-and-plan.md) | 历史规划起点;P0–P5、D1–D16;后续有专题局部修订 | 待审 r4;决策勾选仍空 | [历史 P0–P5 实施记录](../records/2026-09-29-implementation.md)可定位阶段和提交;本轮未建立完整独立批准/验收链,不把记录勾选当当前验收 | | [双档存储与多租户](2026-09-30-dual-tier-storage-and-multitenancy.md) | 明确局部修订骨架:多租户/RAG 前移,SQLite 默认、PG 可选;D17–D24 | accepted,页首称实施完成 | [四阶段实施记录](../records/2026-09-30-dual-tier-implementation.md)及[历史测试报告](../reports/2026-09-30-dual-tier-test-report.md);本轮未据此宣称当前多租户/RAG 已验收 | -| [启动配置面](2026-09-30-configuration-surface.md) | 配置管道、实例隔离;配置专题 | 已批准(随实现交付) | Dev [#12](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/12) 已合入 | -| [跨会话读取](2026-09-30-cross-session-reading.md) | 同项目 transcript 按需读取、权限和入口 | 已批准(随实现交付) | Dev [#67](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/67) 已合入 | -| [交互底座](2026-09-30-ui-inbox-command-workspace.md) | T0–T5:基础、卡片/命令、收件箱、命令总线、工作区、体验收尾 | 已批准总体方案与 T0 计划 | Dev #14/#15/#19/#21/#23/[#25](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/25) 已合入;各 PR 见快照 | -| [UI 重构与认证](2026-09-30-ui-redesign-and-auth.md) | 交互底座后的 R1–R4 与补充修订 | accepted(方向及 R2 范围);页首管理员发放制覆盖旧注册方案 | Dev #30/#37/#43/#53/#61/[#71](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/71) 已合入;R3 与旧正文差异见下表 | -| [卡流与过程分离](2026-09-30-cardflow-and-process-split.md) | CF0–CF2;D39–D43 | 已批准(原文记录用户五项裁定) | Dev [#79](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/79)、[#90](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/90) 已合入 | -| [流式卡片、工件统一与项目收件箱](2026-09-30-card-stream-artifact-unify-project-inbox.md) | CF-S → CF-A → CF3;D44–D52;承接卡流案 | 已批准(声明) | Dev [#100](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/100)、[#103](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/103)、[#105](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/105) 已合入;保留后台 producer 等边界 | -| [文件预览与保留能力](2026-09-30-file-preview-and-reserved-capabilities.md) | 工件管理后续;预览基座、Office、URL、fs | 已裁定(§5);实施任务已命名 | Dev [#77](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/77)、[#94](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/94) 已合入;PPTX 与右栏口径待对齐 | -| [基座路线图](2026-10-01-base-extension-roadmap.md) | 基座/下游边界总记录;显式引用 harness 与栈总案 | 实施中 | Dev [#132](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/132) 已合入;不能据此推断 tag、npm 或下游验收完成 | +| [启动配置面](2026-09-30-configuration-surface.md) | 配置管道、实例隔离;配置专题 | 已批准(随实现交付) | Dev [#12](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/12) 已合入 | +| [跨会话读取](2026-09-30-cross-session-reading.md) | 同项目 transcript 按需读取、权限和入口 | 已批准(随实现交付) | Dev [#67](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/67) 已合入 | +| [交互底座](2026-09-30-ui-inbox-command-workspace.md) | T0–T5:基础、卡片/命令、收件箱、命令总线、工作区、体验收尾 | 已批准总体方案与 T0 计划 | Dev #14/#15/#19/#21/#23/[#25](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/25) 已合入;各 PR 见快照 | +| [UI 重构与认证](2026-09-30-ui-redesign-and-auth.md) | 交互底座后的 R1–R4 与补充修订 | accepted(方向及 R2 范围);页首管理员发放制覆盖旧注册方案 | Dev #30/#37/#43/#53/#61/[#71](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/71) 已合入;R3 与旧正文差异见下表 | +| [卡流与过程分离](2026-09-30-cardflow-and-process-split.md) | CF0–CF2;D39–D43 | 已批准(原文记录用户五项裁定) | Dev [#79](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/79)、[#90](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/90) 已合入 | +| [流式卡片、工件统一与项目收件箱](2026-09-30-card-stream-artifact-unify-project-inbox.md) | CF-S → CF-A → CF3;D44–D52;承接卡流案 | 已批准(声明) | Dev [#100](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/100)、[#103](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/103)、[#105](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/105) 已合入;保留后台 producer 等边界 | +| [文件预览与保留能力](2026-09-30-file-preview-and-reserved-capabilities.md) | 工件管理后续;预览基座、Office、URL、fs | 已裁定(§5);实施任务已命名 | Dev [#77](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/77)、[#94](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/94) 已合入;PPTX 与右栏口径待对齐 | +| [基座路线图](2026-10-01-base-extension-roadmap.md) | 基座/下游边界总记录;显式引用 harness 与栈总案 | 实施中 | Dev [#132](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/132) 已合入;不能据此推断 tag、npm 或下游验收完成 | | [插件契约 v2](2026-10-01-plugin-contract-v2.md) | 路线图配套;声明、进程内、sidecar、前端 ESM 与生命周期 | 实施中 | 与路线图同任务、Dev #132;四种形态的当前运行状态未重验 | | [扩展兼容规则](2026-10-01-extension-compat-policy.md) | 路线图配套;兼容窗口、快照、版本发布与申请流程 | 实施中 | Dev #132;EXT-5 文档补充接口方法快照;发布动作另有双钥匙边界 | -| [Agent harness](2026-10-01-agent-harness.md) | P0–P4 前序总案;明确后续栈总案不使 P0–P4 作废 | proposed | Dev #134/#136/#138/#140/#142/[#144](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/144) 已合入;参见阶段导航 | -| [Agent 栈总案](2026-10-02-agent-stack-completion.md) | 当前库分期范围入口;承接 harness | proposed | 文档 Dev [#151](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/151);R0/R1/R2/D1 及后续交付见阶段导航 | -| [EXT-1](2026-10-05-ext-1-inproc-command-handler.md) | 扩展申请;owner 作用域 Host 与进程内命令最小集 | 实施中 | Dev [#207](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/207) 已合入;[#209](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/209) 是任务卡恢复/复核轮,不是第二次公开面实现 | -| [EXT-5](2026-10-06-ext-5-host-parse-document.md) | 继 EXT-1 开放宿主文档解析;不依赖未提交的 EXT-4 | 实施中 | Dev [#222](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/222)、修复 [#224](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/224) 已合入;下游接入和发布不等于完成 | -| [N1/Q1/I1 实施案](2026-10-07-agent-stack-n1q1i1-plans.md) | 栈总案 §5 的三个阶段细化;明确不包含 N2/Q2/I2 | proposed | 文档 Documents [#40](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/40)、Dev [#226](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/226) 已合入;实施范围差异见下表 | -| [RDM 阶段总案](2026-10-07-rdm-phase-plan.md) | 下游大目标、双仓及可退化约束;P0–P4 / MS0'–MS4 | proposed;§2.3 现状复核已回填(2026-10-08) | 文档 Documents [#41](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/41)、Dev [#229](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/229) 已合入;不代表 RDM 各阶段获准实施 | -| [N2 实施案](2026-10-07-agent-stack-n2-plan.md) | 栈总案 N2 的六 WP:上下文、协议、工具、skills、子代理、装配 | 未单列确认状态及 owner;正文称 N2 开工 | Documents [#42](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/42) 已合入;Dev [#244](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/244) 已合入(merge `7e3ba10`),闭卡 [#247](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/247)。卡内自述六 WP 落地;本索引未重放 | -| [N3 实施案](2026-10-07-agent-stack-n3-plan.md) | 栈总案 N3:持久与可观测 | 页首未单列确认状态及 owner;正文称 N3 开工 | Documents [#43](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/43) 已合入;Dev [#248](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/248) 已合入(merge `2836a87`),闭卡 [#249](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/249)。卡内自述六 WP 落地;本索引未重放 | -| [Q2/Q3 实施案](2026-10-07-agent-stack-q2q3-plans.md) | 栈总案 Q2 拓扑与 Q3 收敛互通 | 页首未单列确认状态及 owner | Documents [#44](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/44) 已合入;Dev [#250](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/250) 采纳方案,[#251](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/251)(merge `452c00a`)与 [#253](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/253)(merge `c8ce4eb`)已合入。卡内自述 Q2/Q3 落地;本索引未重放 | +| [Agent harness](2026-10-01-agent-harness.md) | P0–P4 前序总案;明确后续栈总案不使 P0–P4 作废 | proposed | Dev #134/#136/#138/#140/#142/[#144](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/144) 已合入;参见阶段导航 | +| [Agent 栈总案](2026-10-02-agent-stack-completion.md) | 当前库分期范围入口;承接 harness | proposed | 文档 Dev [#151](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/151);R0/R1/R2/D1 及后续交付见阶段导航 | +| [EXT-1](2026-10-05-ext-1-inproc-command-handler.md) | 扩展申请;owner 作用域 Host 与进程内命令最小集 | 实施中 | Dev [#207](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/207) 已合入;[#209](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/209) 是任务卡恢复/复核轮,不是第二次公开面实现 | +| [EXT-5](2026-10-06-ext-5-host-parse-document.md) | 继 EXT-1 开放宿主文档解析;不依赖未提交的 EXT-4 | 实施中 | Dev [#222](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/222)、修复 [#224](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/224) 已合入;下游接入和发布不等于完成 | +| [N1/Q1/I1 实施案](2026-10-07-agent-stack-n1q1i1-plans.md) | 栈总案 §5 的三个阶段细化;明确不包含 N2/Q2/I2 | proposed | 文档 Documents [#40](https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/40)、Dev [#226](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/226) 已合入;实施范围差异见下表 | +| [RDM 阶段总案](2026-10-07-rdm-phase-plan.md) | 下游大目标、双仓及可退化约束;P0–P4 / MS0'–MS4 | proposed;§2.3 现状复核已回填(2026-10-08) | 文档 Documents [#41](https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/41)、Dev [#229](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/229) 已合入;不代表 RDM 各阶段获准实施 | +| [N2 实施案](2026-10-07-agent-stack-n2-plan.md) | 栈总案 N2 的六 WP:上下文、协议、工具、skills、子代理、装配 | 未单列确认状态及 owner;正文称 N2 开工 | Documents [#42](https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/42) 已合入;Dev [#244](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/244) 已合入(merge `7e3ba10`),闭卡 [#247](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/247)。卡内自述六 WP 落地;本索引未重放 | +| [N3 实施案](2026-10-07-agent-stack-n3-plan.md) | 栈总案 N3:持久与可观测 | 页首未单列确认状态及 owner;正文称 N3 开工 | Documents [#43](https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/43) 已合入;Dev [#248](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/248) 已合入(merge `2836a87`),闭卡 [#249](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/249)。卡内自述六 WP 落地;本索引未重放 | +| [Q2/Q3 实施案](2026-10-07-agent-stack-q2q3-plans.md) | 栈总案 Q2 拓扑与 Q3 收敛互通 | 页首未单列确认状态及 owner | Documents [#44](https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/44) 已合入;Dev [#250](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/250) 采纳方案,[#251](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/251)(merge `452c00a`)与 [#253](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/253)(merge `c8ce4eb`)已合入。卡内自述 Q2/Q3 落地;本索引未重放 | | [智能体工作流质量改进](2026-10-09-agent-quality-improvement-plan.md) | 直连主路径质量:诊断→六项裁定→P0–P5 分期 + 模型 A/B;推翻 fs 工具默认关闭裁定 | 已获实施授权(2026-10-09 六项裁定);首个增量 feature/agent-quality-phase01 | 随本提案 PR;诊断 SELF(真实运行转录);基线报告见任务卡 | | [EXT 申请包 C1–C7](2026-10-08-ext-c1-c7-rdm-shared-contracts.md) | RDM 多人共享契约的基座最小扩展申请(EXT-6…EXT-12):身份停用/受管配置/授权适配器/索引发布/分发守卫/Host 工厂/投影过滤 | proposed;需求依据=RDM U0 主记录(D1–D9 裁定,2026-10-08 合入) | 随本提案 PR;每条现状证据为 SELF·源码级(Dev 34a2bbe/backend fe7c245),运行态 NOT_RUN;受理后逐条另立实现任务 | -| [EXT 申请包 G1](2026-10-09-ext-g1-b1-b3-exec-backend.md) | EXT-13…16:回合内共享检索、命令即工具、项目列表共享、执行后端接口 | proposed;需求依据=RDM 方案 V1.1 §3.3/§3.4/§5.3(2026-10-09 批复) | Documents [#52](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/52) 已合入;EXT-16 已实施(Dev #285,见其任务卡),其余受理评审待定。本行由本次索引维护补充 | +| [EXT 申请包 G1](2026-10-09-ext-g1-b1-b3-exec-backend.md) | EXT-13…16:回合内共享检索、命令即工具、项目列表共享、执行后端接口 | proposed;需求依据=RDM 方案 V1.1 §3.3/§3.4/§5.3(2026-10-09 批复) | Documents [#52](https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/52) 已合入;EXT-16 已实施(Dev #285,见其任务卡),其余受理评审待定。本行由本次索引维护补充 | | [子代理分工、模型分级路由与任务沙箱](2026-10-10-agent-delegation-routing-sandbox.md) | 方向主记录:委派契约与角色路由方案(E1–E5 增量)+ 任务工作区沙箱设计(仅记录不实施);修正 overlay≠快照等三处假设 | proposed(2026-10-10);E1、E3、E4(R4+账本)、E5(R3)、S0-1 已完成(E4:Dev #315;S0-1:Backend #135/#136、Dev #318,2026-10-11);E2 暂缓(模型指示)、S0-2 待授权 | 随本提案 PR;现状核查与启动延迟为 SELF(任务卡 evidence);外部来源 URL 全量随任务卡 | 原查询的 19 份原文中,14 份显式标注 owner 为 weichen。双档存储、启动配置面、跨会话读取、文件预览和 @@ -141,15 +141,15 @@ RDM 总案把库分期作为支撑与依赖,不覆盖库分期的原始范围 | 阶段 | 主记录与关联任务 | 核验结果与继续工作的边界 | |---|---|---| | harness P0–P4 | harness 对应 `feature/agent-harness-p0` 至 `p4`,含 p3b | 上表六个 Dev PR 已合入;旧卡“后续尚未实施”只属于当时快照 | -| R0/R1、R2、D1 | 栈总案;`feature/agent-stack-r0-r1`、`r2`、`d1` | Dev [#152](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/152)、[#154](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/154)、[#156](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/156) 已合入;不得把同号审计缺陷误作阶段名 | -| N1 | N1/Q1/I1 案 §2;`feature/agent-stack-n1` | Dev [#232](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/232) 已合入;状态与范围差异已于 2026-10-08 回填至[主记录 §7.1](2026-10-07-agent-stack-n1q1i1-plans.md)(WP6b/6c 等转出项带归属,均未被后续阶段承接) | -| Q1 | 同案 §3;`feature/agent-stack-q1` | Dev [#237](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/237)、[#240](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/240) 已合入;platform task 与 squad run 的统一边界已厘清并回填至[主记录 §7.2](2026-10-07-agent-stack-n1q1i1-plans.md)(Store 层合一已做,队列翻译转出且 Q2/Q3 未承接) | -| I1 | 同案 §4;`feature/agent-stack-i1` | Dev [#234](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/234)、[#235](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/235) 已合入;blueprint entry、SetSlot/Cancel/Handoff 等后续边界已回填至[主记录 §7.3](2026-10-07-agent-stack-n1q1i1-plans.md) | -| I2 | 栈总案 §5/I2;`feature/agent-stack-i2` | Dev [#242](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/242) 已合入;主记录已加状态回填([栈总案 I2 节](2026-10-02-agent-stack-completion.md)),I2 卡断链已在 Dev 侧修正;开启态完整用户验收未重放 | -| N2 | N2 阶段案;Dev [#244](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/244),闭卡 [#247](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/247) | 2026-10-08 同步时已在 Dev main。#244 标题是接入方案并开启任务;完成声明在已归档任务卡,本索引未重放其测试 | -| N3 | [N3 实施案](2026-10-07-agent-stack-n3-plan.md);Dev [#248](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/248),闭卡 [#249](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/249) | 方案与任务卡已合入。完成声明在已归档任务卡,本索引未重放 | -| Q2 | [Q2/Q3 实施案](2026-10-07-agent-stack-q2q3-plans.md) 第一部分;Dev [#250](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/250)、[#251](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/251) | #251 已合入。完成声明在已归档任务卡,本索引未重放 | -| Q3 | 同案第二部分;Dev [#253](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/253) | #253 已合入。完成声明在已归档任务卡,本索引未重放 | +| R0/R1、R2、D1 | 栈总案;`feature/agent-stack-r0-r1`、`r2`、`d1` | Dev [#152](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/152)、[#154](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/154)、[#156](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/156) 已合入;不得把同号审计缺陷误作阶段名 | +| N1 | N1/Q1/I1 案 §2;`feature/agent-stack-n1` | Dev [#232](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/232) 已合入;状态与范围差异已于 2026-10-08 回填至[主记录 §7.1](2026-10-07-agent-stack-n1q1i1-plans.md)(WP6b/6c 等转出项带归属,均未被后续阶段承接) | +| Q1 | 同案 §3;`feature/agent-stack-q1` | Dev [#237](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/237)、[#240](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/240) 已合入;platform task 与 squad run 的统一边界已厘清并回填至[主记录 §7.2](2026-10-07-agent-stack-n1q1i1-plans.md)(Store 层合一已做,队列翻译转出且 Q2/Q3 未承接) | +| I1 | 同案 §4;`feature/agent-stack-i1` | Dev [#234](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/234)、[#235](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/235) 已合入;blueprint entry、SetSlot/Cancel/Handoff 等后续边界已回填至[主记录 §7.3](2026-10-07-agent-stack-n1q1i1-plans.md) | +| I2 | 栈总案 §5/I2;`feature/agent-stack-i2` | Dev [#242](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/242) 已合入;主记录已加状态回填([栈总案 I2 节](2026-10-02-agent-stack-completion.md)),I2 卡断链已在 Dev 侧修正;开启态完整用户验收未重放 | +| N2 | N2 阶段案;Dev [#244](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/244),闭卡 [#247](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/247) | 2026-10-08 同步时已在 Dev main。#244 标题是接入方案并开启任务;完成声明在已归档任务卡,本索引未重放其测试 | +| N3 | [N3 实施案](2026-10-07-agent-stack-n3-plan.md);Dev [#248](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/248),闭卡 [#249](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/249) | 方案与任务卡已合入。完成声明在已归档任务卡,本索引未重放 | +| Q2 | [Q2/Q3 实施案](2026-10-07-agent-stack-q2q3-plans.md) 第一部分;Dev [#250](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/250)、[#251](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/251) | #251 已合入。完成声明在已归档任务卡,本索引未重放 | +| Q3 | 同案第二部分;Dev [#253](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/253) | #253 已合入。完成声明在已归档任务卡,本索引未重放 | 原始任务卡在 Dev 仓 `.task/archive/`。任务主记录和既有分工优先复用, 索引整理不重新领取或另建相同业务任务。 diff --git a/docs/records/2026-10-07-planning-index-source-receipt.json b/docs/records/2026-10-07-planning-index-source-receipt.json index f2d91b6..8c79243 100644 --- a/docs/records/2026-10-07-planning-index-source-receipt.json +++ b/docs/records/2026-10-07-planning-index-source-receipt.json @@ -28,7 +28,7 @@ }, "after_error": null, "exit_code": 0, - "output": "{\n \"source\": \"SELF\",\n \"checked_at\": \"2026-10-07T13:27:59.195848+00:00\",\n \"dev_base\": \"eb0d4b5a499322a23155c8d89a024247f6e7830d\",\n \"docs_pin\": \"b8eaa1676f168ad64c437857e2607e2e213f6672\",\n \"docs_main\": \"5542319a0474fd4e866b6daacb937b587c833ede\",\n \"limits\": \"API/Git state only; no runtime testing or assertion of human implementation approval\",\n \"proposals\": [\n {\n \"path\": \"docs/proposals/2026-09-29-system-skeleton-design-and-plan.md\",\n \"source_blob\": \"2ba08d7017e7f45c6bc1493a46c050765613f7ac\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-card-stream-artifact-unify-project-inbox.md\",\n \"source_blob\": \"0066c25a1f737fc6fe213cec677803d4d1163cbf\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-cardflow-and-process-split.md\",\n \"source_blob\": \"fb737b396ec35d7d848b71f8c30c39779b64366b\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-configuration-surface.md\",\n \"source_blob\": \"abd37122514d0aeded245a23167b78e12c7b0833\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-cross-session-reading.md\",\n \"source_blob\": \"b96c0dae76b347841f46380d06d53806869e338a\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-dual-tier-storage-and-multitenancy.md\",\n \"source_blob\": \"1880c2ac14e91f6db24d9b104f1f7bb2547fe166\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-file-preview-and-reserved-capabilities.md\",\n \"source_blob\": \"f48af6d25937d2e5aacc946d0023a53e3c09bde4\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-ui-inbox-command-workspace.md\",\n \"source_blob\": \"e78e19732856cbfc9d0105302aae2ff2c453c2d4\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-ui-redesign-and-auth.md\",\n \"source_blob\": \"155cbf0993b40f4ea616aef95aaee7ff71d7db6b\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-01-agent-harness.md\",\n \"source_blob\": \"b3b304c9f31fca632ffa47326c48556ee0ee7cca\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-01-base-extension-roadmap.md\",\n \"source_blob\": \"b2b99878dd1fc95f86f28f0b007d012c5171d597\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-01-extension-compat-policy.md\",\n \"source_blob\": \"1daba9f4f7441bdde8d648cd08f663ffa36cc7e9\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-01-plugin-contract-v2.md\",\n \"source_blob\": \"08395fbf53a306b76d692e1ded8ee0d1f41716af\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-02-agent-stack-completion.md\",\n \"source_blob\": \"a6e7cb732ae4c7b403b81e5597620b58644438fc\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-05-ext-1-inproc-command-handler.md\",\n \"source_blob\": \"988e5516b4b3f7919071f667d543b55dcbdb08fe\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-06-ext-5-host-parse-document.md\",\n \"source_blob\": \"2a54cfd98874e4f94d2b74967e0541fa27f4601d\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-07-agent-stack-n1q1i1-plans.md\",\n \"source_blob\": \"ee44529a8c283693875f4bb1c11dde7b9939e60c\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-07-agent-stack-n2-plan.md\",\n \"source_blob\": \"647b04848a6a77a68b1754f200ae61804d1a0740\",\n \"present_in_dev_pin\": false,\n \"same_blob_as_dev_pin\": false\n },\n {\n \"path\": \"docs/proposals/2026-10-07-rdm-phase-plan.md\",\n \"source_blob\": \"d2a491849ef8d04ea04bfeb885ba6a15a3bdc1f5\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n }\n ],\n \"pull_requests\": [\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 12,\n \"title\": \"Pin backend with the configuration pipe and documents with its design\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/12\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T04:27:51Z\",\n \"head_ref\": \"refs/pull/12/head\",\n \"head_sha\": \"6f72c0d4dd99e5162339b57489446ef9b0b0534f\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"a58f85e0d0ade6e8b4da3afe9985985a38bae47a\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 14,\n \"title\": \"Wire Agent-System-UI and Agent-Command into the Dev combo (T0)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/14\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T06:11:54Z\",\n \"head_ref\": \"refs/pull/14/head\",\n \"head_sha\": \"cc9d8ec66d2597f47b6c7bafc7a607957c2de188\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"69e9471dafd275f98928ff005732b94c4b18b638\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 15,\n \"title\": \"T1: pin contracts combo (core cards/commands, agent-command v0) and guard task-finish\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/15\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T06:34:06Z\",\n \"head_ref\": \"refs/pull/15/head\",\n \"head_sha\": \"3ca7f374e63748e41476fbf0244b06ef0711d6dc\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"69fd335deac237f5291298cb06a50bf03d11add7\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 19,\n \"title\": \"T2: pin the inbox combo (cardsvc backend, ui components, frontend wiring)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/19\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T07:36:09Z\",\n \"head_ref\": \"refs/pull/19/head\",\n \"head_sha\": \"d8dd604b8ab823f742c6e7b0f4ae43e23e4fda12\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"10405f9479c83a7eccb9ab6133229d37013a9da5\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 21,\n \"title\": \"T3: pin the command-bus combo (cmdbus, InlineConfirmCard, symmetric entries)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/21\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T07:56:27Z\",\n \"head_ref\": \"refs/pull/21/head\",\n \"head_sha\": \"b9d4df056116128e450f163cb3de568c032f8d91\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"7393d6b95850982043b5d31aa2db6953a5bcd031\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 23,\n \"title\": \"T4: pin the workspaces combo (OverlayHost, pure-inbox rail, Cmd shortcuts)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/23\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T08:09:48Z\",\n \"head_ref\": \"refs/pull/23/head\",\n \"head_sha\": \"4318a0bad8cb1025a3323d2942486812f7aeff5a\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"b6822096834853942439a4069a78b519b354731c\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 25,\n \"title\": \"T5: pin the polish combo (zero-page walkthrough, tidy, guide) - proposal complete\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/25\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T08:18:34Z\",\n \"head_ref\": \"refs/pull/25/head\",\n \"head_sha\": \"61dc542e56fa64f78c5da3cdc69da2890db122f3\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"3be968af731eecc7b9cd4699c54671b7a9c9cbd9\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 30,\n \"title\": \"界面重构与多用户认证设计提案(documents gitlink + 任务卡)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/30\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T10:02:29Z\",\n \"head_ref\": \"refs/pull/30/head\",\n \"head_sha\": \"f9d2aaa2739f9678ee4df7040c7ca80afcfca180\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"32bb3457d174e6c837ef9b411138d2b57f5839f6\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 37,\n \"title\": \"Task-centric sidebar R1 (option A): gitlinks + task card\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/37\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T10:46:46Z\",\n \"head_ref\": \"refs/pull/37/head\",\n \"head_sha\": \"6cfdb89f21945a0c9f5dae9451bde5c9f099d05b\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"075c187be28c15b3b66c14adf3edcbeeafb5c05f\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 43,\n \"title\": \"Admin-issued accounts R2: gitlinks + task card\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/43\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T11:17:31Z\",\n \"head_ref\": \"refs/pull/43/head\",\n \"head_sha\": \"66eae890170c2373681384ddb1b8ae84454a4e87\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"2f319ca0f5b86e12796042e72f65d3d939b97182\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 53,\n \"title\": \"R4 visual refresh: gitlinks + task card\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/53\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T12:44:52Z\",\n \"head_ref\": \"refs/pull/53/head\",\n \"head_sha\": \"73b2802b69eb23be4dd16db41f316f0ab8ac99ca\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"b0699598191a51b912aae4e69e39d7d48a38188e\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 61,\n \"title\": \"UI capability platform: gitlinks + .gitignore + task card\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/61\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T14:23:41Z\",\n \"head_ref\": \"refs/pull/61/head\",\n \"head_sha\": \"0bf2f9beccb806f7201a5b069aebd259fab49320\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"58f191189bf807c86bad3399fa295088ce26a5fa\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 67,\n \"title\": \"Deliver layered cross-session reading and pin the five module PRs\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/67\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T15:27:41Z\",\n \"head_ref\": \"refs/pull/67/head\",\n \"head_sha\": \"835e3ce187412298060a9fd0e7f60f158ed05796\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"816b40e8f74d27218c2ed321dc88007fd298bed3\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 71,\n \"title\": \"Deliver part-order fidelity, artifact downloads, file management, and the settings shell fix\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/71\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T15:44:05Z\",\n \"head_ref\": \"refs/pull/71/head\",\n \"head_sha\": \"7e9cac8a40a479d1f4a4790db38fef370aa28724\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"bb1bf06aec6d3f848ce6a1ca291c6ef6dc4da4ab\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 77,\n \"title\": \"Pin the file-preview proposal and restore the regressed module gitlinks\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/77\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T16:06:43Z\",\n \"head_ref\": \"refs/pull/77/head\",\n \"head_sha\": \"937c4ed9011dbc86dac85eaaa691335b9a2393e3\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"a3f3cb0a841c7d918982b24590bb58bcf804a2ad\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 79,\n \"title\": \"Agent-System-Dev: review fixes for chat-process-split-r1 (symlink, live interleaving, artifact process)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/79\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T16:17:03Z\",\n \"head_ref\": \"refs/pull/79/head\",\n \"head_sha\": \"f3056cb9d6bdbb0061848661afb8b61a7d8dc06f\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"eb1877b3f707fc5bc6e59cd531e6d9d69424129b\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 90,\n \"title\": \"Pin cardflow-r1 module combination (CF1: submit_card, card anchor, process split)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/90\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T17:14:50Z\",\n \"head_ref\": \"feature/cardflow-r1\",\n \"head_sha\": \"9451887c059fac7fe987544ac455b51f39911201\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"75d5a1721e928eb832f54b5d4aaf1def304021e6\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 94,\n \"title\": \"Deliver file previews, dual-dock placement, and reserved delete/fs capabilities\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/94\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T17:21:30Z\",\n \"head_ref\": \"feature/file-preview-caps\",\n \"head_sha\": \"f958bfb326c7dae646fb1dd6dabc5faf2d63221d\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"2c8e1b8d5762685256e2e9bb27eb29b4008d738e\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 100,\n \"title\": \"Land card streaming (CF-S: card_begin/card_append/card_commit)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/100\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T18:23:29Z\",\n \"head_ref\": \"feature/card-stream-r1\",\n \"head_sha\": \"e240f909113ccf96fd2241da6aeb3804fa6cb414\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"a8faa967cdc0fe0d20a3cb20ed17f74518b6cff7\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 103,\n \"title\": \"Land artifact unification (CF-A: backfill symmetry + facade cards)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/103\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T18:44:17Z\",\n \"head_ref\": \"feature/artifact-unify-r1\",\n \"head_sha\": \"a4c0d1ad1b53f4c8831bcd8abfb824c112947802\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"675e6f8483e11d67a49f3c68b8b98a44cb42b7e1\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 105,\n \"title\": \"Land cross-session project inbox (CF3: D48-D51)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/105\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T19:20:29Z\",\n \"head_ref\": \"feature/project-inbox-r1\",\n \"head_sha\": \"25f65559ae45751fea811f06955641345d56c1d9\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"0b82976c66aaaaf0515fd31eaee9abfa5cde193c\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 132,\n \"title\": \"Pin the extension roadmap and downstream spike\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/132\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T10:47:14Z\",\n \"head_ref\": \"feature/base-extension-roadmap\",\n \"head_sha\": \"94b7de3a9f0debb5a5afb8e09974cc72a8a08e54\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"db9c4690478b4fa4973efa1111e8764c73011ebb\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 134,\n \"title\": \"Pin the harness proposal and native tool-call replay\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/134\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T12:43:41Z\",\n \"head_ref\": \"feature/agent-harness-p0\",\n \"head_sha\": \"5e257192018c2d536ba4f16406e8ce9750c13952\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"46b9e53f75f5383ea1ac961b8e6fa587f88ce64a\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 136,\n \"title\": \"Pin the harness turn loop across the three native checkouts\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/136\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T13:42:01Z\",\n \"head_ref\": \"feature/agent-harness-p1\",\n \"head_sha\": \"c5ab4c35e56bd762f37a22649fc94a4e2480bc5b\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"def110d784dfeb0139062cb511a0b7de6e59ae81\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 138,\n \"title\": \"Pin backend to the final-turn result checks\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/138\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T14:00:59Z\",\n \"head_ref\": \"feature/agent-harness-p2\",\n \"head_sha\": \"7244f8c7305f075cc96c647021797677b4b804e8\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"1939d50a7fcb61bdb4bc98cba84173e7e5fc9a11\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 140,\n \"title\": \"Pin backend to the depth-one subagent loop\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/140\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T14:51:02Z\",\n \"head_ref\": \"feature/agent-harness-p3\",\n \"head_sha\": \"8c43d4b16ce0d5aa700bfebb77b8a022de532b3d\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"5096a052dcaef7ee08a3251ec50a47bf7f066618\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 142,\n \"title\": \"Pin P3b background subagents, review, and profile overrides\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/142\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T15:51:57Z\",\n \"head_ref\": \"feature/agent-harness-p3b\",\n \"head_sha\": \"79a6a73052920ba3bd2b4909d8287cf7e908a2e2\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"ec4614322eaded96ee13f576992f016b47648200\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 144,\n \"title\": \"Add intent-to-workflow execution\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/144\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-02T01:04:03Z\",\n \"head_ref\": \"feature/agent-harness-p4\",\n \"head_sha\": \"cd984219da215db5978e7916c0439df74ce7b5aa\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"3ba104c721013f63be249e2f810376d3d8b26ee3\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 151,\n \"title\": \"Pin documents to the agent stack completion proposal\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/151\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-03T14:15:52Z\",\n \"head_ref\": \"refs/pull/151/head\",\n \"head_sha\": \"83b2b0912e6e2e891f16590ca011fa374cb79478\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"2a24d8418a7c0da0428481fd03c315a346eb597c\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 152,\n \"title\": \"Check nested library pins and test the three agent libraries\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/152\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-03T12:47:36Z\",\n \"head_ref\": \"refs/pull/152/head\",\n \"head_sha\": \"2e43703838a8fcb84cd00d669f28038b8a8d3efd\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"7dd107bae40a203d684b0c9a3fd81ca316fd8c90\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 154,\n \"title\": \"Pin the R2 library and backend heads\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/154\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-03T13:22:55Z\",\n \"head_ref\": \"refs/pull/154/head\",\n \"head_sha\": \"a5377ec2347e08c84d428d980c652355fa7785be\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"0a047db5c9c852539c6a839cf85589729f246019\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 156,\n \"title\": \"Pin the D1 library and backend heads\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/156\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-03T14:02:34Z\",\n \"head_ref\": \"refs/pull/156/head\",\n \"head_sha\": \"3cd83db5ca01de2227e8ab668355a431708193f9\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"19b93ed09c0b80de78eed45763b482616b54ed06\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 167,\n \"title\": \"Add an architecture edge ratchet and waiting-state tokens\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/167\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-03T16:04:36Z\",\n \"head_ref\": \"feature/architecture-baseline\",\n \"head_sha\": \"4afccef8bd222355657da52ea1a9e07debfc3e8f\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"e294729a44e11b15ab7ba2c70b04eafa235d5f95\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 207,\n \"title\": \"Add EXT-1 inproc command handler and owner-scoped host handle (minimal set)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/207\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-05T11:48:46Z\",\n \"head_ref\": \"feature/ext-1-inproc-handler\",\n \"head_sha\": \"4801a90319254bd8bbef5e22abf47acb10972014\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"63a62a79ac52cc5d0b5d798dc586195ea842bd51\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 209,\n \"title\": \"Restore and complete the EXT-1 task card after branch recreation (verification round)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/209\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-05T12:07:12Z\",\n \"head_ref\": \"feature/ext-1-inproc-handler\",\n \"head_sha\": \"4801a90319254bd8bbef5e22abf47acb10972014\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"15ec9bfbc57bbc1f9930ac4c3ef91edc8460ea4a\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 222,\n \"title\": \"Expose builtin document parsing through the host handle (EXT-5)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/222\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-06T15:14:31Z\",\n \"head_ref\": \"refs/pull/222/head\",\n \"head_sha\": \"f5c83534fe2cc3886842e66c2648362c5fa2af7c\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"c06da5735904e63db4cbcdb75b3b10b48aeffc32\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 224,\n \"title\": \"Pin the wide-columns xlsx fix\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/224\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-06T15:39:48Z\",\n \"head_ref\": \"refs/pull/224/head\",\n \"head_sha\": \"12cda45fe8cd910253dacd75434efcf203f2ba0f\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"c4985e96ce1c49da88f652e9a2d8ac2bec4a8b01\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 226,\n \"title\": \"Propose N1/Q1/I1 implementation plans (docs only)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/226\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T02:51:40Z\",\n \"head_ref\": \"refs/pull/226/head\",\n \"head_sha\": \"ddfd6a2b67209a1b9b2ba7810cb10919c0bb9743\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"2147d5cb6566c301eaea3c65448bdda873093aea\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 229,\n \"title\": \"Propose the RDM phase plan (docs only)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/229\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T04:34:51Z\",\n \"head_ref\": \"refs/pull/229/head\",\n \"head_sha\": \"0384abc9aff3b30f23a4b95c6552e60071f5436d\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"9c9483ac54ff5355c86824ac94097e65e59dcb5d\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 232,\n \"title\": \"Pin the merged WP5 gate-sinking combination\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/232\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T06:50:22Z\",\n \"head_ref\": \"refs/pull/232/head\",\n \"head_sha\": \"1a4053810acde922b68cca802ae2c7dba4e26ad7\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"ae40cee917ca449fa8e75e6f2a665d94a18e3567\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 234,\n \"title\": \"Pin the merged I1 command-model and router combination\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/234\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T08:04:20Z\",\n \"head_ref\": \"refs/pull/234/head\",\n \"head_sha\": \"e793587677b73f9e0a8b7b200fb89cf002b71a5a\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"1f7217f5bb2657418845d6bec6ae28c56920ddc8\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 235,\n \"title\": \"Pin the merged I1 eval-v2 combination\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/235\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T08:44:41Z\",\n \"head_ref\": \"refs/pull/235/head\",\n \"head_sha\": \"9c1cdbb10fe6237b80f40cf5184f2e3ae3378643\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"eafe1e1fbf6874b58f851878c815c2c24e6f8db3\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 237,\n \"title\": \"Pin the merged superstep engine (Q1 WP1/WP2)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/237\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T09:12:58Z\",\n \"head_ref\": \"refs/pull/237/head\",\n \"head_sha\": \"8a1c84193922530c1489572ef6a1e136594bb1ef\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"3bf2441b05489dfb55b3146aa4e0c53068d34b82\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 240,\n \"title\": \"Pin the merged SQLite convergence (Q1 WP5)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/240\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T10:38:59Z\",\n \"head_ref\": \"refs/pull/240/head\",\n \"head_sha\": \"1a02139026f412c90799bb01fe023bec173a2888\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"ba36d47c2fbfdd0ba759fe251f87c403a5f7ffc7\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 242,\n \"title\": \"Take the backend intent slow lane and the I2 port pins (I2 WP3)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/242\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T11:58:02Z\",\n \"head_ref\": \"refs/pull/242/head\",\n \"head_sha\": \"733f3c74745ae46ae71a82b092867c7e4b45adf6\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"d308ed66196b67970de19ad657410daffcca3740\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 244,\n \"title\": \"Take the N2 implementation plan and open the N2 task\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/244\",\n \"state\": \"open\",\n \"merged\": false,\n \"merged_at\": null,\n \"head_ref\": \"feature/agent-stack-n2\",\n \"head_sha\": \"eae6992ae81335df5eb016223e2522fab952ae7f\",\n \"base_ref\": \"main\",\n \"merge_sha\": null,\n \"merge_in_fixed_main\": null,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 14,\n \"title\": \"界面重构与多用户认证设计提案 + HTML demo(方案 A/B/C + 认证)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/14\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T10:02:04Z\",\n \"head_ref\": \"refs/pull/14/head\",\n \"head_sha\": \"e601b253bc0d6a3fc762c7495d235b68f3910eb6\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"ab14f62534fc8831db694fa580a7d163a3cc19ff\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 27,\n \"title\": \"Propose card stream, artifact unification, and project inbox (D44-D52)\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/27\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T17:45:16Z\",\n \"head_ref\": \"feature/cardflow-future-plan\",\n \"head_sha\": \"4a698869521eaa60b2fba9bdb3196226691bf987\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"437af31118814463cc44d379f7269afd7add62b5\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 31,\n \"title\": \"Document the base extension roadmap and plugin contract v2\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/31\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T10:47:11Z\",\n \"head_ref\": \"feature/base-extension-roadmap\",\n \"head_sha\": \"a0da588f9035e132bcfd1dcc0ac1dacb62924776\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"f3a3a5deb48e5b1c6ceb1b666d71ed912606c49d\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 32,\n \"title\": \"Propose the agent harness and link it from the roadmap\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/32\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T12:43:26Z\",\n \"head_ref\": \"feature/agent-harness-p0\",\n \"head_sha\": \"a3f0b80759fa01094cb9ee26b2a17dba831317e2\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"357e3fdb246a8a8d562e63e01d5170673bf4dcc6\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 34,\n \"title\": \"Propose the agent stack audit and completion design\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/34\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-03T14:12:17Z\",\n \"head_ref\": \"refs/pull/34/head\",\n \"head_sha\": \"233dfb54ea1cd8e8085769832eef18fb3eaa04b7\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"76044b5895e8abe5bd1e3bf45ccfe3ea7edcdc42\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 39,\n \"title\": \"Restore the EXT-1 proposal and request EXT-5 host document parse\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/39\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-06T15:14:15Z\",\n \"head_ref\": \"refs/pull/39/head\",\n \"head_sha\": \"5825cd35f2cde87a737d2dacdd2e4a393063e3bc\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"e53c6bf177ee9bfa2ae85e1baa35378e122577e3\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 40,\n \"title\": \"Propose N1/Q1/I1 implementation plans for the agent stack\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/40\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T02:51:31Z\",\n \"head_ref\": \"feature/agent-stack-n1q1i1-plans\",\n \"head_sha\": \"54ead4197f844b9547a9275dbf9ba8ff639cb5e9\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"dd9c1ba558b9154a66e1d9bcab1d52dd09ad5a8e\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 41,\n \"title\": \"Propose the RDM phase plan: direction, invariants, and stage gates\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/41\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T04:34:51Z\",\n \"head_ref\": \"feature/rdm-phase-plan\",\n \"head_sha\": \"b8eaa1676f168ad64c437857e2607e2e213f6672\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"0551d003000107a511f26642e68a947680956fc6\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 42,\n \"title\": \"Propose the N2 implementation plan: context, protocol, and tools\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/42\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T12:38:28Z\",\n \"head_ref\": \"refs/pull/42/head\",\n \"head_sha\": \"96fd6599d1f2b60f44830ddae1b21185713269d9\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"5542319a0474fd4e866b6daacb937b587c833ede\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n }\n ],\n \"open_pull_requests\": {\n \"Agent-System-Dev\": [\n {\n \"number\": 244,\n \"head_ref\": \"feature/agent-stack-n2\",\n \"head_sha\": \"eae6992ae81335df5eb016223e2522fab952ae7f\",\n \"title\": \"Take the N2 implementation plan and open the N2 task\",\n \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/244\"\n }\n ],\n \"Agent-System-Documents\": []\n }\n}\n", + "output": "{\n \"source\": \"SELF\",\n \"checked_at\": \"2026-10-07T13:27:59.195848+00:00\",\n \"dev_base\": \"eb0d4b5a499322a23155c8d89a024247f6e7830d\",\n \"docs_pin\": \"b8eaa1676f168ad64c437857e2607e2e213f6672\",\n \"docs_main\": \"5542319a0474fd4e866b6daacb937b587c833ede\",\n \"limits\": \"API/Git state only; no runtime testing or assertion of human implementation approval\",\n \"proposals\": [\n {\n \"path\": \"docs/proposals/2026-09-29-system-skeleton-design-and-plan.md\",\n \"source_blob\": \"2ba08d7017e7f45c6bc1493a46c050765613f7ac\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-card-stream-artifact-unify-project-inbox.md\",\n \"source_blob\": \"0066c25a1f737fc6fe213cec677803d4d1163cbf\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-cardflow-and-process-split.md\",\n \"source_blob\": \"fb737b396ec35d7d848b71f8c30c39779b64366b\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-configuration-surface.md\",\n \"source_blob\": \"abd37122514d0aeded245a23167b78e12c7b0833\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-cross-session-reading.md\",\n \"source_blob\": \"b96c0dae76b347841f46380d06d53806869e338a\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-dual-tier-storage-and-multitenancy.md\",\n \"source_blob\": \"1880c2ac14e91f6db24d9b104f1f7bb2547fe166\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-file-preview-and-reserved-capabilities.md\",\n \"source_blob\": \"f48af6d25937d2e5aacc946d0023a53e3c09bde4\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-ui-inbox-command-workspace.md\",\n \"source_blob\": \"e78e19732856cbfc9d0105302aae2ff2c453c2d4\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-09-30-ui-redesign-and-auth.md\",\n \"source_blob\": \"155cbf0993b40f4ea616aef95aaee7ff71d7db6b\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-01-agent-harness.md\",\n \"source_blob\": \"b3b304c9f31fca632ffa47326c48556ee0ee7cca\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-01-base-extension-roadmap.md\",\n \"source_blob\": \"b2b99878dd1fc95f86f28f0b007d012c5171d597\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-01-extension-compat-policy.md\",\n \"source_blob\": \"1daba9f4f7441bdde8d648cd08f663ffa36cc7e9\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-01-plugin-contract-v2.md\",\n \"source_blob\": \"08395fbf53a306b76d692e1ded8ee0d1f41716af\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-02-agent-stack-completion.md\",\n \"source_blob\": \"a6e7cb732ae4c7b403b81e5597620b58644438fc\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-05-ext-1-inproc-command-handler.md\",\n \"source_blob\": \"988e5516b4b3f7919071f667d543b55dcbdb08fe\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-06-ext-5-host-parse-document.md\",\n \"source_blob\": \"2a54cfd98874e4f94d2b74967e0541fa27f4601d\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-07-agent-stack-n1q1i1-plans.md\",\n \"source_blob\": \"ee44529a8c283693875f4bb1c11dde7b9939e60c\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n },\n {\n \"path\": \"docs/proposals/2026-10-07-agent-stack-n2-plan.md\",\n \"source_blob\": \"647b04848a6a77a68b1754f200ae61804d1a0740\",\n \"present_in_dev_pin\": false,\n \"same_blob_as_dev_pin\": false\n },\n {\n \"path\": \"docs/proposals/2026-10-07-rdm-phase-plan.md\",\n \"source_blob\": \"d2a491849ef8d04ea04bfeb885ba6a15a3bdc1f5\",\n \"present_in_dev_pin\": true,\n \"same_blob_as_dev_pin\": true\n }\n ],\n \"pull_requests\": [\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 12,\n \"title\": \"Pin backend with the configuration pipe and documents with its design\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/12\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T04:27:51Z\",\n \"head_ref\": \"refs/pull/12/head\",\n \"head_sha\": \"6f72c0d4dd99e5162339b57489446ef9b0b0534f\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"a58f85e0d0ade6e8b4da3afe9985985a38bae47a\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 14,\n \"title\": \"Wire Agent-System-UI and Agent-Command into the Dev combo (T0)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/14\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T06:11:54Z\",\n \"head_ref\": \"refs/pull/14/head\",\n \"head_sha\": \"cc9d8ec66d2597f47b6c7bafc7a607957c2de188\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"69e9471dafd275f98928ff005732b94c4b18b638\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 15,\n \"title\": \"T1: pin contracts combo (core cards/commands, agent-command v0) and guard task-finish\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/15\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T06:34:06Z\",\n \"head_ref\": \"refs/pull/15/head\",\n \"head_sha\": \"3ca7f374e63748e41476fbf0244b06ef0711d6dc\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"69fd335deac237f5291298cb06a50bf03d11add7\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 19,\n \"title\": \"T2: pin the inbox combo (cardsvc backend, ui components, frontend wiring)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/19\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T07:36:09Z\",\n \"head_ref\": \"refs/pull/19/head\",\n \"head_sha\": \"d8dd604b8ab823f742c6e7b0f4ae43e23e4fda12\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"10405f9479c83a7eccb9ab6133229d37013a9da5\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 21,\n \"title\": \"T3: pin the command-bus combo (cmdbus, InlineConfirmCard, symmetric entries)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/21\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T07:56:27Z\",\n \"head_ref\": \"refs/pull/21/head\",\n \"head_sha\": \"b9d4df056116128e450f163cb3de568c032f8d91\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"7393d6b95850982043b5d31aa2db6953a5bcd031\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 23,\n \"title\": \"T4: pin the workspaces combo (OverlayHost, pure-inbox rail, Cmd shortcuts)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/23\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T08:09:48Z\",\n \"head_ref\": \"refs/pull/23/head\",\n \"head_sha\": \"4318a0bad8cb1025a3323d2942486812f7aeff5a\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"b6822096834853942439a4069a78b519b354731c\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 25,\n \"title\": \"T5: pin the polish combo (zero-page walkthrough, tidy, guide) - proposal complete\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/25\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T08:18:34Z\",\n \"head_ref\": \"refs/pull/25/head\",\n \"head_sha\": \"61dc542e56fa64f78c5da3cdc69da2890db122f3\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"3be968af731eecc7b9cd4699c54671b7a9c9cbd9\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 30,\n \"title\": \"界面重构与多用户认证设计提案(documents gitlink + 任务卡)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/30\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T10:02:29Z\",\n \"head_ref\": \"refs/pull/30/head\",\n \"head_sha\": \"f9d2aaa2739f9678ee4df7040c7ca80afcfca180\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"32bb3457d174e6c837ef9b411138d2b57f5839f6\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 37,\n \"title\": \"Task-centric sidebar R1 (option A): gitlinks + task card\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/37\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T10:46:46Z\",\n \"head_ref\": \"refs/pull/37/head\",\n \"head_sha\": \"6cfdb89f21945a0c9f5dae9451bde5c9f099d05b\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"075c187be28c15b3b66c14adf3edcbeeafb5c05f\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 43,\n \"title\": \"Admin-issued accounts R2: gitlinks + task card\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/43\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T11:17:31Z\",\n \"head_ref\": \"refs/pull/43/head\",\n \"head_sha\": \"66eae890170c2373681384ddb1b8ae84454a4e87\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"2f319ca0f5b86e12796042e72f65d3d939b97182\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 53,\n \"title\": \"R4 visual refresh: gitlinks + task card\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/53\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T12:44:52Z\",\n \"head_ref\": \"refs/pull/53/head\",\n \"head_sha\": \"73b2802b69eb23be4dd16db41f316f0ab8ac99ca\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"b0699598191a51b912aae4e69e39d7d48a38188e\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 61,\n \"title\": \"UI capability platform: gitlinks + .gitignore + task card\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/61\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T14:23:41Z\",\n \"head_ref\": \"refs/pull/61/head\",\n \"head_sha\": \"0bf2f9beccb806f7201a5b069aebd259fab49320\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"58f191189bf807c86bad3399fa295088ce26a5fa\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 67,\n \"title\": \"Deliver layered cross-session reading and pin the five module PRs\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/67\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T15:27:41Z\",\n \"head_ref\": \"refs/pull/67/head\",\n \"head_sha\": \"835e3ce187412298060a9fd0e7f60f158ed05796\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"816b40e8f74d27218c2ed321dc88007fd298bed3\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 71,\n \"title\": \"Deliver part-order fidelity, artifact downloads, file management, and the settings shell fix\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/71\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T15:44:05Z\",\n \"head_ref\": \"refs/pull/71/head\",\n \"head_sha\": \"7e9cac8a40a479d1f4a4790db38fef370aa28724\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"bb1bf06aec6d3f848ce6a1ca291c6ef6dc4da4ab\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 77,\n \"title\": \"Pin the file-preview proposal and restore the regressed module gitlinks\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/77\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T16:06:43Z\",\n \"head_ref\": \"refs/pull/77/head\",\n \"head_sha\": \"937c4ed9011dbc86dac85eaaa691335b9a2393e3\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"a3f3cb0a841c7d918982b24590bb58bcf804a2ad\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 79,\n \"title\": \"Agent-System-Dev: review fixes for chat-process-split-r1 (symlink, live interleaving, artifact process)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/79\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T16:17:03Z\",\n \"head_ref\": \"refs/pull/79/head\",\n \"head_sha\": \"f3056cb9d6bdbb0061848661afb8b61a7d8dc06f\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"eb1877b3f707fc5bc6e59cd531e6d9d69424129b\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 90,\n \"title\": \"Pin cardflow-r1 module combination (CF1: submit_card, card anchor, process split)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/90\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T17:14:50Z\",\n \"head_ref\": \"feature/cardflow-r1\",\n \"head_sha\": \"9451887c059fac7fe987544ac455b51f39911201\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"75d5a1721e928eb832f54b5d4aaf1def304021e6\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 94,\n \"title\": \"Deliver file previews, dual-dock placement, and reserved delete/fs capabilities\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/94\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T17:21:30Z\",\n \"head_ref\": \"feature/file-preview-caps\",\n \"head_sha\": \"f958bfb326c7dae646fb1dd6dabc5faf2d63221d\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"2c8e1b8d5762685256e2e9bb27eb29b4008d738e\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 100,\n \"title\": \"Land card streaming (CF-S: card_begin/card_append/card_commit)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/100\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T18:23:29Z\",\n \"head_ref\": \"feature/card-stream-r1\",\n \"head_sha\": \"e240f909113ccf96fd2241da6aeb3804fa6cb414\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"a8faa967cdc0fe0d20a3cb20ed17f74518b6cff7\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 103,\n \"title\": \"Land artifact unification (CF-A: backfill symmetry + facade cards)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/103\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T18:44:17Z\",\n \"head_ref\": \"feature/artifact-unify-r1\",\n \"head_sha\": \"a4c0d1ad1b53f4c8831bcd8abfb824c112947802\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"675e6f8483e11d67a49f3c68b8b98a44cb42b7e1\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 105,\n \"title\": \"Land cross-session project inbox (CF3: D48-D51)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/105\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T19:20:29Z\",\n \"head_ref\": \"feature/project-inbox-r1\",\n \"head_sha\": \"25f65559ae45751fea811f06955641345d56c1d9\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"0b82976c66aaaaf0515fd31eaee9abfa5cde193c\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 132,\n \"title\": \"Pin the extension roadmap and downstream spike\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/132\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T10:47:14Z\",\n \"head_ref\": \"feature/base-extension-roadmap\",\n \"head_sha\": \"94b7de3a9f0debb5a5afb8e09974cc72a8a08e54\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"db9c4690478b4fa4973efa1111e8764c73011ebb\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 134,\n \"title\": \"Pin the harness proposal and native tool-call replay\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/134\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T12:43:41Z\",\n \"head_ref\": \"feature/agent-harness-p0\",\n \"head_sha\": \"5e257192018c2d536ba4f16406e8ce9750c13952\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"46b9e53f75f5383ea1ac961b8e6fa587f88ce64a\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 136,\n \"title\": \"Pin the harness turn loop across the three native checkouts\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/136\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T13:42:01Z\",\n \"head_ref\": \"feature/agent-harness-p1\",\n \"head_sha\": \"c5ab4c35e56bd762f37a22649fc94a4e2480bc5b\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"def110d784dfeb0139062cb511a0b7de6e59ae81\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 138,\n \"title\": \"Pin backend to the final-turn result checks\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/138\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T14:00:59Z\",\n \"head_ref\": \"feature/agent-harness-p2\",\n \"head_sha\": \"7244f8c7305f075cc96c647021797677b4b804e8\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"1939d50a7fcb61bdb4bc98cba84173e7e5fc9a11\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 140,\n \"title\": \"Pin backend to the depth-one subagent loop\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/140\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T14:51:02Z\",\n \"head_ref\": \"feature/agent-harness-p3\",\n \"head_sha\": \"8c43d4b16ce0d5aa700bfebb77b8a022de532b3d\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"5096a052dcaef7ee08a3251ec50a47bf7f066618\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 142,\n \"title\": \"Pin P3b background subagents, review, and profile overrides\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/142\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T15:51:57Z\",\n \"head_ref\": \"feature/agent-harness-p3b\",\n \"head_sha\": \"79a6a73052920ba3bd2b4909d8287cf7e908a2e2\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"ec4614322eaded96ee13f576992f016b47648200\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 144,\n \"title\": \"Add intent-to-workflow execution\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/144\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-02T01:04:03Z\",\n \"head_ref\": \"feature/agent-harness-p4\",\n \"head_sha\": \"cd984219da215db5978e7916c0439df74ce7b5aa\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"3ba104c721013f63be249e2f810376d3d8b26ee3\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 151,\n \"title\": \"Pin documents to the agent stack completion proposal\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/151\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-03T14:15:52Z\",\n \"head_ref\": \"refs/pull/151/head\",\n \"head_sha\": \"83b2b0912e6e2e891f16590ca011fa374cb79478\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"2a24d8418a7c0da0428481fd03c315a346eb597c\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 152,\n \"title\": \"Check nested library pins and test the three agent libraries\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/152\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-03T12:47:36Z\",\n \"head_ref\": \"refs/pull/152/head\",\n \"head_sha\": \"2e43703838a8fcb84cd00d669f28038b8a8d3efd\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"7dd107bae40a203d684b0c9a3fd81ca316fd8c90\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 154,\n \"title\": \"Pin the R2 library and backend heads\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/154\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-03T13:22:55Z\",\n \"head_ref\": \"refs/pull/154/head\",\n \"head_sha\": \"a5377ec2347e08c84d428d980c652355fa7785be\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"0a047db5c9c852539c6a839cf85589729f246019\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 156,\n \"title\": \"Pin the D1 library and backend heads\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/156\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-03T14:02:34Z\",\n \"head_ref\": \"refs/pull/156/head\",\n \"head_sha\": \"3cd83db5ca01de2227e8ab668355a431708193f9\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"19b93ed09c0b80de78eed45763b482616b54ed06\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 167,\n \"title\": \"Add an architecture edge ratchet and waiting-state tokens\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/167\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-03T16:04:36Z\",\n \"head_ref\": \"feature/architecture-baseline\",\n \"head_sha\": \"4afccef8bd222355657da52ea1a9e07debfc3e8f\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"e294729a44e11b15ab7ba2c70b04eafa235d5f95\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 207,\n \"title\": \"Add EXT-1 inproc command handler and owner-scoped host handle (minimal set)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/207\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-05T11:48:46Z\",\n \"head_ref\": \"feature/ext-1-inproc-handler\",\n \"head_sha\": \"4801a90319254bd8bbef5e22abf47acb10972014\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"63a62a79ac52cc5d0b5d798dc586195ea842bd51\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 209,\n \"title\": \"Restore and complete the EXT-1 task card after branch recreation (verification round)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/209\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-05T12:07:12Z\",\n \"head_ref\": \"feature/ext-1-inproc-handler\",\n \"head_sha\": \"4801a90319254bd8bbef5e22abf47acb10972014\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"15ec9bfbc57bbc1f9930ac4c3ef91edc8460ea4a\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 222,\n \"title\": \"Expose builtin document parsing through the host handle (EXT-5)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/222\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-06T15:14:31Z\",\n \"head_ref\": \"refs/pull/222/head\",\n \"head_sha\": \"f5c83534fe2cc3886842e66c2648362c5fa2af7c\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"c06da5735904e63db4cbcdb75b3b10b48aeffc32\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 224,\n \"title\": \"Pin the wide-columns xlsx fix\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/224\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-06T15:39:48Z\",\n \"head_ref\": \"refs/pull/224/head\",\n \"head_sha\": \"12cda45fe8cd910253dacd75434efcf203f2ba0f\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"c4985e96ce1c49da88f652e9a2d8ac2bec4a8b01\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 226,\n \"title\": \"Propose N1/Q1/I1 implementation plans (docs only)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/226\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T02:51:40Z\",\n \"head_ref\": \"refs/pull/226/head\",\n \"head_sha\": \"ddfd6a2b67209a1b9b2ba7810cb10919c0bb9743\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"2147d5cb6566c301eaea3c65448bdda873093aea\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 229,\n \"title\": \"Propose the RDM phase plan (docs only)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/229\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T04:34:51Z\",\n \"head_ref\": \"refs/pull/229/head\",\n \"head_sha\": \"0384abc9aff3b30f23a4b95c6552e60071f5436d\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"9c9483ac54ff5355c86824ac94097e65e59dcb5d\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 232,\n \"title\": \"Pin the merged WP5 gate-sinking combination\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/232\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T06:50:22Z\",\n \"head_ref\": \"refs/pull/232/head\",\n \"head_sha\": \"1a4053810acde922b68cca802ae2c7dba4e26ad7\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"ae40cee917ca449fa8e75e6f2a665d94a18e3567\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 234,\n \"title\": \"Pin the merged I1 command-model and router combination\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/234\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T08:04:20Z\",\n \"head_ref\": \"refs/pull/234/head\",\n \"head_sha\": \"e793587677b73f9e0a8b7b200fb89cf002b71a5a\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"1f7217f5bb2657418845d6bec6ae28c56920ddc8\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 235,\n \"title\": \"Pin the merged I1 eval-v2 combination\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/235\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T08:44:41Z\",\n \"head_ref\": \"refs/pull/235/head\",\n \"head_sha\": \"9c1cdbb10fe6237b80f40cf5184f2e3ae3378643\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"eafe1e1fbf6874b58f851878c815c2c24e6f8db3\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 237,\n \"title\": \"Pin the merged superstep engine (Q1 WP1/WP2)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/237\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T09:12:58Z\",\n \"head_ref\": \"refs/pull/237/head\",\n \"head_sha\": \"8a1c84193922530c1489572ef6a1e136594bb1ef\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"3bf2441b05489dfb55b3146aa4e0c53068d34b82\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 240,\n \"title\": \"Pin the merged SQLite convergence (Q1 WP5)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/240\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T10:38:59Z\",\n \"head_ref\": \"refs/pull/240/head\",\n \"head_sha\": \"1a02139026f412c90799bb01fe023bec173a2888\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"ba36d47c2fbfdd0ba759fe251f87c403a5f7ffc7\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 242,\n \"title\": \"Take the backend intent slow lane and the I2 port pins (I2 WP3)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/242\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T11:58:02Z\",\n \"head_ref\": \"refs/pull/242/head\",\n \"head_sha\": \"733f3c74745ae46ae71a82b092867c7e4b45adf6\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"d308ed66196b67970de19ad657410daffcca3740\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Dev\",\n \"number\": 244,\n \"title\": \"Take the N2 implementation plan and open the N2 task\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/244\",\n \"state\": \"open\",\n \"merged\": false,\n \"merged_at\": null,\n \"head_ref\": \"feature/agent-stack-n2\",\n \"head_sha\": \"eae6992ae81335df5eb016223e2522fab952ae7f\",\n \"base_ref\": \"main\",\n \"merge_sha\": null,\n \"merge_in_fixed_main\": null,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 14,\n \"title\": \"界面重构与多用户认证设计提案 + HTML demo(方案 A/B/C + 认证)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/14\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T10:02:04Z\",\n \"head_ref\": \"refs/pull/14/head\",\n \"head_sha\": \"e601b253bc0d6a3fc762c7495d235b68f3910eb6\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"ab14f62534fc8831db694fa580a7d163a3cc19ff\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 27,\n \"title\": \"Propose card stream, artifact unification, and project inbox (D44-D52)\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/27\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-09-30T17:45:16Z\",\n \"head_ref\": \"feature/cardflow-future-plan\",\n \"head_sha\": \"4a698869521eaa60b2fba9bdb3196226691bf987\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"437af31118814463cc44d379f7269afd7add62b5\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 31,\n \"title\": \"Document the base extension roadmap and plugin contract v2\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/31\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T10:47:11Z\",\n \"head_ref\": \"feature/base-extension-roadmap\",\n \"head_sha\": \"a0da588f9035e132bcfd1dcc0ac1dacb62924776\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"f3a3a5deb48e5b1c6ceb1b666d71ed912606c49d\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 32,\n \"title\": \"Propose the agent harness and link it from the roadmap\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/32\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-01T12:43:26Z\",\n \"head_ref\": \"feature/agent-harness-p0\",\n \"head_sha\": \"a3f0b80759fa01094cb9ee26b2a17dba831317e2\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"357e3fdb246a8a8d562e63e01d5170673bf4dcc6\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 34,\n \"title\": \"Propose the agent stack audit and completion design\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/34\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-03T14:12:17Z\",\n \"head_ref\": \"refs/pull/34/head\",\n \"head_sha\": \"233dfb54ea1cd8e8085769832eef18fb3eaa04b7\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"76044b5895e8abe5bd1e3bf45ccfe3ea7edcdc42\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 39,\n \"title\": \"Restore the EXT-1 proposal and request EXT-5 host document parse\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/39\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-06T15:14:15Z\",\n \"head_ref\": \"refs/pull/39/head\",\n \"head_sha\": \"5825cd35f2cde87a737d2dacdd2e4a393063e3bc\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"e53c6bf177ee9bfa2ae85e1baa35378e122577e3\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 40,\n \"title\": \"Propose N1/Q1/I1 implementation plans for the agent stack\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/40\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T02:51:31Z\",\n \"head_ref\": \"feature/agent-stack-n1q1i1-plans\",\n \"head_sha\": \"54ead4197f844b9547a9275dbf9ba8ff639cb5e9\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"dd9c1ba558b9154a66e1d9bcab1d52dd09ad5a8e\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 41,\n \"title\": \"Propose the RDM phase plan: direction, invariants, and stage gates\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/41\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T04:34:51Z\",\n \"head_ref\": \"feature/rdm-phase-plan\",\n \"head_sha\": \"b8eaa1676f168ad64c437857e2607e2e213f6672\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"0551d003000107a511f26642e68a947680956fc6\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n },\n {\n \"repo\": \"Agent-System-Documents\",\n \"number\": 42,\n \"title\": \"Propose the N2 implementation plan: context, protocol, and tools\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/42\",\n \"state\": \"closed\",\n \"merged\": true,\n \"merged_at\": \"2026-10-07T12:38:28Z\",\n \"head_ref\": \"refs/pull/42/head\",\n \"head_sha\": \"96fd6599d1f2b60f44830ddae1b21185713269d9\",\n \"base_ref\": \"main\",\n \"merge_sha\": \"5542319a0474fd4e866b6daacb937b587c833ede\",\n \"merge_in_fixed_main\": true,\n \"reviews\": []\n }\n ],\n \"open_pull_requests\": {\n \"Agent-System-Dev\": [\n {\n \"number\": 244,\n \"head_ref\": \"feature/agent-stack-n2\",\n \"head_sha\": \"eae6992ae81335df5eb016223e2522fab952ae7f\",\n \"title\": \"Take the N2 implementation plan and open the N2 task\",\n \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/244\"\n }\n ],\n \"Agent-System-Documents\": []\n }\n}\n", "output_sha256": "07c6d381612ba0e2d0f8e600b60d2f7b9c0579a21c6a56ed853819f0291394c9", "receipt_sha256": "f4804a730e5dcc2f8bfba168f28be578c8704c6b101db940c64c483a34e0b85c" } diff --git a/docs/records/2026-10-07-planning-index-source.json b/docs/records/2026-10-07-planning-index-source.json index 346c94e..516476b 100644 --- a/docs/records/2026-10-07-planning-index-source.json +++ b/docs/records/2026-10-07-planning-index-source.json @@ -126,7 +126,7 @@ "repo": "Agent-System-Dev", "number": 12, "title": "Pin backend with the configuration pipe and documents with its design", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/12", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/12", "state": "closed", "merged": true, "merged_at": "2026-09-30T04:27:51Z", @@ -141,7 +141,7 @@ "repo": "Agent-System-Dev", "number": 14, "title": "Wire Agent-System-UI and Agent-Command into the Dev combo (T0)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/14", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/14", "state": "closed", "merged": true, "merged_at": "2026-09-30T06:11:54Z", @@ -156,7 +156,7 @@ "repo": "Agent-System-Dev", "number": 15, "title": "T1: pin contracts combo (core cards/commands, agent-command v0) and guard task-finish", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/15", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/15", "state": "closed", "merged": true, "merged_at": "2026-09-30T06:34:06Z", @@ -171,7 +171,7 @@ "repo": "Agent-System-Dev", "number": 19, "title": "T2: pin the inbox combo (cardsvc backend, ui components, frontend wiring)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/19", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/19", "state": "closed", "merged": true, "merged_at": "2026-09-30T07:36:09Z", @@ -186,7 +186,7 @@ "repo": "Agent-System-Dev", "number": 21, "title": "T3: pin the command-bus combo (cmdbus, InlineConfirmCard, symmetric entries)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/21", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/21", "state": "closed", "merged": true, "merged_at": "2026-09-30T07:56:27Z", @@ -201,7 +201,7 @@ "repo": "Agent-System-Dev", "number": 23, "title": "T4: pin the workspaces combo (OverlayHost, pure-inbox rail, Cmd shortcuts)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/23", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/23", "state": "closed", "merged": true, "merged_at": "2026-09-30T08:09:48Z", @@ -216,7 +216,7 @@ "repo": "Agent-System-Dev", "number": 25, "title": "T5: pin the polish combo (zero-page walkthrough, tidy, guide) - proposal complete", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/25", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/25", "state": "closed", "merged": true, "merged_at": "2026-09-30T08:18:34Z", @@ -231,7 +231,7 @@ "repo": "Agent-System-Dev", "number": 30, "title": "界面重构与多用户认证设计提案(documents gitlink + 任务卡)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/30", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/30", "state": "closed", "merged": true, "merged_at": "2026-09-30T10:02:29Z", @@ -246,7 +246,7 @@ "repo": "Agent-System-Dev", "number": 37, "title": "Task-centric sidebar R1 (option A): gitlinks + task card", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/37", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/37", "state": "closed", "merged": true, "merged_at": "2026-09-30T10:46:46Z", @@ -261,7 +261,7 @@ "repo": "Agent-System-Dev", "number": 43, "title": "Admin-issued accounts R2: gitlinks + task card", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/43", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/43", "state": "closed", "merged": true, "merged_at": "2026-09-30T11:17:31Z", @@ -276,7 +276,7 @@ "repo": "Agent-System-Dev", "number": 53, "title": "R4 visual refresh: gitlinks + task card", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/53", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/53", "state": "closed", "merged": true, "merged_at": "2026-09-30T12:44:52Z", @@ -291,7 +291,7 @@ "repo": "Agent-System-Dev", "number": 61, "title": "UI capability platform: gitlinks + .gitignore + task card", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/61", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/61", "state": "closed", "merged": true, "merged_at": "2026-09-30T14:23:41Z", @@ -306,7 +306,7 @@ "repo": "Agent-System-Dev", "number": 67, "title": "Deliver layered cross-session reading and pin the five module PRs", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/67", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/67", "state": "closed", "merged": true, "merged_at": "2026-09-30T15:27:41Z", @@ -321,7 +321,7 @@ "repo": "Agent-System-Dev", "number": 71, "title": "Deliver part-order fidelity, artifact downloads, file management, and the settings shell fix", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/71", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/71", "state": "closed", "merged": true, "merged_at": "2026-09-30T15:44:05Z", @@ -336,7 +336,7 @@ "repo": "Agent-System-Dev", "number": 77, "title": "Pin the file-preview proposal and restore the regressed module gitlinks", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/77", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/77", "state": "closed", "merged": true, "merged_at": "2026-09-30T16:06:43Z", @@ -351,7 +351,7 @@ "repo": "Agent-System-Dev", "number": 79, "title": "Agent-System-Dev: review fixes for chat-process-split-r1 (symlink, live interleaving, artifact process)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/79", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/79", "state": "closed", "merged": true, "merged_at": "2026-09-30T16:17:03Z", @@ -366,7 +366,7 @@ "repo": "Agent-System-Dev", "number": 90, "title": "Pin cardflow-r1 module combination (CF1: submit_card, card anchor, process split)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/90", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/90", "state": "closed", "merged": true, "merged_at": "2026-09-30T17:14:50Z", @@ -381,7 +381,7 @@ "repo": "Agent-System-Dev", "number": 94, "title": "Deliver file previews, dual-dock placement, and reserved delete/fs capabilities", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/94", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/94", "state": "closed", "merged": true, "merged_at": "2026-09-30T17:21:30Z", @@ -396,7 +396,7 @@ "repo": "Agent-System-Dev", "number": 100, "title": "Land card streaming (CF-S: card_begin/card_append/card_commit)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/100", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/100", "state": "closed", "merged": true, "merged_at": "2026-09-30T18:23:29Z", @@ -411,7 +411,7 @@ "repo": "Agent-System-Dev", "number": 103, "title": "Land artifact unification (CF-A: backfill symmetry + facade cards)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/103", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/103", "state": "closed", "merged": true, "merged_at": "2026-09-30T18:44:17Z", @@ -426,7 +426,7 @@ "repo": "Agent-System-Dev", "number": 105, "title": "Land cross-session project inbox (CF3: D48-D51)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/105", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/105", "state": "closed", "merged": true, "merged_at": "2026-09-30T19:20:29Z", @@ -441,7 +441,7 @@ "repo": "Agent-System-Dev", "number": 132, "title": "Pin the extension roadmap and downstream spike", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/132", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/132", "state": "closed", "merged": true, "merged_at": "2026-10-01T10:47:14Z", @@ -456,7 +456,7 @@ "repo": "Agent-System-Dev", "number": 134, "title": "Pin the harness proposal and native tool-call replay", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/134", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/134", "state": "closed", "merged": true, "merged_at": "2026-10-01T12:43:41Z", @@ -471,7 +471,7 @@ "repo": "Agent-System-Dev", "number": 136, "title": "Pin the harness turn loop across the three native checkouts", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/136", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/136", "state": "closed", "merged": true, "merged_at": "2026-10-01T13:42:01Z", @@ -486,7 +486,7 @@ "repo": "Agent-System-Dev", "number": 138, "title": "Pin backend to the final-turn result checks", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/138", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/138", "state": "closed", "merged": true, "merged_at": "2026-10-01T14:00:59Z", @@ -501,7 +501,7 @@ "repo": "Agent-System-Dev", "number": 140, "title": "Pin backend to the depth-one subagent loop", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/140", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/140", "state": "closed", "merged": true, "merged_at": "2026-10-01T14:51:02Z", @@ -516,7 +516,7 @@ "repo": "Agent-System-Dev", "number": 142, "title": "Pin P3b background subagents, review, and profile overrides", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/142", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/142", "state": "closed", "merged": true, "merged_at": "2026-10-01T15:51:57Z", @@ -531,7 +531,7 @@ "repo": "Agent-System-Dev", "number": 144, "title": "Add intent-to-workflow execution", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/144", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/144", "state": "closed", "merged": true, "merged_at": "2026-10-02T01:04:03Z", @@ -546,7 +546,7 @@ "repo": "Agent-System-Dev", "number": 151, "title": "Pin documents to the agent stack completion proposal", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/151", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/151", "state": "closed", "merged": true, "merged_at": "2026-10-03T14:15:52Z", @@ -561,7 +561,7 @@ "repo": "Agent-System-Dev", "number": 152, "title": "Check nested library pins and test the three agent libraries", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/152", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/152", "state": "closed", "merged": true, "merged_at": "2026-10-03T12:47:36Z", @@ -576,7 +576,7 @@ "repo": "Agent-System-Dev", "number": 154, "title": "Pin the R2 library and backend heads", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/154", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/154", "state": "closed", "merged": true, "merged_at": "2026-10-03T13:22:55Z", @@ -591,7 +591,7 @@ "repo": "Agent-System-Dev", "number": 156, "title": "Pin the D1 library and backend heads", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/156", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/156", "state": "closed", "merged": true, "merged_at": "2026-10-03T14:02:34Z", @@ -606,7 +606,7 @@ "repo": "Agent-System-Dev", "number": 167, "title": "Add an architecture edge ratchet and waiting-state tokens", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/167", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/167", "state": "closed", "merged": true, "merged_at": "2026-10-03T16:04:36Z", @@ -621,7 +621,7 @@ "repo": "Agent-System-Dev", "number": 207, "title": "Add EXT-1 inproc command handler and owner-scoped host handle (minimal set)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/207", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/207", "state": "closed", "merged": true, "merged_at": "2026-10-05T11:48:46Z", @@ -636,7 +636,7 @@ "repo": "Agent-System-Dev", "number": 209, "title": "Restore and complete the EXT-1 task card after branch recreation (verification round)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/209", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/209", "state": "closed", "merged": true, "merged_at": "2026-10-05T12:07:12Z", @@ -651,7 +651,7 @@ "repo": "Agent-System-Dev", "number": 222, "title": "Expose builtin document parsing through the host handle (EXT-5)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/222", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/222", "state": "closed", "merged": true, "merged_at": "2026-10-06T15:14:31Z", @@ -666,7 +666,7 @@ "repo": "Agent-System-Dev", "number": 224, "title": "Pin the wide-columns xlsx fix", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/224", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/224", "state": "closed", "merged": true, "merged_at": "2026-10-06T15:39:48Z", @@ -681,7 +681,7 @@ "repo": "Agent-System-Dev", "number": 226, "title": "Propose N1/Q1/I1 implementation plans (docs only)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/226", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/226", "state": "closed", "merged": true, "merged_at": "2026-10-07T02:51:40Z", @@ -696,7 +696,7 @@ "repo": "Agent-System-Dev", "number": 229, "title": "Propose the RDM phase plan (docs only)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/229", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/229", "state": "closed", "merged": true, "merged_at": "2026-10-07T04:34:51Z", @@ -711,7 +711,7 @@ "repo": "Agent-System-Dev", "number": 232, "title": "Pin the merged WP5 gate-sinking combination", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/232", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/232", "state": "closed", "merged": true, "merged_at": "2026-10-07T06:50:22Z", @@ -726,7 +726,7 @@ "repo": "Agent-System-Dev", "number": 234, "title": "Pin the merged I1 command-model and router combination", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/234", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/234", "state": "closed", "merged": true, "merged_at": "2026-10-07T08:04:20Z", @@ -741,7 +741,7 @@ "repo": "Agent-System-Dev", "number": 235, "title": "Pin the merged I1 eval-v2 combination", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/235", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/235", "state": "closed", "merged": true, "merged_at": "2026-10-07T08:44:41Z", @@ -756,7 +756,7 @@ "repo": "Agent-System-Dev", "number": 237, "title": "Pin the merged superstep engine (Q1 WP1/WP2)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/237", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/237", "state": "closed", "merged": true, "merged_at": "2026-10-07T09:12:58Z", @@ -771,7 +771,7 @@ "repo": "Agent-System-Dev", "number": 240, "title": "Pin the merged SQLite convergence (Q1 WP5)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/240", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/240", "state": "closed", "merged": true, "merged_at": "2026-10-07T10:38:59Z", @@ -786,7 +786,7 @@ "repo": "Agent-System-Dev", "number": 242, "title": "Take the backend intent slow lane and the I2 port pins (I2 WP3)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/242", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/242", "state": "closed", "merged": true, "merged_at": "2026-10-07T11:58:02Z", @@ -801,7 +801,7 @@ "repo": "Agent-System-Dev", "number": 244, "title": "Take the N2 implementation plan and open the N2 task", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/244", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/244", "state": "open", "merged": false, "merged_at": null, @@ -816,7 +816,7 @@ "repo": "Agent-System-Documents", "number": 14, "title": "界面重构与多用户认证设计提案 + HTML demo(方案 A/B/C + 认证)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/14", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/14", "state": "closed", "merged": true, "merged_at": "2026-09-30T10:02:04Z", @@ -831,7 +831,7 @@ "repo": "Agent-System-Documents", "number": 27, "title": "Propose card stream, artifact unification, and project inbox (D44-D52)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/27", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/27", "state": "closed", "merged": true, "merged_at": "2026-09-30T17:45:16Z", @@ -846,7 +846,7 @@ "repo": "Agent-System-Documents", "number": 31, "title": "Document the base extension roadmap and plugin contract v2", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/31", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/31", "state": "closed", "merged": true, "merged_at": "2026-10-01T10:47:11Z", @@ -861,7 +861,7 @@ "repo": "Agent-System-Documents", "number": 32, "title": "Propose the agent harness and link it from the roadmap", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/32", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/32", "state": "closed", "merged": true, "merged_at": "2026-10-01T12:43:26Z", @@ -876,7 +876,7 @@ "repo": "Agent-System-Documents", "number": 34, "title": "Propose the agent stack audit and completion design", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/34", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/34", "state": "closed", "merged": true, "merged_at": "2026-10-03T14:12:17Z", @@ -891,7 +891,7 @@ "repo": "Agent-System-Documents", "number": 39, "title": "Restore the EXT-1 proposal and request EXT-5 host document parse", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/39", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/39", "state": "closed", "merged": true, "merged_at": "2026-10-06T15:14:15Z", @@ -906,7 +906,7 @@ "repo": "Agent-System-Documents", "number": 40, "title": "Propose N1/Q1/I1 implementation plans for the agent stack", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/40", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/40", "state": "closed", "merged": true, "merged_at": "2026-10-07T02:51:31Z", @@ -921,7 +921,7 @@ "repo": "Agent-System-Documents", "number": 41, "title": "Propose the RDM phase plan: direction, invariants, and stage gates", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/41", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/41", "state": "closed", "merged": true, "merged_at": "2026-10-07T04:34:51Z", @@ -936,7 +936,7 @@ "repo": "Agent-System-Documents", "number": 42, "title": "Propose the N2 implementation plan: context, protocol, and tools", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/42", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/42", "state": "closed", "merged": true, "merged_at": "2026-10-07T12:38:28Z", @@ -955,7 +955,7 @@ "head_ref": "feature/agent-stack-n2", "head_sha": "eae6992ae81335df5eb016223e2522fab952ae7f", "title": "Take the N2 implementation plan and open the N2 task", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/244" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/244" } ], "Agent-System-Documents": [] diff --git a/docs/records/2026-10-11-collaboration-storage-audit-receipt.json b/docs/records/2026-10-11-collaboration-storage-audit-receipt.json index a2fb569..e35ce75 100644 --- a/docs/records/2026-10-11-collaboration-storage-audit-receipt.json +++ b/docs/records/2026-10-11-collaboration-storage-audit-receipt.json @@ -28,7 +28,7 @@ }, "after_error": null, "exit_code": 0, - "output": "SOURCE_PINS {\".\": {\"exit\": 0, \"stdout\": \"73c901fa341a3653d6e0826d0da3497507995482\"}, \"modules/backend\": {\"exit\": 0, \"stdout\": \"eda90ed310f37f7352e24a8096d932dbf320cd73\"}, \"modules/documents\": {\"exit\": 0, \"stdout\": \"9a46785ee0f19540c79f83b4e4544572b5217ac2\"}, \"deps/agent-native\": {\"exit\": 0, \"stdout\": \"c348441691e8bdab784a03aa9be64d53dacff341\"}, \"deps/agent-squad\": {\"exit\": 0, \"stdout\": \"490b0b2dfa1567cb16ff7a7230fd78e52bc2938e\"}}\nBREW_INSTALLED {\"exit\": 1, \"stdout\": \"pgvector 0.8.7\\npostgresql@18 18.6\\nredis 8.10.2\"}\nDEV_BINARY {\"exit\": 0, \"build\": [\"mod\\tagent-system-backend\\tv0.3.1-0.20261010101230-017b40f76156\", \"build\\tvcs.revision=017b40f76156905eabe8323ae2bfe800f47fb8bd\", \"build\\tvcs.time=2026-10-10T10:12:30Z\", \"build\\tvcs.modified=false\"]}\nDEV_RUNTIME {\"pid\": \"3490420\", \"exe\": \"/home/weichen/projects/Agent-System-Dev/runtime/dev/bin/agent-system\", \"dsn_env_set\": false, \"dsn_cli_set\": false, \"--addr\": \"0.0.0.0:8788\", \"--data\": \"/home/weichen/projects/Agent-System-Dev/runtime/dev/data\", \"--auth\": \"on\", \"open_database_files\": [\"/home/weichen/projects/Agent-System-Dev/runtime/dev/data/agent-system.db\", \"/home/weichen/projects/Agent-System-Dev/runtime/dev/data/agent-system.db-shm\", \"/home/weichen/projects/Agent-System-Dev/runtime/dev/data/agent-system.db-wal\"]}\nSOURCE modules/backend/internal/store/store.go:50: func OpenSQLite(path string) (*Store, error) {\nSOURCE modules/backend/internal/store/store.go:54: dsn := fmt.Sprintf(\"file:%s?_pragma=busy_timeout(5000)&_pragma=journal_mode(WAL)&_pragma=foreign_keys(1)\", path)\nSOURCE modules/backend/internal/store/store.go:60: db.SetMaxOpenConns(1)\nSOURCE modules/backend/internal/store/store.go:67: func OpenPostgres(dsn, artifactsDir string) (*Store, error) {\nSOURCE modules/backend/internal/store/store.go:72: db.SetMaxOpenConns(16)\nSOURCE modules/backend/internal/store/store.go:73: db.SetMaxIdleConns(8)\nSOURCE modules/backend/internal/store/store.go:79: func OpenPostgresWithBlobs(dsn, artifactsDir string, blobs blobstore.Store) (*Store, error) {\nSOURCE modules/backend/internal/store/store.go:84: db.SetMaxOpenConns(16)\nSOURCE modules/backend/internal/store/store.go:85: db.SetMaxIdleConns(8)\nSOURCE modules/backend/internal/app/app.go:110: st, err = store.OpenPostgres(opt.StorageDSN, artifacts)\nSOURCE modules/backend/internal/app/app.go:112: st, err = store.OpenSQLite(filepath.Join(opt.DataDir, \"agent-system.db\"))\nSOURCE modules/backend/internal/app/app.go:485: rl := ratelimit.NewRedis(addr, \"\", 0)\nSOURCE modules/backend/internal/app/app.go:521: listener, err := pgbus.Start(context.Background(), opt.StorageDSN, st, b)\nSOURCE modules/backend/internal/app/app.go:596: st, err = store.OpenPostgres(storageDSN, filepath.Join(dataDir, \"artifacts\"))\nSOURCE modules/backend/internal/app/app.go:598: st, err = store.OpenSQLite(filepath.Join(dataDir, \"agent-system.db\"))\nSOURCE modules/backend/internal/app/app.go:612: st, err = store.OpenPostgres(storageDSN, filepath.Join(dataDir, \"artifacts\"))\nSOURCE modules/backend/internal/app/app.go:614: st, err = store.OpenSQLite(filepath.Join(dataDir, \"agent-system.db\"))\nSOURCE modules/backend/internal/app/app.go:628: st, err = store.OpenPostgres(storageDSN, filepath.Join(dataDir, \"artifacts\"))\nSOURCE modules/backend/internal/app/app.go:630: st, err = store.OpenSQLite(filepath.Join(dataDir, \"agent-system.db\"))\nSOURCE modules/backend/internal/app/app.go:647: st, err = store.OpenPostgres(storageDSN, filepath.Join(dataDir, \"artifacts\"))\nSOURCE modules/backend/internal/app/app.go:649: st, err = store.OpenSQLite(filepath.Join(dataDir, \"agent-system.db\"))\nSOURCE modules/backend/internal/pgbus/pgbus.go:2: // 落盘事务提交后 NOTIFY agent_events '|';每实例一个 LISTEN 连接,\nSOURCE modules/backend/internal/pgbus/pgbus.go:36: payload := conversationID + \"|\" + strconv.FormatInt(evs[len(evs)-1].Seq, 10)\nSOURCE modules/backend/internal/pgbus/pgbus.go:52: conn, err := pgx.Connect(ctx, dsn)\nSOURCE modules/backend/internal/pgbus/pgbus.go:68: n, err := l.conn.WaitForNotification(ctx)\nSOURCE modules/backend/internal/pgbus/pgbus.go:74: time.Sleep(time.Second)\nSOURCE modules/backend/internal/pgbus/pgbus.go:81: ev, err := l.st.EventAt(conv, seq)\nSOURCE modules/backend/internal/ratelimit/ratelimit.go:69: rkey := \"rl:\" + key + \":\" + time.Now().UTC().Truncate(window).Format(\"150405\")\nSOURCE modules/backend/internal/ratelimit/ratelimit.go:70: n, err := r.rdb.Incr(ctx, rkey).Result()\nSOURCE modules/backend/internal/ratelimit/ratelimit.go:72: return true // Redis 故障不阻断请求(限流是柔性行为,放行并记日志于调用方)\nSOURCE modules/backend/internal/ratelimit/ratelimit.go:75: r.rdb.Expire(ctx, rkey, window+time.Second)\nSOURCE modules/backend/internal/store/migrate.go:186: `CREATE TABLE IF NOT EXISTS knowledge_vectors (doc_id TEXT PRIMARY KEY, owner TEXT NOT NULL DEFAULT '', ref TEXT NOT NULL DEFAULT '', dim INTEGER NOT NULL, vec BYTEA NOT NULL, created_at TEXT NOT NULL)`,\nSOURCE modules/backend/internal/store/migrate.go:522: func (s *Store) migrate() error {\nSOURCE modules/backend/internal/store/migrate.go:552: if err := s.execInTx(stmts); err != nil {\nSOURCE modules/backend/internal/store/migrate.go:555: if _, err := s.db.Exec(s.q(`INSERT INTO schema_migrations(version,name,applied_at) VALUES(?,?,?)`), m.version, m.name, nowISO()); err != nil {\nSOURCE modules/backend/internal/store/migrate.go:618: if err := s.execInTx(stmts); err != nil {\nSOURCE modules/backend/internal/store/vectors.go:13: // 存储形态双档一致:BLOB(little-endian float32 数组),检索为进程内余弦扫描。\nSOURCE modules/backend/internal/store/vectors.go:74: WHERE (v.owner<>? AND v.owner<>'') AND v.dim=?`), requester, len(vec))\nSOURCE modules/backend/internal/store/vectors.go:102: sim := cosine(vec, decodeVector(blob))\nSOURCE modules/backend/internal/store/vectors.go:126: WHERE (v.owner=? OR v.owner='') AND v.dim=?`), owner, len(vec))\nSOURCE modules/backend/internal/store/vectors.go:148: sim := cosine(vec, decodeVector(blob))\nSOURCE modules/backend/internal/runmgr/runmgr.go:72: convActive map[string]bool // conversationID → 有在途 run\nSOURCE modules/backend/internal/runmgr/runmgr.go:125: active: map[string]*runHandle{}, convActive: map[string]bool{},\nSOURCE modules/backend/internal/runmgr/runmgr.go:1041: if err := m.claimConversation(conv.ID); err != nil {\nSOURCE modules/backend/internal/runmgr/runmgr.go:1050: if err := m.claimConversation(conv.ID); err != nil {\nSOURCE modules/backend/internal/runmgr/runmgr.go:1084: return m.claimConversation(conversationID)\nSOURCE modules/backend/internal/runmgr/runmgr.go:1113: func (m *Manager) claimConversation(conversationID string) error {\nSOURCE modules/backend/internal/runmgr/runmgr.go:1116: if m.convActive == nil {\nSOURCE modules/backend/internal/runmgr/runmgr.go:1117: m.convActive = map[string]bool{}\nSOURCE modules/backend/internal/runmgr/runmgr.go:1119: if m.convActive[conversationID] {\nSOURCE modules/backend/internal/runmgr/runmgr.go:1122: m.convActive[conversationID] = true\nSOURCE modules/backend/internal/runmgr/runmgr.go:1155: delete(m.convActive, conversationID)\nSOURCE modules/backend/internal/runmgr/runmgr.go:1327: func (m *Manager) CancelRun(runID string) error {\nSOURCE modules/backend/internal/runmgr/runmgr.go:1366: func (m *Manager) ResolveHITL(owner, cardID string, resp core.HITLResponse) (pivotText string, pivoted bool, err error) {\nSOURCE modules/backend/internal/runmgr/runmgr.go:1726: busy := m.convActive != nil && m.convActive[convID]\nSOURCE modules/backend/internal/runmgr/runmgr.go:1784: if err := m.claimConversation(convID); err != nil {\nSOURCE .gitea/workflows/ci.yaml:174: run: make test\nSOURCE .gitea/workflows/ci.yaml:176: run: make build\nAPI_VERSION {\"http\": 200, \"version\": \"1.27.3\"}\nAPI_IDENTITY {\"http\": 200}\nOPEN_PRS {\"repo\": \"Agent-System-Dev\", \"items\": []}\nOPEN_PRS {\"repo\": \"Agent-System-Backend\", \"items\": [{\"number\": 135, \"title\": \"Add the S0 task workspace overlay: frozen base, private upper, CAS apply\", \"head\": \"01fd3b6fd442d0beada464eed0f349f1e26f1c00\", \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/135\"}]}\nOPEN_PRS {\"repo\": \"Agent-System-Documents\", \"items\": []}\nOPEN_PRS {\"repo\": \"Agent-Squad\", \"items\": []}\nOPEN_PRS {\"repo\": \"Agent-Native\", \"items\": []}\n", + "output": "SOURCE_PINS {\".\": {\"exit\": 0, \"stdout\": \"73c901fa341a3653d6e0826d0da3497507995482\"}, \"modules/backend\": {\"exit\": 0, \"stdout\": \"eda90ed310f37f7352e24a8096d932dbf320cd73\"}, \"modules/documents\": {\"exit\": 0, \"stdout\": \"9a46785ee0f19540c79f83b4e4544572b5217ac2\"}, \"deps/agent-native\": {\"exit\": 0, \"stdout\": \"c348441691e8bdab784a03aa9be64d53dacff341\"}, \"deps/agent-squad\": {\"exit\": 0, \"stdout\": \"490b0b2dfa1567cb16ff7a7230fd78e52bc2938e\"}}\nBREW_INSTALLED {\"exit\": 1, \"stdout\": \"pgvector 0.8.7\\npostgresql@18 18.6\\nredis 8.10.2\"}\nDEV_BINARY {\"exit\": 0, \"build\": [\"mod\\tagent-system-backend\\tv0.3.1-0.20261010101230-017b40f76156\", \"build\\tvcs.revision=017b40f76156905eabe8323ae2bfe800f47fb8bd\", \"build\\tvcs.time=2026-10-10T10:12:30Z\", \"build\\tvcs.modified=false\"]}\nDEV_RUNTIME {\"pid\": \"3490420\", \"exe\": \"/home/weichen/projects/Agent-System-Dev/runtime/dev/bin/agent-system\", \"dsn_env_set\": false, \"dsn_cli_set\": false, \"--addr\": \"0.0.0.0:8788\", \"--data\": \"/home/weichen/projects/Agent-System-Dev/runtime/dev/data\", \"--auth\": \"on\", \"open_database_files\": [\"/home/weichen/projects/Agent-System-Dev/runtime/dev/data/agent-system.db\", \"/home/weichen/projects/Agent-System-Dev/runtime/dev/data/agent-system.db-shm\", \"/home/weichen/projects/Agent-System-Dev/runtime/dev/data/agent-system.db-wal\"]}\nSOURCE modules/backend/internal/store/store.go:50: func OpenSQLite(path string) (*Store, error) {\nSOURCE modules/backend/internal/store/store.go:54: dsn := fmt.Sprintf(\"file:%s?_pragma=busy_timeout(5000)&_pragma=journal_mode(WAL)&_pragma=foreign_keys(1)\", path)\nSOURCE modules/backend/internal/store/store.go:60: db.SetMaxOpenConns(1)\nSOURCE modules/backend/internal/store/store.go:67: func OpenPostgres(dsn, artifactsDir string) (*Store, error) {\nSOURCE modules/backend/internal/store/store.go:72: db.SetMaxOpenConns(16)\nSOURCE modules/backend/internal/store/store.go:73: db.SetMaxIdleConns(8)\nSOURCE modules/backend/internal/store/store.go:79: func OpenPostgresWithBlobs(dsn, artifactsDir string, blobs blobstore.Store) (*Store, error) {\nSOURCE modules/backend/internal/store/store.go:84: db.SetMaxOpenConns(16)\nSOURCE modules/backend/internal/store/store.go:85: db.SetMaxIdleConns(8)\nSOURCE modules/backend/internal/app/app.go:110: st, err = store.OpenPostgres(opt.StorageDSN, artifacts)\nSOURCE modules/backend/internal/app/app.go:112: st, err = store.OpenSQLite(filepath.Join(opt.DataDir, \"agent-system.db\"))\nSOURCE modules/backend/internal/app/app.go:485: rl := ratelimit.NewRedis(addr, \"\", 0)\nSOURCE modules/backend/internal/app/app.go:521: listener, err := pgbus.Start(context.Background(), opt.StorageDSN, st, b)\nSOURCE modules/backend/internal/app/app.go:596: st, err = store.OpenPostgres(storageDSN, filepath.Join(dataDir, \"artifacts\"))\nSOURCE modules/backend/internal/app/app.go:598: st, err = store.OpenSQLite(filepath.Join(dataDir, \"agent-system.db\"))\nSOURCE modules/backend/internal/app/app.go:612: st, err = store.OpenPostgres(storageDSN, filepath.Join(dataDir, \"artifacts\"))\nSOURCE modules/backend/internal/app/app.go:614: st, err = store.OpenSQLite(filepath.Join(dataDir, \"agent-system.db\"))\nSOURCE modules/backend/internal/app/app.go:628: st, err = store.OpenPostgres(storageDSN, filepath.Join(dataDir, \"artifacts\"))\nSOURCE modules/backend/internal/app/app.go:630: st, err = store.OpenSQLite(filepath.Join(dataDir, \"agent-system.db\"))\nSOURCE modules/backend/internal/app/app.go:647: st, err = store.OpenPostgres(storageDSN, filepath.Join(dataDir, \"artifacts\"))\nSOURCE modules/backend/internal/app/app.go:649: st, err = store.OpenSQLite(filepath.Join(dataDir, \"agent-system.db\"))\nSOURCE modules/backend/internal/pgbus/pgbus.go:2: // 落盘事务提交后 NOTIFY agent_events '|';每实例一个 LISTEN 连接,\nSOURCE modules/backend/internal/pgbus/pgbus.go:36: payload := conversationID + \"|\" + strconv.FormatInt(evs[len(evs)-1].Seq, 10)\nSOURCE modules/backend/internal/pgbus/pgbus.go:52: conn, err := pgx.Connect(ctx, dsn)\nSOURCE modules/backend/internal/pgbus/pgbus.go:68: n, err := l.conn.WaitForNotification(ctx)\nSOURCE modules/backend/internal/pgbus/pgbus.go:74: time.Sleep(time.Second)\nSOURCE modules/backend/internal/pgbus/pgbus.go:81: ev, err := l.st.EventAt(conv, seq)\nSOURCE modules/backend/internal/ratelimit/ratelimit.go:69: rkey := \"rl:\" + key + \":\" + time.Now().UTC().Truncate(window).Format(\"150405\")\nSOURCE modules/backend/internal/ratelimit/ratelimit.go:70: n, err := r.rdb.Incr(ctx, rkey).Result()\nSOURCE modules/backend/internal/ratelimit/ratelimit.go:72: return true // Redis 故障不阻断请求(限流是柔性行为,放行并记日志于调用方)\nSOURCE modules/backend/internal/ratelimit/ratelimit.go:75: r.rdb.Expire(ctx, rkey, window+time.Second)\nSOURCE modules/backend/internal/store/migrate.go:186: `CREATE TABLE IF NOT EXISTS knowledge_vectors (doc_id TEXT PRIMARY KEY, owner TEXT NOT NULL DEFAULT '', ref TEXT NOT NULL DEFAULT '', dim INTEGER NOT NULL, vec BYTEA NOT NULL, created_at TEXT NOT NULL)`,\nSOURCE modules/backend/internal/store/migrate.go:522: func (s *Store) migrate() error {\nSOURCE modules/backend/internal/store/migrate.go:552: if err := s.execInTx(stmts); err != nil {\nSOURCE modules/backend/internal/store/migrate.go:555: if _, err := s.db.Exec(s.q(`INSERT INTO schema_migrations(version,name,applied_at) VALUES(?,?,?)`), m.version, m.name, nowISO()); err != nil {\nSOURCE modules/backend/internal/store/migrate.go:618: if err := s.execInTx(stmts); err != nil {\nSOURCE modules/backend/internal/store/vectors.go:13: // 存储形态双档一致:BLOB(little-endian float32 数组),检索为进程内余弦扫描。\nSOURCE modules/backend/internal/store/vectors.go:74: WHERE (v.owner<>? AND v.owner<>'') AND v.dim=?`), requester, len(vec))\nSOURCE modules/backend/internal/store/vectors.go:102: sim := cosine(vec, decodeVector(blob))\nSOURCE modules/backend/internal/store/vectors.go:126: WHERE (v.owner=? OR v.owner='') AND v.dim=?`), owner, len(vec))\nSOURCE modules/backend/internal/store/vectors.go:148: sim := cosine(vec, decodeVector(blob))\nSOURCE modules/backend/internal/runmgr/runmgr.go:72: convActive map[string]bool // conversationID → 有在途 run\nSOURCE modules/backend/internal/runmgr/runmgr.go:125: active: map[string]*runHandle{}, convActive: map[string]bool{},\nSOURCE modules/backend/internal/runmgr/runmgr.go:1041: if err := m.claimConversation(conv.ID); err != nil {\nSOURCE modules/backend/internal/runmgr/runmgr.go:1050: if err := m.claimConversation(conv.ID); err != nil {\nSOURCE modules/backend/internal/runmgr/runmgr.go:1084: return m.claimConversation(conversationID)\nSOURCE modules/backend/internal/runmgr/runmgr.go:1113: func (m *Manager) claimConversation(conversationID string) error {\nSOURCE modules/backend/internal/runmgr/runmgr.go:1116: if m.convActive == nil {\nSOURCE modules/backend/internal/runmgr/runmgr.go:1117: m.convActive = map[string]bool{}\nSOURCE modules/backend/internal/runmgr/runmgr.go:1119: if m.convActive[conversationID] {\nSOURCE modules/backend/internal/runmgr/runmgr.go:1122: m.convActive[conversationID] = true\nSOURCE modules/backend/internal/runmgr/runmgr.go:1155: delete(m.convActive, conversationID)\nSOURCE modules/backend/internal/runmgr/runmgr.go:1327: func (m *Manager) CancelRun(runID string) error {\nSOURCE modules/backend/internal/runmgr/runmgr.go:1366: func (m *Manager) ResolveHITL(owner, cardID string, resp core.HITLResponse) (pivotText string, pivoted bool, err error) {\nSOURCE modules/backend/internal/runmgr/runmgr.go:1726: busy := m.convActive != nil && m.convActive[convID]\nSOURCE modules/backend/internal/runmgr/runmgr.go:1784: if err := m.claimConversation(convID); err != nil {\nSOURCE .gitea/workflows/ci.yaml:174: run: make test\nSOURCE .gitea/workflows/ci.yaml:176: run: make build\nAPI_VERSION {\"http\": 200, \"version\": \"1.27.3\"}\nAPI_IDENTITY {\"http\": 200}\nOPEN_PRS {\"repo\": \"Agent-System-Dev\", \"items\": []}\nOPEN_PRS {\"repo\": \"Agent-System-Backend\", \"items\": [{\"number\": 135, \"title\": \"Add the S0 task workspace overlay: frozen base, private upper, CAS apply\", \"head\": \"01fd3b6fd442d0beada464eed0f349f1e26f1c00\", \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/135\"}]}\nOPEN_PRS {\"repo\": \"Agent-System-Documents\", \"items\": []}\nOPEN_PRS {\"repo\": \"Agent-Squad\", \"items\": []}\nOPEN_PRS {\"repo\": \"Agent-Native\", \"items\": []}\n", "output_sha256": "39941e4f64f68e85e9abaa741d2e7242e37502fe9e93da3d7d2500bc4c5f6aad", "receipt_sha256": "6a281c91d48defee8e8a77489ddaf977b8c1ccc5350fd378a8225e207ab94088" } diff --git a/docs/records/2026-10-11-rdm-final-target-source-receipt.json b/docs/records/2026-10-11-rdm-final-target-source-receipt.json index 34ff9fb..9284272 100644 --- a/docs/records/2026-10-11-rdm-final-target-source-receipt.json +++ b/docs/records/2026-10-11-rdm-final-target-source-receipt.json @@ -28,7 +28,7 @@ }, "after_error": null, "exit_code": 0, - "output": "{\"repo\": \"Dev\", \"sha\": \"80a518628c526fd6ddece4abeb707ab4bb0b5618\"}\n{\"repo\": \"Backend\", \"sha\": \"c8d66ca3cd21b055a8605e9eb4d8e525037618a6\"}\n{\"repo\": \"Frontend\", \"sha\": \"3ed10e122042a64180fb24a42d9cc6438cd2d2d6\"}\n{\"repo\": \"RDM\", \"sha\": \"d8d7e7436ca501e3ae03bbea9cc60405c74b9afc\"}\n{\"repo\": \"RDM-Backend-pin\", \"sha\": \"421fee81c314c05530bc809e224b5d0818ec3472\"}\n{\"repo\": \"RDM-Frontend-pin\", \"sha\": \"84b73ab32848e623d0a0ab7ade552784dca8cf3c\"}\n{\"UR\": 34, \"SR\": 68, \"F\": 10, \"SR_IDs\": [\"SR-A1\", \"SR-A2\", \"SR-A3\", \"SR-A4\", \"SR-A5\", \"SR-B1\", \"SR-B10\", \"SR-B11\", \"SR-B12\", \"SR-B2\", \"SR-B3\", \"SR-B4\", \"SR-B5\", \"SR-B6\", \"SR-B7\", \"SR-B8\", \"SR-B9\", \"SR-C1\", \"SR-C2\", \"SR-C3\", \"SR-C4\", \"SR-C5\", \"SR-C6\", \"SR-C7\", \"SR-C8\", \"SR-D1\", \"SR-D10\", \"SR-D11\", \"SR-D2\", \"SR-D3\", \"SR-D4\", \"SR-D5\", \"SR-D6\", \"SR-D7\", \"SR-D8\", \"SR-D9\", \"SR-E1\", \"SR-E2\", \"SR-E3\", \"SR-E4\", \"SR-E5\", \"SR-E6\", \"SR-F1\", \"SR-F2\", \"SR-F3\", \"SR-F4\", \"SR-F5\", \"SR-G1\", \"SR-G10\", \"SR-G11\", \"SR-G12\", \"SR-G13\", \"SR-G14\", \"SR-G15\", \"SR-G16\", \"SR-G2\", \"SR-G3\", \"SR-G4\", \"SR-G5\", \"SR-G6\", \"SR-G7\", \"SR-G8\", \"SR-G9\", \"SR-N1\", \"SR-N2\", \"SR-N3\", \"SR-N4\", \"SR-N5\"]}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/docs/requirements/01-用户需求与系统需求.md\", \"sha256\": \"281475d7d4267b0bc6803a9448eedf3cf4f28bff89e6a5a596c1cb32302877d9\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/docs/requirements/README.md\", \"sha256\": \"ea960c638d570100ec6c77c8853e884434ca6b9a7048b251c9dc428c17aaafa1\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/internal/projects/projects.go\", \"sha256\": \"5635818468c48ca316d8311fb189cbf597b64ffac42da2d150f742b72a83ff55\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/internal/perms/perms.go\", \"sha256\": \"2a2f228bdbd75c63b7609fdb06a115cee49fda7ad44272e3c2a2f8a7ee3e505a\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/internal/rdmapp/runtime.go\", \"sha256\": \"652dd6e9ec095b5eeba17ed0a5b6fb06fd534cd54903c593769eb9d4f8bef611\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/plugins/rdm/plugin.go\", \"sha256\": \"94a48f3f38fd14f54b75a4f69edfb362e92c699c940fd255b65a63b5c9d09de8\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/web/app.js\", \"sha256\": \"9619933a6d3e3465af1993df8a1276e0ffa4eb35a1fafea2a6c272ab2f29c478\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/internal/rdmapp/regcheck.go\", \"sha256\": \"93429ecb7c38a58bc564d40a2784741fcd59195f4c2e3b1cd51f8f6ce83b59b0\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/internal/rdmapp/slowledger.go\", \"sha256\": \"a5e821eb8427fce034d8ef208fd4e628af8842fed4174b9cad004957bba480b6\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/internal/domain/compliance.go\", \"sha256\": \"3f118f21e0c4d58ca8584310e329615010b9b21a860d522f0e9b9e4fc1c015e0\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/docs/proposals/2026-10-09-V22-review-and-implementation-plan.md\", \"sha256\": \"d53d8dcbb4b4944c3da847e6d7c545a9ddf9ef6d315c18f8ef9ac33901255957\"}\n{\"source\": \"/home/weichen/projects/Agent-System-Dev/.tmp/Discussion-Meetings/2026-10-08_12-24/.tmp/user-supplement.txt\", \"sha256\": \"fde9ed9ae4ef2b10760905552f3135fd35b423b5fd0ba0db422e091a29f7cb9b\"}\n{\"source\": \"/home/weichen/projects/Agent-System-Dev/.tmp/Discussion-Meetings/2026-10-08_12-24/.tmp/user-design-ideas.txt\", \"sha256\": \"74db1fb873842e04c767943a609c4269cd6521ca787c8ec5dc3a5766e78f294f\"}\n{\"process_metadata_only\": true, \"pid\": 231933, \"binary\": \"/tmp/entry-cmp/agent-system\", \"cwd\": \"/tmp/entry-cmp\", \"build\": [\"path\\tagent-system-backend/cmd/agent-system\", \"mod\\tagent-system-backend\\tv0.0.0-20261001093453-268f4a9abf9f\", \"build\\tvcs.revision=268f4a9abf9fdf23de487cb7a2edbfbaa60ff6af\", \"build\\tvcs.modified=false\"]}\n{\"process_metadata_only\": true, \"pid\": 2784320, \"binary\": \"/tmp/rdm-replay-demo/bin/agent-system-rdm (deleted)\", \"cwd\": \"/tmp/rdm-replay-demo (deleted)\", \"build\": [\"path\\tagent-system-rdm\", \"mod\\tagent-system-rdm\\tv0.0.0-20261006013139-7d4069f93be3\", \"build\\tvcs.revision=7d4069f93be358f1ba3bf6eb13b5ada5fcf43c61\", \"build\\tvcs.modified=false\"]}\n{\"process_metadata_only\": true, \"pid\": 2975978, \"binary\": \"/home/weichen/projects/Agent-System-Dev/runtime/dev/bin/agent-system\", \"cwd\": \"/home/weichen/projects/Agent-System-Dev\", \"build\": [\"path\\tagent-system-backend/cmd/agent-system\", \"mod\\tagent-system-backend\\tv0.3.1-0.20261011081214-c8d66ca3cd21\", \"build\\tvcs.revision=c8d66ca3cd21b055a8605e9eb4d8e525037618a6\", \"build\\tvcs.modified=false\"]}\n{\"process_metadata_only\": true, \"pid\": 3096018, \"binary\": \"/home/weichen/projects/Agent-System-RDM-wt-feature-project-init/bin/agent-system-rdm (deleted)\", \"cwd\": \"/home/weichen/projects/Agent-System-RDM-wt-feature-project-init (deleted)\", \"build\": [\"path\\tagent-system-rdm\", \"mod\\tagent-system-rdm\\tv0.1.1-0.20261006035203-f37a5b35a87e+dirty\", \"build\\tvcs.revision=f37a5b35a87e7c38bf52835d88a8529e5d023f65\", \"build\\tvcs.modified=true\"]}\n{\"api_version\": {\"version\": \"1.27.3\"}}\n{\"repo\": \"Agent-System-Dev\", \"open_prs\": [{\"number\": 337, \"title\": \"U4: storage-migrate tool, switch/drill runbook, baseline ratchet (pin #144/#145/#65, core 452daf3)\", \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/337\", \"head\": \"b8a510d3746c4898f0e679597385939cc76a66e8\"}, {\"number\": 336, \"title\": \"Land Generative UI U2: Surface contract, activation guard, persistence (core #25, backend #143, mirrors)\", \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/336\", \"head\": \"f71bef53d46c5bb7fca4b5a885bc98b0a7b906e8\"}, {\"number\": 317, \"title\": \"Align the svc.sh startup precheck with binary auth semantics and keep the reused DSN\", \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/317\", \"head\": \"66962a517c99e4e6b955fd4034514ed363117571\"}]}\n{\"repo\": \"Agent-System-Documents\", \"open_prs\": []}\n{\"repo\": \"Agent-System-RDM\", \"open_prs\": []}\n{\"repo\": \"Agent-System-Backend\", \"open_prs\": []}\nNOT_RUN: business tests, real model tasks, browser acceptance, business database access, migrations and deployment\n", + "output": "{\"repo\": \"Dev\", \"sha\": \"80a518628c526fd6ddece4abeb707ab4bb0b5618\"}\n{\"repo\": \"Backend\", \"sha\": \"c8d66ca3cd21b055a8605e9eb4d8e525037618a6\"}\n{\"repo\": \"Frontend\", \"sha\": \"3ed10e122042a64180fb24a42d9cc6438cd2d2d6\"}\n{\"repo\": \"RDM\", \"sha\": \"d8d7e7436ca501e3ae03bbea9cc60405c74b9afc\"}\n{\"repo\": \"RDM-Backend-pin\", \"sha\": \"421fee81c314c05530bc809e224b5d0818ec3472\"}\n{\"repo\": \"RDM-Frontend-pin\", \"sha\": \"84b73ab32848e623d0a0ab7ade552784dca8cf3c\"}\n{\"UR\": 34, \"SR\": 68, \"F\": 10, \"SR_IDs\": [\"SR-A1\", \"SR-A2\", \"SR-A3\", \"SR-A4\", \"SR-A5\", \"SR-B1\", \"SR-B10\", \"SR-B11\", \"SR-B12\", \"SR-B2\", \"SR-B3\", \"SR-B4\", \"SR-B5\", \"SR-B6\", \"SR-B7\", \"SR-B8\", \"SR-B9\", \"SR-C1\", \"SR-C2\", \"SR-C3\", \"SR-C4\", \"SR-C5\", \"SR-C6\", \"SR-C7\", \"SR-C8\", \"SR-D1\", \"SR-D10\", \"SR-D11\", \"SR-D2\", \"SR-D3\", \"SR-D4\", \"SR-D5\", \"SR-D6\", \"SR-D7\", \"SR-D8\", \"SR-D9\", \"SR-E1\", \"SR-E2\", \"SR-E3\", \"SR-E4\", \"SR-E5\", \"SR-E6\", \"SR-F1\", \"SR-F2\", \"SR-F3\", \"SR-F4\", \"SR-F5\", \"SR-G1\", \"SR-G10\", \"SR-G11\", \"SR-G12\", \"SR-G13\", \"SR-G14\", \"SR-G15\", \"SR-G16\", \"SR-G2\", \"SR-G3\", \"SR-G4\", \"SR-G5\", \"SR-G6\", \"SR-G7\", \"SR-G8\", \"SR-G9\", \"SR-N1\", \"SR-N2\", \"SR-N3\", \"SR-N4\", \"SR-N5\"]}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/docs/requirements/01-用户需求与系统需求.md\", \"sha256\": \"281475d7d4267b0bc6803a9448eedf3cf4f28bff89e6a5a596c1cb32302877d9\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/docs/requirements/README.md\", \"sha256\": \"ea960c638d570100ec6c77c8853e884434ca6b9a7048b251c9dc428c17aaafa1\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/internal/projects/projects.go\", \"sha256\": \"5635818468c48ca316d8311fb189cbf597b64ffac42da2d150f742b72a83ff55\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/internal/perms/perms.go\", \"sha256\": \"2a2f228bdbd75c63b7609fdb06a115cee49fda7ad44272e3c2a2f8a7ee3e505a\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/internal/rdmapp/runtime.go\", \"sha256\": \"652dd6e9ec095b5eeba17ed0a5b6fb06fd534cd54903c593769eb9d4f8bef611\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/plugins/rdm/plugin.go\", \"sha256\": \"94a48f3f38fd14f54b75a4f69edfb362e92c699c940fd255b65a63b5c9d09de8\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/web/app.js\", \"sha256\": \"9619933a6d3e3465af1993df8a1276e0ffa4eb35a1fafea2a6c272ab2f29c478\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/internal/rdmapp/regcheck.go\", \"sha256\": \"93429ecb7c38a58bc564d40a2784741fcd59195f4c2e3b1cd51f8f6ce83b59b0\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/internal/rdmapp/slowledger.go\", \"sha256\": \"a5e821eb8427fce034d8ef208fd4e628af8842fed4174b9cad004957bba480b6\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/internal/domain/compliance.go\", \"sha256\": \"3f118f21e0c4d58ca8584310e329615010b9b21a860d522f0e9b9e4fc1c015e0\"}\n{\"source\": \"/home/weichen/projects/Agent-System-RDM/docs/proposals/2026-10-09-V22-review-and-implementation-plan.md\", \"sha256\": \"d53d8dcbb4b4944c3da847e6d7c545a9ddf9ef6d315c18f8ef9ac33901255957\"}\n{\"source\": \"/home/weichen/projects/Agent-System-Dev/.tmp/Discussion-Meetings/2026-10-08_12-24/.tmp/user-supplement.txt\", \"sha256\": \"fde9ed9ae4ef2b10760905552f3135fd35b423b5fd0ba0db422e091a29f7cb9b\"}\n{\"source\": \"/home/weichen/projects/Agent-System-Dev/.tmp/Discussion-Meetings/2026-10-08_12-24/.tmp/user-design-ideas.txt\", \"sha256\": \"74db1fb873842e04c767943a609c4269cd6521ca787c8ec5dc3a5766e78f294f\"}\n{\"process_metadata_only\": true, \"pid\": 231933, \"binary\": \"/tmp/entry-cmp/agent-system\", \"cwd\": \"/tmp/entry-cmp\", \"build\": [\"path\\tagent-system-backend/cmd/agent-system\", \"mod\\tagent-system-backend\\tv0.0.0-20261001093453-268f4a9abf9f\", \"build\\tvcs.revision=268f4a9abf9fdf23de487cb7a2edbfbaa60ff6af\", \"build\\tvcs.modified=false\"]}\n{\"process_metadata_only\": true, \"pid\": 2784320, \"binary\": \"/tmp/rdm-replay-demo/bin/agent-system-rdm (deleted)\", \"cwd\": \"/tmp/rdm-replay-demo (deleted)\", \"build\": [\"path\\tagent-system-rdm\", \"mod\\tagent-system-rdm\\tv0.0.0-20261006013139-7d4069f93be3\", \"build\\tvcs.revision=7d4069f93be358f1ba3bf6eb13b5ada5fcf43c61\", \"build\\tvcs.modified=false\"]}\n{\"process_metadata_only\": true, \"pid\": 2975978, \"binary\": \"/home/weichen/projects/Agent-System-Dev/runtime/dev/bin/agent-system\", \"cwd\": \"/home/weichen/projects/Agent-System-Dev\", \"build\": [\"path\\tagent-system-backend/cmd/agent-system\", \"mod\\tagent-system-backend\\tv0.3.1-0.20261011081214-c8d66ca3cd21\", \"build\\tvcs.revision=c8d66ca3cd21b055a8605e9eb4d8e525037618a6\", \"build\\tvcs.modified=false\"]}\n{\"process_metadata_only\": true, \"pid\": 3096018, \"binary\": \"/home/weichen/projects/Agent-System-RDM-wt-feature-project-init/bin/agent-system-rdm (deleted)\", \"cwd\": \"/home/weichen/projects/Agent-System-RDM-wt-feature-project-init (deleted)\", \"build\": [\"path\\tagent-system-rdm\", \"mod\\tagent-system-rdm\\tv0.1.1-0.20261006035203-f37a5b35a87e+dirty\", \"build\\tvcs.revision=f37a5b35a87e7c38bf52835d88a8529e5d023f65\", \"build\\tvcs.modified=true\"]}\n{\"api_version\": {\"version\": \"1.27.3\"}}\n{\"repo\": \"Agent-System-Dev\", \"open_prs\": [{\"number\": 337, \"title\": \"U4: storage-migrate tool, switch/drill runbook, baseline ratchet (pin #144/#145/#65, core 452daf3)\", \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/337\", \"head\": \"b8a510d3746c4898f0e679597385939cc76a66e8\"}, {\"number\": 336, \"title\": \"Land Generative UI U2: Surface contract, activation guard, persistence (core #25, backend #143, mirrors)\", \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/336\", \"head\": \"f71bef53d46c5bb7fca4b5a885bc98b0a7b906e8\"}, {\"number\": 317, \"title\": \"Align the svc.sh startup precheck with binary auth semantics and keep the reused DSN\", \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/317\", \"head\": \"66962a517c99e4e6b955fd4034514ed363117571\"}]}\n{\"repo\": \"Agent-System-Documents\", \"open_prs\": []}\n{\"repo\": \"Agent-System-RDM\", \"open_prs\": []}\n{\"repo\": \"Agent-System-Backend\", \"open_prs\": []}\nNOT_RUN: business tests, real model tasks, browser acceptance, business database access, migrations and deployment\n", "output_sha256": "6d48b03f1af9c8ebe25b6b7f7335c02ab9b0732f6c3089bdb2e7ce7fc6ff0c7e", "receipt_sha256": "5d8119430667462899043daf7614570113b09b845e164ed89e4aeaee5683ce51" } diff --git a/docs/records/2026-10-11-rdm-two-trees-source-receipt.json b/docs/records/2026-10-11-rdm-two-trees-source-receipt.json index 916d868..16be73a 100644 --- a/docs/records/2026-10-11-rdm-two-trees-source-receipt.json +++ b/docs/records/2026-10-11-rdm-two-trees-source-receipt.json @@ -28,7 +28,7 @@ }, "after_error": null, "exit_code": 0, - "output": "{\"source\": \"SELF\", \"kind\": \"read-only-source-inspection\", \"heads\": {\"Dev\": \"5771d4f1e5b692bce95eb64cc30dc9931079ad12\", \"RDM\": \"0081628a10ec48a36537c6eced11a57439c986fa\"}, \"status\": {\"Dev\": \"\", \"RDM\": \"\"}}\nDev pins\n4f583ca3eeeb07a56a714c5086de84dcd6ad2980 deps/agent-command (remotes/origin/HEAD)\n 343b1e6d9a5b58e47bf7e594826221036ae8175c deps/agent-intent (remotes/origin/HEAD)\n c348441691e8bdab784a03aa9be64d53dacff341 deps/agent-native (remotes/origin/HEAD)\n 490b0b2dfa1567cb16ff7a7230fd78e52bc2938e deps/agent-squad (remotes/origin/HEAD)\n af199eeaa23c5b39e08b4649f2513d7572dc5274 deps/development-guidelines (remotes/origin/HEAD)\n a3ee67bba269e1276c14e22c026171ecf2cf6190 deps/error-code-system (heads/main)\n 49b5d8be604d05e4246dffa0d10fa1c2b7ad45d7 deps/logging-system (heads/main)\n ea4651b1f870d84ab9b72cfa79363b3432d113b3 modules/backend (v0.3.0-28-gea4651b)\n a253a40b8e5563119b00c4e71fb61fe0d11d6d6a modules/core (v0.2.0)\n 3304efee154e218fa223419b624e8cefb4c762e1 modules/documents (remotes/origin/feature/generative-ui-research-1-g3304efe)\n 3ed10e122042a64180fb24a42d9cc6438cd2d2d6 modules/frontend (v0.3.0-4-g3ed10e1)\n 76d6633736a7abb36ac1ecca42fe4e6f120d0558 modules/ui (v0.3.0)\nRDM pins\n421fee81c314c05530bc809e224b5d0818ec3472 pins/agent-system-backend (v0.2.0-40-g421fee8)\n a253a40b8e5563119b00c4e71fb61fe0d11d6d6a pins/agent-system-core (v0.2.0)\n 84b73ab32848e623d0a0ab7ade552784dca8cf3c pins/agent-system-frontend (v0.2.0)\n 76d6633736a7abb36ac1ecca42fe4e6f120d0558 pins/agent-system-ui (v0.2.0)\n{\"repo\": \"RDM\", \"path\": \"internal/rdmapp/runtime.go\", \"sha256\": \"4b814b94b26672dc93c528e76084078aee6483efcb9d89e4eb32fb20d60f5205\"}\n75: // WorldFor 取项目分片世界(G1-2:只含该项目事件;重放自库、写穿带 project 戳)。\n76: // 空项目串非法(存量未归属域不经此入口暴露——先归属,后可见)。缓存按项目复用;\n77: // 存量归属执行后由调用方触发失效重建。\n78: func (rt *Runtime) WorldFor(project string) (*domain.World, error) {\n79: \tif project == \"\" {\n80: \t\treturn nil, fmt.Errorf(\"rdmapp: 项目 ID 必填(存量未归属数据须经 rdm.project.migrate 先归属)\")\n81: \t}\n82: \tps, err := rt.Projects()\n83: \tif err != nil {\n84: \t\treturn nil, err\n85: \t}\n86: \tif err := ps.MustExist(project); err != nil {\n87: \t\treturn nil, err\n88: \t}\n89: \trt.worldsMu.Lock()\n90: \tdefer rt.worldsMu.Unlock()\n91: \tif w, ok := rt.worlds[project]; ok {\n92: \t\treturn w, nil\n93: \t}\n94: \tw, err := domain.LoadWorldForProject(rt.Dict, rt.Store, project)\n95: \tif err != nil {\n96: \t\treturn nil, err\n97: \t}\n98: \tw.Log().UseSeqAllocator(rt.nextSeq)\n99: \tif rt.worlds == nil {\n100: \t\trt.worlds = map[string]*domain.World{}\n101: \t}\n102: \trt.worlds[project] = w\n103: \treturn w, nil\n104: }\n105: \n106: // worldForParam 命令层世界选择:非空 projectId → 分片世界(WorldFor 校验+缓存);\n107: // 空串=过渡期全量世界(命令面未迁移调用点的兼容档,切片 2 逐步收窄)。\n108: func (rt *Runtime) worldForParam(projectID string) (*domain.World, error) {\n109: \tif projectID == \"\" {\n110: \t\treturn rt.World, nil\n111: \t}\n112: \treturn rt.WorldFor(projectID)\n113: }\n114: \n115: // WorldForParam worldForParam 的导出面(G1-5:插件命令层按 projectId 选世界)。\n116: func (rt *Runtime) WorldForParam(projectID string) (*domain.World, error) {\n117: \treturn rt.worldForParam(projectID)\n135: // AuthorizeProjectResource EXT-8 适配器判定(供插件注册转发)。\n136: func (rt *Runtime) AuthorizeProjectResource(owner string, projectID core.ID) (bool, error) {\n137: \tms, err := rt.Members()\n138: \tif err != nil {\n139: \t\treturn false, err\n140: \t}\n141: \treturn ms.IsMember(owner, string(projectID)), nil\n142: }\n{\"repo\": \"RDM\", \"path\": \"internal/projects/projects.go\", \"sha256\": \"b857bf3db7e30616cd17ac68a4239cc9ed9baea5435e7135bd3277a1c7997e11\"}\n17: // Project 一条研发项目注册行。\n18: type Project struct {\n19: \tID string\n20: \tName string\n21: \tCreatedBy string\n22: \tCreatedAt time.Time\n23: }\n24: \n{\"repo\": \"RDM\", \"path\": \"internal/rdmapp/projects_api.go\", \"sha256\": \"87951d8f46f1e112e0591f79e670cf2c7bc0a34712fe1167746c606b0bc723ec\"}\n14: func CreateProject(name, by string) (projects.Project, error) {\n15: \trt, err := Get()\n16: \tif err != nil {\n17: \t\treturn projects.Project{}, err\n18: \t}\n19: \tps, err := rt.Projects()\n20: \tif err != nil {\n21: \t\treturn projects.Project{}, err\n22: \t}\n23: \tp, err := ps.Create(name, by)\n24: \tif err != nil {\n25: \t\tif errors.Is(err, projects.ErrNameTaken) {\n26: \t\t\treturn p, fmt.Errorf(\"项目名已占用:%s(研发项目名全局唯一,请换名)\", name)\n27: \t\t}\n28: \t\treturn p, err\n29: \t}\n30: \tpermStore, err := rt.Perms()\n31: \tif err == nil {\n32: \t\tif n, cerr := permStore.AdminCount(); cerr == nil && n == 0 {\n33: \t\t\t_, _ = permStore.BootstrapAdmin(by)\n34: \t\t}\n35: \t}\n36: \tif ms, merr := rt.Members(); merr == nil {\n37: \t\t_ = ms.AddRole(p.ID, by, \"owner\", by)\n38: \t}\n39: \treturn p, nil\n40: }\n41: \n42: // ListProjects 列出全部研发项目。\n43: func ListProjects() ([]projects.Project, error) {\n44: \trt, err := Get()\n45: \tif err != nil {\n46: \t\treturn nil, err\n47: \t}\n48: \tps, err := rt.Projects()\n49: \tif err != nil {\n50: \t\treturn nil, err\n51: \t}\n52: \treturn ps.List()\n{\"repo\": \"RDM\", \"path\": \"internal/domain/notetree.go\", \"sha256\": \"79b0e740da9156e97c80912972ac43aaa1326d1961e7425b913561c24cd7b15d\"}\n64: // 挂载点须已存在;空挂载允许(先入库后整理)。\n65: func (t *NoteTree) Ingest(content string, anchor Anchor, labels LabelSet, summary string,\n66: \tsrc Provenance, batch string, mounts []string, actor string) (*Slice, error) {\n67: \tif err := t.dict.Validate(labels); err != nil {\n68: \t\treturn nil, err\n69: \t}\n70: \tfor _, m := range mounts {\n71: \t\tif _, ok := t.spine[m]; !ok {\n72: \t\t\treturn nil, fmt.Errorf(\"domain: 挂载点 %s 不存在\", m)\n73: \t\t}\n74: \t}\n75: \ts := &Slice{ID: newID(KindSlice), Content: content, Anchor: anchor, Labels: labels,\n76: \t\tSummary: summary, Source: src, Batch: batch, IngestedAt: t.log.clock()}\n77: \t// 事件先行(含挂载事件),全部落库后才改内存——落库失败零结构变更。\n78: \tif _, err := t.log.Append(OpSliceIngest, actor, src, s.Ref(), nil,\n79: \t\tfmt.Sprintf(\"入库 %q(批次 %s)\", s.Summary, batch), marshalJSON(slicePayload{\n80: \t\t\tID: s.ID, Content: content, Anchor: anchor, Labels: labels,\n81: \t\t\tSummary: summary, Batch: batch,\n82: \t\t})); err != nil {\n83: \t\treturn nil, err\n84: \t}\n85: \tfor _, m := range mounts {\n86: \t\tref := t.spine[m].Ref()\n87: \t\tif _, err := t.log.Append(OpMountAdd, actor, src, s.Ref(), &ref, \"\", nil); err != nil {\n88: \t\t\treturn nil, err\n89: \t\t}\n90: \t}\n91: \tt.slices[s.ID] = s\n92: \tfor _, m := range mounts {\n93: \t\tt.mounts[s.ID] = append(t.mounts[s.ID], m)\n94: \t}\n95: \treturn s, nil\n96: }\n101: \tif !ok || s.Deleted() {\n102: \t\treturn fmt.Errorf(\"domain: 切片 %s 不存在或已删除\", sliceID)\n103: \t}\n104: \tif err := t.dict.Validate(next); err != nil {\n105: \t\treturn err\n106: \t}\n107: \tprev := s.Labels\n108: \ts.Labels = next\n109: \t_, err := t.log.Append(OpSliceRetag, actor, src, s.Ref(), nil,\n110: \t\tfmt.Sprintf(\"标签 %s → %s\", prev.Stage, next.Stage), marshalJSON(retagPayload{ID: s.ID, Labels: next}))\n111: \treturn err\n112: }\n113: \n114: // MoveMount 摘挂 + 挂入(迁移留痕);影响已基线内容时由上层触发变更流程(08 §8.3)。\n115: func (t *NoteTree) MoveMount(sliceID, fromSpine, toSpine, actor string, src Provenance) error {\n{\"repo\": \"RDM\", \"path\": \"internal/domain/tracenet.go\", \"sha256\": \"ee7422c3633719f41427dbf188b8a8db8f8c519612fd34c6ff24c4f706f385a2\"}\n55: \treturn &TraceNet{edges: map[string]*Edge{}, log: log}\n56: }\n57: \n58: // Link 建边:人工/规则直接生效;模型候选落 candidate 等待确认(SR-D1/E3)。\n59: func (n *TraceNet) Link(from, to Ref, typ EdgeType, src Provenance, conf float64, actor string) (*Edge, error) {\n60: \te := &Edge{ID: newID(KindEdge), From: from, To: to, Type: typ, Conf: conf,\n61: \t\tSource: src, At: n.log.clock()}\n62: \tif src == ByModel {\n63: \t\te.State = EdgeCandidate\n64: \t} else {\n65: \t\te.State = EdgeActive\n66: \t}\n67: \tif _, err := n.log.Append(OpEdgeCandidate, actor, src, e.Ref(), &to, string(typ),\n68: \t\tmarshalJSON(edgePayload{ID: e.ID, From: from, To: to, Type: typ, Conf: conf})); err != nil {\n69: \t\treturn nil, err\n70: \t}\n71: \tif e.State == EdgeActive { // 人工/规则的生效迁移也留痕\n72: \t\tif _, err := n.log.Append(OpEdgeConfirm, actor, src, e.Ref(), &to, string(typ), nil); err != nil {\n73: \t\t\treturn nil, err\n74: \t\t}\n75: \t}\n76: \tn.edges[e.ID] = e\n77: \treturn e, nil\n78: }\n79: \n80: // Confirm 候选 → 生效(R3:只有候选可确认)。\n81: func (n *TraceNet) Confirm(edgeID, actor string) error {\n82: \te, ok := n.edges[edgeID]\n83: \tif !ok || e.Retired() {\n84: \t\treturn fmt.Errorf(\"domain: 边 %s 不存在或已废止\", edgeID)\n85: \t}\n86: \tif e.State != EdgeCandidate {\n87: \t\treturn ErrNotCandidate\n88: \t}\n89: \tif _, err := n.log.Append(OpEdgeConfirm, actor, ByHuman, e.Ref(), &e.To, string(e.Type), nil); err != nil {\n90: \t\treturn err\n91: \t}\n92: \te.State = EdgeActive\n93: \treturn nil\n94: }\n95: \n96: // Retire 废止(软删,R2/R3):须理由与操作者。\n{\"repo\": \"RDM\", \"path\": \"internal/domain/compliance.go\", \"sha256\": \"3f118f21e0c4d58ca8584310e329615010b9b21a860d522f0e9b9e4fc1c015e0\"}\n162: func (w *World) AddCNodeBump(kind CNodeKind, id, title, payload, actor string) (CNode, error) {\n163: \tg := w.cgraphOf()\n164: \tver := 0\n165: \tfor v := range g.nodes[kind.String()+\":\"+id] {\n166: \t\tif v > ver {\n167: \t\t\tver = v\n168: \t\t}\n169: \t}\n170: \tn, err := w.addCNodeVer(kind, id, ver, title, payload, actor)\n171: \tif err != nil {\n172: \t\treturn n, err\n173: \t}\n174: \tw.markStaleEdges(kind, id)\n175: \treturn n, nil\n176: }\n177: \n178: func (w *World) addCNodeVer(kind CNodeKind, id string, prevVer int, title, payload, actor string) (CNode, error) {\n179: \tif title == \"\" || actor == \"\" {\n308: func (w *World) CSnapshots() []ComplianceSnapshot {\n309: \tg := w.cgraphOf()\n310: \tout := make([]ComplianceSnapshot, len(g.snaps))\n311: \tcopy(out, g.snaps)\n312: \treturn out\n313: }\n314: \n315: // TakeComplianceSnapshot 基线/正式版批准时生成合规快照(不可变;active 边+\n316: // 全部节点版本;内容哈希覆盖节点/边/规则版本——审计比对锚)。\n317: func (w *World) TakeComplianceSnapshot(scope, approver string) (ComplianceSnapshot, error) {\n318: \tif scope == \"\" || approver == \"\" {\n319: \t\treturn ComplianceSnapshot{}, fmt.Errorf(\"domain: 快照 scope/approver 必填\")\n320: \t}\n321: \tnodes := w.CNodes()\n322: \tedges := w.ComplianceEdges()\n323: \th := hashCGraph(nodes, edges, \"viewrules-v0\")\n324: \ts := ComplianceSnapshot{ID: fmt.Sprintf(\"csnap-%d\", w.log.clock().UnixNano()),\n325: \t\tScope: scope, Nodes: nodes, Edges: edges, ViewRules: \"viewrules-v0\",\n326: \t\tHash: h, Approver: approver, At: w.log.clock()}\n327: \tg := w.cgraphOf()\n328: \tg.snaps = append(g.snaps, s)\n329: \tpl := cSnapPayload{ID: s.ID, Scope: scope, Hash: h, Approver: approver,\n330: \t\tNodes: len(nodes), Edges: len(edges)}\n331: \tif _, err := w.log.Append(OpCSnapAdd, approver, ByHuman,\n332: \t\tRef{Kind: KindSection, ID: \"cgraph\"}, nil,\n333: \t\tfmt.Sprintf(\"合规快照 %s(%s):节点 %d 边 %d 哈希 %s\", s.ID, scope, len(nodes), len(edges), h[:12]),\n334: \t\tmarshalJSON(pl)); err != nil {\n335: \t\treturn ComplianceSnapshot{}, err\n336: \t}\n{\"repo\": \"RDM\", \"path\": \"internal/domain/replay.go\", \"sha256\": \"fe99bfb403b5f07b64338f1493feea798995ac20735f2e2e9d66c6041f87f3d2\"}\n230: \tcase OpCNodeAdd:\n231: \t\tvar p cNodePayload\n232: \t\tif err := json.Unmarshal(ev.Payload, &p); err != nil {\n233: \t\t\treturn err\n234: \t\t}\n235: \t\tg := w.cgraphOf()\n236: \t\tif g.nodes[p.Kind+\":\"+p.ID] == nil {\n237: \t\t\tg.nodes[p.Kind+\":\"+p.ID] = map[int]CNode{}\n238: \t\t}\n239: \t\tg.nodes[p.Kind+\":\"+p.ID][p.Ver] = CNode{\n240: \t\t\tCNodeVerRef: CNodeVerRef{Kind: CNodeKind(p.Kind), ID: p.ID, Ver: p.Ver},\n241: \t\t\tTitle: p.Title, Payload: p.Payload, At: ev.At, Actor: ev.Actor}\n242: \t\treturn nil\n243: \n244: \tcase OpCEdgeConfirm:\n245: \t\tvar p cEdgePayload\n246: \t\tif err := json.Unmarshal(ev.Payload, &p); err != nil {\n247: \t\t\treturn err\n248: \t\t}\n249: \t\tg := w.cgraphOf()\n250: \t\te := CEdge{Kind: CEdgeKind(p.Kind),\n251: \t\t\tFrom: CNodeVerRef{Kind: CNodeKind(p.FromKind), ID: p.FromID, Ver: p.FromVer},\n252: \t\t\tTo: CNodeVerRef{Kind: CNodeKind(p.ToKind), ID: p.ToID, Ver: p.ToVer},\n253: \t\t\tState: CEdgeState(p.State), Propose: p.Propose, By: p.By, At: ev.At}\n254: \t\t// 重放升版语义:若同端点旧状态存在(stale 标记由升版路径在写侧做),\n255: \t\t// 直接追加——stale 由 cnode.add 升版时按当前边集重算(见下)。\n256: \t\tg.edges = append(g.edges, e)\n257: \t\treturn nil\n258: \n259: \tcase OpCSnapAdd:\n260: \t\tvar p cSnapPayload\n261: \t\tif err := json.Unmarshal(ev.Payload, &p); err != nil {\n262: \t\t\treturn err\n263: \t\t}\n264: \t\tg := w.cgraphOf()\n265: \t\tg.snaps = append(g.snaps, ComplianceSnapshot{ID: p.ID, Scope: p.Scope,\n266: \t\t\tHash: p.Hash, Approver: p.Approver, At: ev.At})\n267: \t\treturn nil\n268: \n269: \tcase OpSectionVer:\n270: \t\tvar p versionPayload\n369: \tcase \"approve\":\n370: \t\tif rs.card != nil && p.Reviewer != \"\" {\n371: \t\t\tif _, is := rs.card.Reviews[p.Reviewer]; is {\n372: \t\t\t\trs.card.Reviews[p.Reviewer] = true\n373: \t\t\t}\n374: \t\t}\n375: \tcase \"reject\":\n376: \t\trs.card = nil\n377: \tcase \"final\":\n378: \t\tif p.Formal != nil {\n379: \t\t\tf := FormalRevInfo{Rev: p.Formal.Rev, Seq: p.Formal.Seq, At: time.Time{}, Actor: \"\"}\n380: \t\t\tif p.Formal.SupersedesRev > 0 {\n381: \t\t\t\tfor i := range rs.formal {\n382: \t\t\t\t\tif rs.formal[i].Rev == p.Formal.SupersedesRev {\n383: \t\t\t\t\t\tprev := rs.formal[i]\n384: \t\t\t\t\t\tf.Supersedes = &prev\n385: \t\t\t\t\t}\n386: \t\t\t\t}\n387: \t\t\t}\n388: \t\t\trs.formal = append(rs.formal, f)\n389: \t\t}\n390: \t\trs.card = nil\n391: \t}\n392: }\n393: \n394: // applyLegacyReviewDetail 解析旧实现(G0-2 之前)以 OpSectionState + 自由文本\n{\"repo\": \"RDM\", \"path\": \"internal/rdmapp/conclusions.go\", \"sha256\": \"e467cbecab7058b76258f1da7c8abc139c5f8540e48ea11abbfce212f39f2cd7\"}\n254: \trt, err := Get()\n255: \tif err != nil {\n256: \t\treturn domain.Conclusion{}, err\n257: \t}\n258: \tw, err := rt.worldForParam(project)\n259: \tif err != nil {\n260: \t\treturn domain.Conclusion{}, err\n261: \t}\n262: \tvar text, bucket, basisJSON, labelsJSON string\n263: \tvar labels domain.LabelSet\n264: \terr = rt.Store.RawDB().QueryRow(`SELECT text,bucket,basis_json,labels_json FROM rdm_conclusion_proposals\n265: \t\tWHERE id=? AND state='pending'`, proposalID).Scan(&text, &bucket, &basisJSON, &labelsJSON)\n266: \tif err == sql.ErrNoRows {\n267: \t\treturn domain.Conclusion{}, fmt.Errorf(\"rdmapp: 提议 %s 不存在或已决策\", proposalID)\n268: \t}\n269: \tif err != nil {\n270: \t\treturn domain.Conclusion{}, err\n271: \t}\n272: \t_ = json.Unmarshal([]byte(labelsJSON), &labels)\n273: \t// 依据:命令传入优先;回落提议自带。\n274: \tvar refs []domain.Ref\n275: \tfor _, b := range basis {\n276: \t\tfor i := 0; i < len(b); i++ {\n277: \t\t\tif b[i] == ':' {\n278: \t\t\t\trefs = append(refs, domain.Ref{Kind: domain.Kind(b[:i]), ID: b[i+1:]})\n279: \t\t\t\tbreak\n280: \t\t\t}\n281: \t\t}\n282: \t}\n283: \tif len(refs) == 0 {\n284: \t\tvar legacy []string\n285: \t\t_ = json.Unmarshal([]byte(basisJSON), &legacy)\n286: \t\tfor _, b := range legacy {\n287: \t\t\tfor i := 0; i < len(b); i++ {\n288: \t\t\t\tif b[i] == ':' {\n289: \t\t\t\t\trefs = append(refs, domain.Ref{Kind: domain.Kind(b[:i]), ID: b[i+1:]})\n290: \t\t\t\t\tbreak\n291: \t\t\t\t}\n292: \t\t\t}\n293: \t\t}\n294: \t}\n295: \tc, err := w.AddConclusion(text, refs, labels, \"trigger\", by)\n296: \tif err != nil {\n297: \t\treturn domain.Conclusion{}, err\n298: \t}\n299: \t_, err = rt.Store.RawDB().Exec(`UPDATE rdm_conclusion_proposals SET state='confirmed', decided_by=?, decision=? WHERE id=?`,\n300: \t\tby, \"confirmed:\"+c.ID, proposalID)\n301: \tif err != nil {\n302: \t\treturn domain.Conclusion{}, err\n303: \t}\n304: \treturn c, nil\n{\"repo\": \"RDM\", \"path\": \"internal/rdmapp/trace.go\", \"sha256\": \"76288d9cc879011341085b5dbbd1ef0769a3b7896c1a48d9f987aa00b6c05ae5\"}\n31: func Trace(_ context.Context, _ extension.Host, projectID, sectionID string) (*TraceResult, error) {\n32: \trt, err := Get()\n33: \tif err != nil {\n34: \t\treturn nil, err\n35: \t}\n36: \tw, err := rt.worldForParam(projectID)\n37: \tif err != nil {\n38: \t\treturn nil, err\n39: \t}\n40: \tsec, ok := w.Docs.Section(sectionID)\n41: \tif !ok {\n42: \t\treturn nil, errParam(\"章节不存在: \" + sectionID)\n43: \t}\n44: \tref := sec.Ref()\n45: \tres := &TraceResult{SectionID: sectionID, Title: sec.Title}\n46: \tfor _, e := range w.Net.EdgesWhere(func(e *domain.Edge) bool {\n47: \t\treturn e.To == ref || e.From == ref\n48: \t}) {\n49: \t\tother := e.From\n50: \t\tif e.From == ref {\n131: func Graph(projectID string) (*GraphResult, error) {\n132: \trt, err := Get()\n133: \tif err != nil {\n134: \t\treturn nil, err\n135: \t}\n136: \tw, err := rt.worldForParam(projectID)\n137: \tif err != nil {\n138: \t\treturn nil, err\n139: \t}\n140: \tres := &GraphResult{}\n141: \tfor _, s := range w.Notes.Query(domain.LabelCondition{}) {\n142: \t\tres.Nodes = append(res.Nodes, GraphNode{ID: s.ID, Kind: \"slice\",\n143: \t\t\tTitle: firstNonEmpty(s.Summary, truncate(s.Content, 18)), Col: 0})\n144: \t}\n145: \tfor _, d := range w.Docs.AllDocs() {\n146: \t\tfor _, sec := range d.Sections {\n147: \t\t\tif sec.Deleted() {\n148: \t\t\t\tcontinue\n149: \t\t\t}\n150: \t\t\tres.Nodes = append(res.Nodes, GraphNode{ID: sec.ID, Kind: \"section\",\n151: \t\t\t\tTitle: firstNonEmpty(sec.Title, sec.ID), Col: 1})\n152: \t\t}\n153: \t}\n154: \tfor _, ev := range w.Log().Snapshot() {\n155: \t\tif ev.Op != domain.OpOpenItemAdd {\n156: \t\t\tcontinue\n157: \t\t}\n158: \t\tif o, ok := w.Reg.Item(ev.Target.ID); ok && o.Open() {\n159: \t\t\tres.Nodes = append(res.Nodes, GraphNode{ID: o.ID, Kind: \"open-item\",\n160: \t\t\t\tTitle: truncate(o.Statement, 18), Col: 2})\n161: \t\t}\n205: func Hops(_ context.Context, _ extension.Host, projectID, refID string, depth int) (*HopsResult, error) {\n206: \trt, err := Get()\n207: \tif err != nil {\n208: \t\treturn nil, err\n209: \t}\n210: \tw, err := rt.worldForParam(projectID)\n211: \tif err != nil {\n212: \t\treturn nil, err\n213: \t}\n214: \tif depth <= 0 || depth > 5 {\n215: \t\tdepth = 2\n216: \t}\n217: \t// 判起点种类\n218: \tstartKind := \"slice\"\n219: \tif _, ok := w.Docs.Section(refID); ok {\n220: \t\tstartKind = \"section\"\n{\"repo\": \"RDM\", \"path\": \"internal/domain/persist.go\", \"sha256\": \"8655272bc532a927b224c25cb5a051ddfe0ae5414c53d80bbe739b01a1680b1e\"}\n108: \n109: // SaveWorldSnapshot / LoadWorldSnapshotAt:R5 加速层——序列化重放产物,\n110: // 读回 ≤at 最近快照。语义校验仍以事件重放为准(调用方按需比对)。\n111: func SaveWorldSnapshot(w *World, s *store.Store) error {\n112: \tevents := w.Log().Snapshot()\n113: \tat := time.Time{}\n114: \tif len(events) > 0 {\n115: \t\tat = events[len(events)-1].At\n116: \t}\n117: \tblob, err := json.Marshal(struct {\n118: \t\tAt time.Time `json:\"at\"`\n119: \t\tNotes int `json:\"notes\"`\n120: \t\tDocs int `json:\"docs\"`\n121: \t\tEdges int `json:\"edges\"`\n122: \t\tOpen int `json:\"openItems\"`\n123: \t\tLastSeq int64 `json:\"lastSeq\"`\n124: \t}{At: at, LastSeq: lastSeq(events),\n125: \t\tNotes: len(w.Notes.Query(LabelCondition{})),\n126: \t\tDocs: len(w.Docs.docs), Edges: len(w.Net.edges), Open: openItems(w)})\n127: \tif err != nil {\n128: \t\treturn err\n129: \t}\n130: \treturn s.SaveSnapshot(at, blob)\n131: }\n132: \n{\"repo\": \"RDM\", \"path\": \"plugins/rdm/plugin.go\", \"sha256\": \"364b0909a9f48597e375139d0b7248c9fcea72c3f1fc1a22b9c66808792b7df1\"}\n737: func rdmTrace(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n738: \tid, _ := req.Params[\"sectionId\"].(string)\n739: \tpid, _ := req.Params[\"projectId\"].(string)\n740: \treturn rdmapp.Trace(ctx, h, pid, id)\n741: }\n742: \n743: func rdmTraceGraph(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n744: \tpid, _ := req.Params[\"projectId\"].(string)\n745: \treturn rdmapp.Graph(pid)\n746: }\n747: \n748: func rdmTraceHops(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n749: \tid, _ := req.Params[\"ref\"].(string)\n750: \tdepth := 2\n751: \tif d, ok := req.Params[\"depth\"].(float64); ok && int(d) > 0 {\n752: \t\tdepth = int(d)\n753: \t}\n754: \tpid, _ := req.Params[\"projectId\"].(string)\n755: \treturn rdmapp.Hops(ctx, h, pid, id, depth)\n756: }\n757: \n758: func rdmTraceConfirm(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n759: \tid, _ := req.Params[\"edgeId\"].(string)\n760: \tpid, _ := req.Params[\"projectId\"].(string)\n761: \tres, err := rdmapp.TraceConfirm(ctx, h, pid, id, req.Actor)\n1390: \tpid, _ := req.Params[\"projectId\"].(string)\n1391: \treturn rdmapp.CGraphSummary(pid)\n1392: }\n1393: \n1394: func rdmCGraphView(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n1395: \tpid, _ := req.Params[\"projectId\"].(string)\n1396: \tview, _ := req.Params[\"view\"].(string)\n1397: \tif view == \"\" {\n1398: \t\treturn nil, rdmapp.ErrParam(\"view 必填(13485|sw0664|hardware|risk)\")\n1399: \t}\n1400: \treturn rdmapp.CGraphChainView(pid, view)\n1401: }\n1402: \n1403: func rdmCGraphMatrix(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n1404: \tpid, _ := req.Params[\"projectId\"].(string)\n1405: \tfrom, _ := req.Params[\"from\"].(string)\n1406: \tto, _ := req.Params[\"to\"].(string)\n1407: \tif from == \"\" || to == \"\" {\n1408: \t\treturn nil, rdmapp.ErrParam(\"from/to 必填(受控节点类型,如 UN/PR)\")\n1409: \t}\n1410: \treturn rdmapp.CGraphMatrix(pid, from, to)\n1411: }\n1412: \n1413: func rdmCGraphExport(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n1414: \tpid, _ := req.Params[\"projectId\"].(string)\n1415: \tformat, _ := req.Params[\"format\"].(string)\n1438: func rdmProjectCreate(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n1439: \tname, _ := req.Params[\"name\"].(string)\n1440: \tif name == \"\" {\n1441: \t\treturn nil, rdmapp.ErrParam(\"name 必填\")\n1442: \t}\n1443: \tp, err := rdmapp.CreateProject(name, req.Actor)\n1444: \tif err != nil {\n1445: \t\treturn nil, err\n1446: \t}\n1447: \t_ = h.Audit(\"rdm.project.create\", p.ID, \"name=\"+p.Name)\n1448: \treturn map[string]any{\"projectId\": p.ID, \"name\": p.Name, \"createdBy\": p.CreatedBy}, nil\n1449: }\n1450: \n1451: func rdmProjectList(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n1452: \tlist, err := rdmapp.ListProjects()\n1453: \tif err != nil {\n1454: \t\treturn nil, err\n1455: \t}\n1456: \tlegacy, err := rdmapp.LegacyStats()\n1457: \tif err != nil {\n1458: \t\treturn nil, err\n1459: \t}\n1460: \tout := []map[string]any{}\n1461: \tfor _, p := range list {\n1462: \t\tout = append(out, map[string]any{\"projectId\": p.ID, \"name\": p.Name,\n1463: \t\t\t\"createdBy\": p.CreatedBy, \"createdAt\": p.CreatedAt})\n1464: \t}\n1465: \treturn map[string]any{\"projects\": out, \"legacyUnattributedEvents\": legacy}, nil\n{\"repo\": \"RDM\", \"path\": \"web/app.js\", \"sha256\": \"37c7a0847ddc1903d7bf3679ddef71b5fed3c98fe268f621453456ff6eaa7a3f\"}\n69: async function command(id, params = {}) {\n70: const out = await api(`/api/commands/${encodeURIComponent(id)}`, { params, conversationId: state.conversationId || '' });\n71: const st = out?.receipt?.state;\n72: if (st === 'rejected') throw new Error(out.receipt.error || out.receipt.message || '命令被拒绝');\n73: if (out?.card) throw new Error('高危命令已生成确认卡——请点击右侧卡片上的「确认执行/取消」按钮');\n74: return out?.payload !== undefined ? out.payload : out;\n75: }\n76: \n77: // danger 命令 UI 触发的提示分流:确认卡≠失败——指引去卡片按钮完成闭环。\n78: const confirmHint = (e) => {\n79: if (String(e.message).includes('确认卡')) sys('已生成确认卡——请在右侧卡片上点「确认执行」。');\n80: else sys(`执行失败:${e.message}`);\n165: // ---- 命令分发与卡片渲染 ----\n166: const KNOWN = ['rdm.baseline', 'rdm.gap', 'rdm.draft', 'rdm.draft.compose', 'rdm.conflicts'];\n167: \n168: // ---- F1 上传五步(📎 与对话双入口同源:ensureProject → 基座 uploads → rdm.upload)----\n169: \n170: // GET /api/projects 兜底取/建项目:基座 uploads 是项目级落点,工作台无项目概念,取首个/建默认。\n171: async function ensureProject() {\n172: if (state.projectId) return state.projectId;\n173: const res = await fetch(state.baseUrl + '/api/projects', {\n174: headers: state.token ? { Authorization: `Bearer ${state.token}` } : {},\n175: });\n176: if (!res.ok) throw new Error(`projects ${res.status}`);\n177: const list = await res.json();\n178: const first = Array.isArray(list) ? list[0] : (list?.projects || [])[0];\n179: if (first?.id) {\n180: state.projectId = first.id;\n181: return state.projectId;\n182: }\n183: const created = await fetch(state.baseUrl + '/api/projects', {\n184: method: 'POST',\n185: headers: { 'Content-Type': 'application/json', ...(state.token ? { Authorization: `Bearer ${state.token}` } : {}) },\n186: body: JSON.stringify({ name: 'RDM 自身研发' }),\n911: async function openTraceOverlay() {\n912: closeOverlay();\n913: const g = await command('rdm.trace.graph', {});\n914: const ov = document.createElement('div');\n915: ov.className = 'overlay';\n916: ov.id = 'ov-trace';\n917: ov.addEventListener('click', (e) => { if (e.target === ov) closeOverlay(); });\n918: const panel = document.createElement('div');\n919: panel.className = 'ov-panel';\n920: const head = document.createElement('div');\n921: head.className = 'ov-head';\n922: const ht = document.createElement('div');\n923: const h1 = document.createElement('div');\n924: h1.className = 'ov-title';\n925: h1.textContent = '追溯网';\n926: const h2 = document.createElement('div');\n{\"repo\": \"Dev\", \"path\": \"modules/backend/pkg/extension/host.go\", \"sha256\": \"a8a8c05eaf2e611375bead39fe383c7a1bed251e547d3b526e7e88c509ec7db2\"}\n9: // Request 是进程内命令处理器收到的一次分发请求(cmdbus.Request 的子集)。\n10: type Request struct {\n11: \tID string\n12: \tParams map[string]any\n13: \tEntrance string // button | card | slash | chat | api(归一)\n14: \tActor string\n15: \tOwner string\n16: \tConversationID string\n17: }\n18: \n19: // Handler 是下游注册的进程内命令处理器:每次分发由基座构造 owner 作用域的\n20: // Host 句柄传入,处理器经句柄访问基座能力,不得自行越权持有 owner 凭证。\n21: type Handler func(ctx context.Context, h Host, req Request) (any, error)\n22: \n23: // Host 是基座在分发时构造的 owner 作用域宿主句柄(EXT-1 最小集 + EXT-5 解析)。\n24: // 所有能力的可见范围都以本次分发的 Owner 为准;artifacts 只读\n25: // (写入属完整集,另行评估)。实现由基座 internal 提供。\n26: type Host interface {\n27: \t// PluginID 返回注册处理器的插件标识(形如 rdm)。\n28: \tPluginID() string\n29: \t// Owner 返回本次分发的作用域 owner。\n30: \tOwner() string\n31: \n32: \t// KVPut/KVGet 插件 KV(按 pluginID+owner 隔离)。\n33: \tKVPut(key, value string) error\n34: \tKVGet(key string) (value string, ok bool, err error)\n35: \n36: \t// Audit 写一条 owner 名下的审计事件。\n37: \tAudit(action, target, evidence string) error\n38: \n{\"repo\": \"Dev\", \"path\": \"modules/backend/internal/store/platform.go\", \"sha256\": \"a565d901a9277d6724f6fe0d2fb0c13dd8d06ad084dda04e5e6fc78a781a2db0\"}\n187: type AuditEvent struct {\n188: \tID int64 `json:\"id\"`\n189: \tTime string `json:\"time\"`\n190: \tOwner string `json:\"owner\"`\n191: \tAction string `json:\"action\"`\n192: \tActor string `json:\"actor,omitempty\"`\n193: \tTarget string `json:\"target,omitempty\"`\n194: \tEvidence string `json:\"evidence,omitempty\"`\n195: \tTraceID string `json:\"traceId,omitempty\"`\n196: }\n197: \n198: func (s *Store) AppendAuditEvent(ev AuditEvent) error {\n199: \tif ev.Time == \"\" {\n200: \t\tev.Time = time.Now().UTC().Format(time.RFC3339)\n201: \t}\n202: \t_, err := s.db.Exec(s.q(`INSERT INTO audit_events(time,owner,action,actor,target,evidence,trace_id) VALUES(?,?,?,?,?,?,?)`),\n203: \t\tev.Time, ev.Owner, ev.Action, ev.Actor, ev.Target, ev.Evidence, ev.TraceID)\n204: \treturn err\n205: }\n206: \n207: func (s *Store) ListAuditEvents(owner string, limit int) ([]AuditEvent, error) {\n208: \tif limit <= 0 || limit > 200 {\n209: \t\tlimit = 50\n210: \t}\n211: \trows, err := s.db.Query(s.q(`SELECT id,time,owner,action,actor,target,evidence,trace_id FROM audit_events\n212: \t\tWHERE owner=? OR ?='' ORDER BY id DESC LIMIT ?`), owner, owner, limit)\n213: \tif err != nil {\n214: \t\treturn nil, err\n{\"repo\": \"Dev\", \"path\": \"modules/backend/internal/store/audit.go\", \"sha256\": \"54a7c6ab8315f3c0b3f0ec97ab857925a7a745453a2a41fb28051e54423ecf9a\"}\n32: \tif owner == \"\" {\n33: \t\treturn []agentcommand.AuditEnvelope{}, nil\n34: \t}\n35: \tif limit <= 0 || limit > 500 {\n36: \t\tlimit = 100\n37: \t}\n38: \tvar (\n39: \t\trows *sql.Rows\n40: \t\terr error\n41: \t)\n42: \tif conversationID == \"\" {\n43: \t\trows, err = s.db.Query(s.q(`SELECT payload FROM command_audit WHERE owner=? ORDER BY time DESC LIMIT ?`), owner, limit)\n44: \t} else {\n45: \t\trows, err = s.db.Query(s.q(`SELECT payload FROM command_audit WHERE owner=? AND conversation_id=? ORDER BY time DESC LIMIT ?`), owner, conversationID, limit)\n46: \t}\n47: \tif err != nil {\n48: \t\treturn nil, err\n49: \t}\n50: \tdefer rows.Close()\n51: \tout := []agentcommand.AuditEnvelope{}\n52: \tfor rows.Next() {\n53: \t\tvar raw string\n54: \t\tif err := rows.Scan(&raw); err != nil {\n55: \t\t\treturn nil, err\n{\"repo\": \"Dev\", \"path\": \"modules/backend/internal/app/compiled.go\", \"sha256\": \"5f7da627fedcac99ecc0f50b7ae0a593defa189f77e0e4250f0f5faef1a1b7bc\"}\n31: func (r pluginRegistry) AddCommandHandler(spec json.RawMessage, h extension.Handler) error {\n32: \tif r.bus == nil {\n33: \t\treturn nil\n34: \t}\n35: \tif h == nil {\n36: \t\treturn fmt.Errorf(\"extension: %s: nil command handler\", r.pluginID)\n37: \t}\n38: \tvar s agentcommand.CommandSpec\n39: \tif err := json.Unmarshal(spec, &s); err != nil {\n40: \t\treturn fmt.Errorf(\"extension: command spec: %w\", err)\n41: \t}\n42: \treturn r.bus.RegisterPluginCommand(s, func(ctx context.Context, req cmdbus.Request) (any, error) {\n43: \t\thost := inprocHost{caps: r.caps, pluginID: r.pluginID, owner: req.Owner}\n44: \t\treturn h(ctx, host, extension.Request{\n45: \t\t\tID: req.ID, Params: req.Params, Entrance: req.Entrance,\n46: \t\t\tActor: req.Actor, Owner: req.Owner, ConversationID: req.ConversationID,\n47: \t\t})\n48: \t})\n49: }\n{\"repo\": \"Dev\", \"path\": \"modules/backend/internal/cmdbus/cmdbus.go\", \"sha256\": \"843f31dd2fe23d1ebe0da0a896b95d3040f2a5d0ba0bf200d4146fccab41ffd9\"}\n228: func (b *Bus) Dispatch(ctx context.Context, req Request) Response {\n229: \tstart := b.now()\n230: \treq.Entrance = agentcommand.CanonicalEntrance(req.Entrance)\n231: \treceipt := func(state agentcommand.ResultState, op, reason string) Response {\n232: \t\treturn Response{Receipt: b.auditReceipt(req, state, op, reason, start)}\n233: \t}\n234: \tspec, _, err := b.reg.Resolve(req.ID)\n235: \tif err != nil {\n236: \t\treturn receipt(agentcommand.StateRejected, \"\", \"unknown or disabled command: \"+req.ID)\n237: \t}\n238: \tif err := validateParams(spec.ParamsSchema, req.Params); err != nil {\n239: \t\treturn receipt(agentcommand.StateRejected, \"\", \"params: \"+err.Error())\n240: \t}\n241: \t// 高危收口:非确认入口先落内联确认卡(committed 语义 = 卡已创建;确认后二次分发执行)。\n242: \tif spec.Danger == agentcommand.DangerHigh && !req.Confirmed {\n243: \t\tif b.cards == nil || req.ConversationID == \"\" {\n244: \t\t\treturn receipt(agentcommand.StateRejected, \"\", \"high-danger command requires conversation context for inline confirm\")\n245: \t\t}\n246: \t\tcard, err := b.cards.Create(req.Owner, confirmCard(spec, req), \"cmd:\"+spec.ID)\n247: \t\tif err != nil {\n248: \t\t\treturn receipt(agentcommand.StateUnknown, \"\", \"confirm card: \"+err.Error())\n249: \t\t}\n250: \t\tb.pendMu.Lock()\n251: \t\tb.pending[card.ID] = pending{req: req, cardID: card.ID}\n252: \t\tb.pendMu.Unlock()\n253: \t\tif b.pendingStore != nil {\n254: \t\t\traw, _ := json.Marshal(req)\n255: \t\t\t_ = b.pendingStore.SavePendingConfirm(card.ID, req.Owner, string(raw))\n256: \t\t}\n257: \t\tr := b.auditReceipt(req, agentcommand.StateAccepted, card.ID, \"awaiting explicit confirm\", start)\n258: \t\treturn Response{Receipt: r, Card: &card}\n259: \t}\n260: \th, ok := b.handlers[req.ID]\n261: \tif !ok {\n262: \t\treturn receipt(agentcommand.StateRejected, \"\", \"no host handler bound for \"+req.ID)\n263: \t}\n264: \tpayload, err := h(ctx, req)\n265: \tif err != nil {\n266: \t\treturn receipt(agentcommand.StateRejected, \"\", \"rejected: \"+err.Error())\n267: \t}\n268: \top := fmt.Sprintf(\"op_%s_%d\", strings.ReplaceAll(strings.TrimPrefix(req.ID, \"\"), \".\", \"_\"), b.now().UnixNano())\n269: \treturn Response{Receipt: b.auditReceipt(req, agentcommand.StateCommitted, op, \"\", start), Payload: payload}\n{\"repo\": \"Dev\", \"path\": \"modules/frontend/src/components/AdminZone.tsx\", \"sha256\": \"5b853ae339ffd61f5a88d1102b82c4f63f79390e1073d1519ddde08a57159c3b\"}\n23: const SECTIONS: AdminSectionDef[] = [\n24: { key: 'users', label: '用户管理', icon: 'users', desc: '建号、发放初始密码、重置密码(管理员发放制)', render: () => },\n25: { key: 'profiles', label: '智能体画像', icon: 'bot', desc: '系统级画像:系统提示、工具允许/确认/拒绝清单', render: () => },\n26: { key: 'plugins', label: '插件管理', icon: 'puzzle', desc: '已装载插件清单与热重载(装卸不影响核心)', render: () => },\n27: { key: 'workspaces', label: '插件工作区', icon: 'grid', desc: '插件声明面板与服务端声明工作区', render: () => },\n28: ]\n29: \n30: export function AdminZone() {\n31: const me = useStore(s => s.me)\n32: const [sectionKey, setSectionKey] = useState('users')\n33: // 双保险:入口已在菜单层门控(me?.isAdmin),此处再拦一次(纵深防御)。\n34: if (!me?.isAdmin) return null\n35: const section = SECTIONS.find(s => s.key === sectionKey) ?? SECTIONS[0]\n36: return (\n{\"version\": \"1.27.3\"}\nAPI token verification: authenticated\n{\"repo\": \"Agent-System-Dev\", \"open_prs\": [{\"number\": 325, \"title\": \"U1+U2: team PG tier, atomic migrations, connection budget, real-database CI gate (pin #137/#61)\", \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/325\", \"head\": \"7134f83fde4634a37b45bb1ced40b35104fc2c1a\", \"base\": \"main\"}, {\"number\": 317, \"title\": \"Align the svc.sh startup precheck with binary auth semantics and keep the reused DSN\", \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/317\", \"head\": \"cd05692e809f3751b30c1583bebbb859410ef172\", \"base\": \"main\"}]}\n{\"repo\": \"Agent-System-Backend\", \"open_prs\": []}\n{\"repo\": \"Agent-System-RDM\", \"open_prs\": [{\"number\": 194, \"title\": \"Close merged task card: feature-g3-native-xlsx (PR #193)\", \"url\": \"https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/194\", \"head\": \"fe16a527722973cb8a84440e417f5ad0585c5ae8\", \"base\": \"main\"}]}\n{\"repo\": \"Agent-System-Documents\", \"open_prs\": []}\n{\"heads_after\": {\"Dev\": \"5771d4f1e5b692bce95eb64cc30dc9931079ad12\", \"RDM\": \"0081628a10ec48a36537c6eced11a57439c986fa\"}, \"same_heads\": true, \"business_tests\": \"NOT_RUN\", \"runtime_acceptance\": \"NOT_RUN\"}\n", + "output": "{\"source\": \"SELF\", \"kind\": \"read-only-source-inspection\", \"heads\": {\"Dev\": \"5771d4f1e5b692bce95eb64cc30dc9931079ad12\", \"RDM\": \"0081628a10ec48a36537c6eced11a57439c986fa\"}, \"status\": {\"Dev\": \"\", \"RDM\": \"\"}}\nDev pins\n4f583ca3eeeb07a56a714c5086de84dcd6ad2980 deps/agent-command (remotes/origin/HEAD)\n 343b1e6d9a5b58e47bf7e594826221036ae8175c deps/agent-intent (remotes/origin/HEAD)\n c348441691e8bdab784a03aa9be64d53dacff341 deps/agent-native (remotes/origin/HEAD)\n 490b0b2dfa1567cb16ff7a7230fd78e52bc2938e deps/agent-squad (remotes/origin/HEAD)\n af199eeaa23c5b39e08b4649f2513d7572dc5274 deps/development-guidelines (remotes/origin/HEAD)\n a3ee67bba269e1276c14e22c026171ecf2cf6190 deps/error-code-system (heads/main)\n 49b5d8be604d05e4246dffa0d10fa1c2b7ad45d7 deps/logging-system (heads/main)\n ea4651b1f870d84ab9b72cfa79363b3432d113b3 modules/backend (v0.3.0-28-gea4651b)\n a253a40b8e5563119b00c4e71fb61fe0d11d6d6a modules/core (v0.2.0)\n 3304efee154e218fa223419b624e8cefb4c762e1 modules/documents (remotes/origin/feature/generative-ui-research-1-g3304efe)\n 3ed10e122042a64180fb24a42d9cc6438cd2d2d6 modules/frontend (v0.3.0-4-g3ed10e1)\n 76d6633736a7abb36ac1ecca42fe4e6f120d0558 modules/ui (v0.3.0)\nRDM pins\n421fee81c314c05530bc809e224b5d0818ec3472 pins/agent-system-backend (v0.2.0-40-g421fee8)\n a253a40b8e5563119b00c4e71fb61fe0d11d6d6a pins/agent-system-core (v0.2.0)\n 84b73ab32848e623d0a0ab7ade552784dca8cf3c pins/agent-system-frontend (v0.2.0)\n 76d6633736a7abb36ac1ecca42fe4e6f120d0558 pins/agent-system-ui (v0.2.0)\n{\"repo\": \"RDM\", \"path\": \"internal/rdmapp/runtime.go\", \"sha256\": \"4b814b94b26672dc93c528e76084078aee6483efcb9d89e4eb32fb20d60f5205\"}\n75: // WorldFor 取项目分片世界(G1-2:只含该项目事件;重放自库、写穿带 project 戳)。\n76: // 空项目串非法(存量未归属域不经此入口暴露——先归属,后可见)。缓存按项目复用;\n77: // 存量归属执行后由调用方触发失效重建。\n78: func (rt *Runtime) WorldFor(project string) (*domain.World, error) {\n79: \tif project == \"\" {\n80: \t\treturn nil, fmt.Errorf(\"rdmapp: 项目 ID 必填(存量未归属数据须经 rdm.project.migrate 先归属)\")\n81: \t}\n82: \tps, err := rt.Projects()\n83: \tif err != nil {\n84: \t\treturn nil, err\n85: \t}\n86: \tif err := ps.MustExist(project); err != nil {\n87: \t\treturn nil, err\n88: \t}\n89: \trt.worldsMu.Lock()\n90: \tdefer rt.worldsMu.Unlock()\n91: \tif w, ok := rt.worlds[project]; ok {\n92: \t\treturn w, nil\n93: \t}\n94: \tw, err := domain.LoadWorldForProject(rt.Dict, rt.Store, project)\n95: \tif err != nil {\n96: \t\treturn nil, err\n97: \t}\n98: \tw.Log().UseSeqAllocator(rt.nextSeq)\n99: \tif rt.worlds == nil {\n100: \t\trt.worlds = map[string]*domain.World{}\n101: \t}\n102: \trt.worlds[project] = w\n103: \treturn w, nil\n104: }\n105: \n106: // worldForParam 命令层世界选择:非空 projectId → 分片世界(WorldFor 校验+缓存);\n107: // 空串=过渡期全量世界(命令面未迁移调用点的兼容档,切片 2 逐步收窄)。\n108: func (rt *Runtime) worldForParam(projectID string) (*domain.World, error) {\n109: \tif projectID == \"\" {\n110: \t\treturn rt.World, nil\n111: \t}\n112: \treturn rt.WorldFor(projectID)\n113: }\n114: \n115: // WorldForParam worldForParam 的导出面(G1-5:插件命令层按 projectId 选世界)。\n116: func (rt *Runtime) WorldForParam(projectID string) (*domain.World, error) {\n117: \treturn rt.worldForParam(projectID)\n135: // AuthorizeProjectResource EXT-8 适配器判定(供插件注册转发)。\n136: func (rt *Runtime) AuthorizeProjectResource(owner string, projectID core.ID) (bool, error) {\n137: \tms, err := rt.Members()\n138: \tif err != nil {\n139: \t\treturn false, err\n140: \t}\n141: \treturn ms.IsMember(owner, string(projectID)), nil\n142: }\n{\"repo\": \"RDM\", \"path\": \"internal/projects/projects.go\", \"sha256\": \"b857bf3db7e30616cd17ac68a4239cc9ed9baea5435e7135bd3277a1c7997e11\"}\n17: // Project 一条研发项目注册行。\n18: type Project struct {\n19: \tID string\n20: \tName string\n21: \tCreatedBy string\n22: \tCreatedAt time.Time\n23: }\n24: \n{\"repo\": \"RDM\", \"path\": \"internal/rdmapp/projects_api.go\", \"sha256\": \"87951d8f46f1e112e0591f79e670cf2c7bc0a34712fe1167746c606b0bc723ec\"}\n14: func CreateProject(name, by string) (projects.Project, error) {\n15: \trt, err := Get()\n16: \tif err != nil {\n17: \t\treturn projects.Project{}, err\n18: \t}\n19: \tps, err := rt.Projects()\n20: \tif err != nil {\n21: \t\treturn projects.Project{}, err\n22: \t}\n23: \tp, err := ps.Create(name, by)\n24: \tif err != nil {\n25: \t\tif errors.Is(err, projects.ErrNameTaken) {\n26: \t\t\treturn p, fmt.Errorf(\"项目名已占用:%s(研发项目名全局唯一,请换名)\", name)\n27: \t\t}\n28: \t\treturn p, err\n29: \t}\n30: \tpermStore, err := rt.Perms()\n31: \tif err == nil {\n32: \t\tif n, cerr := permStore.AdminCount(); cerr == nil && n == 0 {\n33: \t\t\t_, _ = permStore.BootstrapAdmin(by)\n34: \t\t}\n35: \t}\n36: \tif ms, merr := rt.Members(); merr == nil {\n37: \t\t_ = ms.AddRole(p.ID, by, \"owner\", by)\n38: \t}\n39: \treturn p, nil\n40: }\n41: \n42: // ListProjects 列出全部研发项目。\n43: func ListProjects() ([]projects.Project, error) {\n44: \trt, err := Get()\n45: \tif err != nil {\n46: \t\treturn nil, err\n47: \t}\n48: \tps, err := rt.Projects()\n49: \tif err != nil {\n50: \t\treturn nil, err\n51: \t}\n52: \treturn ps.List()\n{\"repo\": \"RDM\", \"path\": \"internal/domain/notetree.go\", \"sha256\": \"79b0e740da9156e97c80912972ac43aaa1326d1961e7425b913561c24cd7b15d\"}\n64: // 挂载点须已存在;空挂载允许(先入库后整理)。\n65: func (t *NoteTree) Ingest(content string, anchor Anchor, labels LabelSet, summary string,\n66: \tsrc Provenance, batch string, mounts []string, actor string) (*Slice, error) {\n67: \tif err := t.dict.Validate(labels); err != nil {\n68: \t\treturn nil, err\n69: \t}\n70: \tfor _, m := range mounts {\n71: \t\tif _, ok := t.spine[m]; !ok {\n72: \t\t\treturn nil, fmt.Errorf(\"domain: 挂载点 %s 不存在\", m)\n73: \t\t}\n74: \t}\n75: \ts := &Slice{ID: newID(KindSlice), Content: content, Anchor: anchor, Labels: labels,\n76: \t\tSummary: summary, Source: src, Batch: batch, IngestedAt: t.log.clock()}\n77: \t// 事件先行(含挂载事件),全部落库后才改内存——落库失败零结构变更。\n78: \tif _, err := t.log.Append(OpSliceIngest, actor, src, s.Ref(), nil,\n79: \t\tfmt.Sprintf(\"入库 %q(批次 %s)\", s.Summary, batch), marshalJSON(slicePayload{\n80: \t\t\tID: s.ID, Content: content, Anchor: anchor, Labels: labels,\n81: \t\t\tSummary: summary, Batch: batch,\n82: \t\t})); err != nil {\n83: \t\treturn nil, err\n84: \t}\n85: \tfor _, m := range mounts {\n86: \t\tref := t.spine[m].Ref()\n87: \t\tif _, err := t.log.Append(OpMountAdd, actor, src, s.Ref(), &ref, \"\", nil); err != nil {\n88: \t\t\treturn nil, err\n89: \t\t}\n90: \t}\n91: \tt.slices[s.ID] = s\n92: \tfor _, m := range mounts {\n93: \t\tt.mounts[s.ID] = append(t.mounts[s.ID], m)\n94: \t}\n95: \treturn s, nil\n96: }\n101: \tif !ok || s.Deleted() {\n102: \t\treturn fmt.Errorf(\"domain: 切片 %s 不存在或已删除\", sliceID)\n103: \t}\n104: \tif err := t.dict.Validate(next); err != nil {\n105: \t\treturn err\n106: \t}\n107: \tprev := s.Labels\n108: \ts.Labels = next\n109: \t_, err := t.log.Append(OpSliceRetag, actor, src, s.Ref(), nil,\n110: \t\tfmt.Sprintf(\"标签 %s → %s\", prev.Stage, next.Stage), marshalJSON(retagPayload{ID: s.ID, Labels: next}))\n111: \treturn err\n112: }\n113: \n114: // MoveMount 摘挂 + 挂入(迁移留痕);影响已基线内容时由上层触发变更流程(08 §8.3)。\n115: func (t *NoteTree) MoveMount(sliceID, fromSpine, toSpine, actor string, src Provenance) error {\n{\"repo\": \"RDM\", \"path\": \"internal/domain/tracenet.go\", \"sha256\": \"ee7422c3633719f41427dbf188b8a8db8f8c519612fd34c6ff24c4f706f385a2\"}\n55: \treturn &TraceNet{edges: map[string]*Edge{}, log: log}\n56: }\n57: \n58: // Link 建边:人工/规则直接生效;模型候选落 candidate 等待确认(SR-D1/E3)。\n59: func (n *TraceNet) Link(from, to Ref, typ EdgeType, src Provenance, conf float64, actor string) (*Edge, error) {\n60: \te := &Edge{ID: newID(KindEdge), From: from, To: to, Type: typ, Conf: conf,\n61: \t\tSource: src, At: n.log.clock()}\n62: \tif src == ByModel {\n63: \t\te.State = EdgeCandidate\n64: \t} else {\n65: \t\te.State = EdgeActive\n66: \t}\n67: \tif _, err := n.log.Append(OpEdgeCandidate, actor, src, e.Ref(), &to, string(typ),\n68: \t\tmarshalJSON(edgePayload{ID: e.ID, From: from, To: to, Type: typ, Conf: conf})); err != nil {\n69: \t\treturn nil, err\n70: \t}\n71: \tif e.State == EdgeActive { // 人工/规则的生效迁移也留痕\n72: \t\tif _, err := n.log.Append(OpEdgeConfirm, actor, src, e.Ref(), &to, string(typ), nil); err != nil {\n73: \t\t\treturn nil, err\n74: \t\t}\n75: \t}\n76: \tn.edges[e.ID] = e\n77: \treturn e, nil\n78: }\n79: \n80: // Confirm 候选 → 生效(R3:只有候选可确认)。\n81: func (n *TraceNet) Confirm(edgeID, actor string) error {\n82: \te, ok := n.edges[edgeID]\n83: \tif !ok || e.Retired() {\n84: \t\treturn fmt.Errorf(\"domain: 边 %s 不存在或已废止\", edgeID)\n85: \t}\n86: \tif e.State != EdgeCandidate {\n87: \t\treturn ErrNotCandidate\n88: \t}\n89: \tif _, err := n.log.Append(OpEdgeConfirm, actor, ByHuman, e.Ref(), &e.To, string(e.Type), nil); err != nil {\n90: \t\treturn err\n91: \t}\n92: \te.State = EdgeActive\n93: \treturn nil\n94: }\n95: \n96: // Retire 废止(软删,R2/R3):须理由与操作者。\n{\"repo\": \"RDM\", \"path\": \"internal/domain/compliance.go\", \"sha256\": \"3f118f21e0c4d58ca8584310e329615010b9b21a860d522f0e9b9e4fc1c015e0\"}\n162: func (w *World) AddCNodeBump(kind CNodeKind, id, title, payload, actor string) (CNode, error) {\n163: \tg := w.cgraphOf()\n164: \tver := 0\n165: \tfor v := range g.nodes[kind.String()+\":\"+id] {\n166: \t\tif v > ver {\n167: \t\t\tver = v\n168: \t\t}\n169: \t}\n170: \tn, err := w.addCNodeVer(kind, id, ver, title, payload, actor)\n171: \tif err != nil {\n172: \t\treturn n, err\n173: \t}\n174: \tw.markStaleEdges(kind, id)\n175: \treturn n, nil\n176: }\n177: \n178: func (w *World) addCNodeVer(kind CNodeKind, id string, prevVer int, title, payload, actor string) (CNode, error) {\n179: \tif title == \"\" || actor == \"\" {\n308: func (w *World) CSnapshots() []ComplianceSnapshot {\n309: \tg := w.cgraphOf()\n310: \tout := make([]ComplianceSnapshot, len(g.snaps))\n311: \tcopy(out, g.snaps)\n312: \treturn out\n313: }\n314: \n315: // TakeComplianceSnapshot 基线/正式版批准时生成合规快照(不可变;active 边+\n316: // 全部节点版本;内容哈希覆盖节点/边/规则版本——审计比对锚)。\n317: func (w *World) TakeComplianceSnapshot(scope, approver string) (ComplianceSnapshot, error) {\n318: \tif scope == \"\" || approver == \"\" {\n319: \t\treturn ComplianceSnapshot{}, fmt.Errorf(\"domain: 快照 scope/approver 必填\")\n320: \t}\n321: \tnodes := w.CNodes()\n322: \tedges := w.ComplianceEdges()\n323: \th := hashCGraph(nodes, edges, \"viewrules-v0\")\n324: \ts := ComplianceSnapshot{ID: fmt.Sprintf(\"csnap-%d\", w.log.clock().UnixNano()),\n325: \t\tScope: scope, Nodes: nodes, Edges: edges, ViewRules: \"viewrules-v0\",\n326: \t\tHash: h, Approver: approver, At: w.log.clock()}\n327: \tg := w.cgraphOf()\n328: \tg.snaps = append(g.snaps, s)\n329: \tpl := cSnapPayload{ID: s.ID, Scope: scope, Hash: h, Approver: approver,\n330: \t\tNodes: len(nodes), Edges: len(edges)}\n331: \tif _, err := w.log.Append(OpCSnapAdd, approver, ByHuman,\n332: \t\tRef{Kind: KindSection, ID: \"cgraph\"}, nil,\n333: \t\tfmt.Sprintf(\"合规快照 %s(%s):节点 %d 边 %d 哈希 %s\", s.ID, scope, len(nodes), len(edges), h[:12]),\n334: \t\tmarshalJSON(pl)); err != nil {\n335: \t\treturn ComplianceSnapshot{}, err\n336: \t}\n{\"repo\": \"RDM\", \"path\": \"internal/domain/replay.go\", \"sha256\": \"fe99bfb403b5f07b64338f1493feea798995ac20735f2e2e9d66c6041f87f3d2\"}\n230: \tcase OpCNodeAdd:\n231: \t\tvar p cNodePayload\n232: \t\tif err := json.Unmarshal(ev.Payload, &p); err != nil {\n233: \t\t\treturn err\n234: \t\t}\n235: \t\tg := w.cgraphOf()\n236: \t\tif g.nodes[p.Kind+\":\"+p.ID] == nil {\n237: \t\t\tg.nodes[p.Kind+\":\"+p.ID] = map[int]CNode{}\n238: \t\t}\n239: \t\tg.nodes[p.Kind+\":\"+p.ID][p.Ver] = CNode{\n240: \t\t\tCNodeVerRef: CNodeVerRef{Kind: CNodeKind(p.Kind), ID: p.ID, Ver: p.Ver},\n241: \t\t\tTitle: p.Title, Payload: p.Payload, At: ev.At, Actor: ev.Actor}\n242: \t\treturn nil\n243: \n244: \tcase OpCEdgeConfirm:\n245: \t\tvar p cEdgePayload\n246: \t\tif err := json.Unmarshal(ev.Payload, &p); err != nil {\n247: \t\t\treturn err\n248: \t\t}\n249: \t\tg := w.cgraphOf()\n250: \t\te := CEdge{Kind: CEdgeKind(p.Kind),\n251: \t\t\tFrom: CNodeVerRef{Kind: CNodeKind(p.FromKind), ID: p.FromID, Ver: p.FromVer},\n252: \t\t\tTo: CNodeVerRef{Kind: CNodeKind(p.ToKind), ID: p.ToID, Ver: p.ToVer},\n253: \t\t\tState: CEdgeState(p.State), Propose: p.Propose, By: p.By, At: ev.At}\n254: \t\t// 重放升版语义:若同端点旧状态存在(stale 标记由升版路径在写侧做),\n255: \t\t// 直接追加——stale 由 cnode.add 升版时按当前边集重算(见下)。\n256: \t\tg.edges = append(g.edges, e)\n257: \t\treturn nil\n258: \n259: \tcase OpCSnapAdd:\n260: \t\tvar p cSnapPayload\n261: \t\tif err := json.Unmarshal(ev.Payload, &p); err != nil {\n262: \t\t\treturn err\n263: \t\t}\n264: \t\tg := w.cgraphOf()\n265: \t\tg.snaps = append(g.snaps, ComplianceSnapshot{ID: p.ID, Scope: p.Scope,\n266: \t\t\tHash: p.Hash, Approver: p.Approver, At: ev.At})\n267: \t\treturn nil\n268: \n269: \tcase OpSectionVer:\n270: \t\tvar p versionPayload\n369: \tcase \"approve\":\n370: \t\tif rs.card != nil && p.Reviewer != \"\" {\n371: \t\t\tif _, is := rs.card.Reviews[p.Reviewer]; is {\n372: \t\t\t\trs.card.Reviews[p.Reviewer] = true\n373: \t\t\t}\n374: \t\t}\n375: \tcase \"reject\":\n376: \t\trs.card = nil\n377: \tcase \"final\":\n378: \t\tif p.Formal != nil {\n379: \t\t\tf := FormalRevInfo{Rev: p.Formal.Rev, Seq: p.Formal.Seq, At: time.Time{}, Actor: \"\"}\n380: \t\t\tif p.Formal.SupersedesRev > 0 {\n381: \t\t\t\tfor i := range rs.formal {\n382: \t\t\t\t\tif rs.formal[i].Rev == p.Formal.SupersedesRev {\n383: \t\t\t\t\t\tprev := rs.formal[i]\n384: \t\t\t\t\t\tf.Supersedes = &prev\n385: \t\t\t\t\t}\n386: \t\t\t\t}\n387: \t\t\t}\n388: \t\t\trs.formal = append(rs.formal, f)\n389: \t\t}\n390: \t\trs.card = nil\n391: \t}\n392: }\n393: \n394: // applyLegacyReviewDetail 解析旧实现(G0-2 之前)以 OpSectionState + 自由文本\n{\"repo\": \"RDM\", \"path\": \"internal/rdmapp/conclusions.go\", \"sha256\": \"e467cbecab7058b76258f1da7c8abc139c5f8540e48ea11abbfce212f39f2cd7\"}\n254: \trt, err := Get()\n255: \tif err != nil {\n256: \t\treturn domain.Conclusion{}, err\n257: \t}\n258: \tw, err := rt.worldForParam(project)\n259: \tif err != nil {\n260: \t\treturn domain.Conclusion{}, err\n261: \t}\n262: \tvar text, bucket, basisJSON, labelsJSON string\n263: \tvar labels domain.LabelSet\n264: \terr = rt.Store.RawDB().QueryRow(`SELECT text,bucket,basis_json,labels_json FROM rdm_conclusion_proposals\n265: \t\tWHERE id=? AND state='pending'`, proposalID).Scan(&text, &bucket, &basisJSON, &labelsJSON)\n266: \tif err == sql.ErrNoRows {\n267: \t\treturn domain.Conclusion{}, fmt.Errorf(\"rdmapp: 提议 %s 不存在或已决策\", proposalID)\n268: \t}\n269: \tif err != nil {\n270: \t\treturn domain.Conclusion{}, err\n271: \t}\n272: \t_ = json.Unmarshal([]byte(labelsJSON), &labels)\n273: \t// 依据:命令传入优先;回落提议自带。\n274: \tvar refs []domain.Ref\n275: \tfor _, b := range basis {\n276: \t\tfor i := 0; i < len(b); i++ {\n277: \t\t\tif b[i] == ':' {\n278: \t\t\t\trefs = append(refs, domain.Ref{Kind: domain.Kind(b[:i]), ID: b[i+1:]})\n279: \t\t\t\tbreak\n280: \t\t\t}\n281: \t\t}\n282: \t}\n283: \tif len(refs) == 0 {\n284: \t\tvar legacy []string\n285: \t\t_ = json.Unmarshal([]byte(basisJSON), &legacy)\n286: \t\tfor _, b := range legacy {\n287: \t\t\tfor i := 0; i < len(b); i++ {\n288: \t\t\t\tif b[i] == ':' {\n289: \t\t\t\t\trefs = append(refs, domain.Ref{Kind: domain.Kind(b[:i]), ID: b[i+1:]})\n290: \t\t\t\t\tbreak\n291: \t\t\t\t}\n292: \t\t\t}\n293: \t\t}\n294: \t}\n295: \tc, err := w.AddConclusion(text, refs, labels, \"trigger\", by)\n296: \tif err != nil {\n297: \t\treturn domain.Conclusion{}, err\n298: \t}\n299: \t_, err = rt.Store.RawDB().Exec(`UPDATE rdm_conclusion_proposals SET state='confirmed', decided_by=?, decision=? WHERE id=?`,\n300: \t\tby, \"confirmed:\"+c.ID, proposalID)\n301: \tif err != nil {\n302: \t\treturn domain.Conclusion{}, err\n303: \t}\n304: \treturn c, nil\n{\"repo\": \"RDM\", \"path\": \"internal/rdmapp/trace.go\", \"sha256\": \"76288d9cc879011341085b5dbbd1ef0769a3b7896c1a48d9f987aa00b6c05ae5\"}\n31: func Trace(_ context.Context, _ extension.Host, projectID, sectionID string) (*TraceResult, error) {\n32: \trt, err := Get()\n33: \tif err != nil {\n34: \t\treturn nil, err\n35: \t}\n36: \tw, err := rt.worldForParam(projectID)\n37: \tif err != nil {\n38: \t\treturn nil, err\n39: \t}\n40: \tsec, ok := w.Docs.Section(sectionID)\n41: \tif !ok {\n42: \t\treturn nil, errParam(\"章节不存在: \" + sectionID)\n43: \t}\n44: \tref := sec.Ref()\n45: \tres := &TraceResult{SectionID: sectionID, Title: sec.Title}\n46: \tfor _, e := range w.Net.EdgesWhere(func(e *domain.Edge) bool {\n47: \t\treturn e.To == ref || e.From == ref\n48: \t}) {\n49: \t\tother := e.From\n50: \t\tif e.From == ref {\n131: func Graph(projectID string) (*GraphResult, error) {\n132: \trt, err := Get()\n133: \tif err != nil {\n134: \t\treturn nil, err\n135: \t}\n136: \tw, err := rt.worldForParam(projectID)\n137: \tif err != nil {\n138: \t\treturn nil, err\n139: \t}\n140: \tres := &GraphResult{}\n141: \tfor _, s := range w.Notes.Query(domain.LabelCondition{}) {\n142: \t\tres.Nodes = append(res.Nodes, GraphNode{ID: s.ID, Kind: \"slice\",\n143: \t\t\tTitle: firstNonEmpty(s.Summary, truncate(s.Content, 18)), Col: 0})\n144: \t}\n145: \tfor _, d := range w.Docs.AllDocs() {\n146: \t\tfor _, sec := range d.Sections {\n147: \t\t\tif sec.Deleted() {\n148: \t\t\t\tcontinue\n149: \t\t\t}\n150: \t\t\tres.Nodes = append(res.Nodes, GraphNode{ID: sec.ID, Kind: \"section\",\n151: \t\t\t\tTitle: firstNonEmpty(sec.Title, sec.ID), Col: 1})\n152: \t\t}\n153: \t}\n154: \tfor _, ev := range w.Log().Snapshot() {\n155: \t\tif ev.Op != domain.OpOpenItemAdd {\n156: \t\t\tcontinue\n157: \t\t}\n158: \t\tif o, ok := w.Reg.Item(ev.Target.ID); ok && o.Open() {\n159: \t\t\tres.Nodes = append(res.Nodes, GraphNode{ID: o.ID, Kind: \"open-item\",\n160: \t\t\t\tTitle: truncate(o.Statement, 18), Col: 2})\n161: \t\t}\n205: func Hops(_ context.Context, _ extension.Host, projectID, refID string, depth int) (*HopsResult, error) {\n206: \trt, err := Get()\n207: \tif err != nil {\n208: \t\treturn nil, err\n209: \t}\n210: \tw, err := rt.worldForParam(projectID)\n211: \tif err != nil {\n212: \t\treturn nil, err\n213: \t}\n214: \tif depth <= 0 || depth > 5 {\n215: \t\tdepth = 2\n216: \t}\n217: \t// 判起点种类\n218: \tstartKind := \"slice\"\n219: \tif _, ok := w.Docs.Section(refID); ok {\n220: \t\tstartKind = \"section\"\n{\"repo\": \"RDM\", \"path\": \"internal/domain/persist.go\", \"sha256\": \"8655272bc532a927b224c25cb5a051ddfe0ae5414c53d80bbe739b01a1680b1e\"}\n108: \n109: // SaveWorldSnapshot / LoadWorldSnapshotAt:R5 加速层——序列化重放产物,\n110: // 读回 ≤at 最近快照。语义校验仍以事件重放为准(调用方按需比对)。\n111: func SaveWorldSnapshot(w *World, s *store.Store) error {\n112: \tevents := w.Log().Snapshot()\n113: \tat := time.Time{}\n114: \tif len(events) > 0 {\n115: \t\tat = events[len(events)-1].At\n116: \t}\n117: \tblob, err := json.Marshal(struct {\n118: \t\tAt time.Time `json:\"at\"`\n119: \t\tNotes int `json:\"notes\"`\n120: \t\tDocs int `json:\"docs\"`\n121: \t\tEdges int `json:\"edges\"`\n122: \t\tOpen int `json:\"openItems\"`\n123: \t\tLastSeq int64 `json:\"lastSeq\"`\n124: \t}{At: at, LastSeq: lastSeq(events),\n125: \t\tNotes: len(w.Notes.Query(LabelCondition{})),\n126: \t\tDocs: len(w.Docs.docs), Edges: len(w.Net.edges), Open: openItems(w)})\n127: \tif err != nil {\n128: \t\treturn err\n129: \t}\n130: \treturn s.SaveSnapshot(at, blob)\n131: }\n132: \n{\"repo\": \"RDM\", \"path\": \"plugins/rdm/plugin.go\", \"sha256\": \"364b0909a9f48597e375139d0b7248c9fcea72c3f1fc1a22b9c66808792b7df1\"}\n737: func rdmTrace(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n738: \tid, _ := req.Params[\"sectionId\"].(string)\n739: \tpid, _ := req.Params[\"projectId\"].(string)\n740: \treturn rdmapp.Trace(ctx, h, pid, id)\n741: }\n742: \n743: func rdmTraceGraph(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n744: \tpid, _ := req.Params[\"projectId\"].(string)\n745: \treturn rdmapp.Graph(pid)\n746: }\n747: \n748: func rdmTraceHops(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n749: \tid, _ := req.Params[\"ref\"].(string)\n750: \tdepth := 2\n751: \tif d, ok := req.Params[\"depth\"].(float64); ok && int(d) > 0 {\n752: \t\tdepth = int(d)\n753: \t}\n754: \tpid, _ := req.Params[\"projectId\"].(string)\n755: \treturn rdmapp.Hops(ctx, h, pid, id, depth)\n756: }\n757: \n758: func rdmTraceConfirm(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n759: \tid, _ := req.Params[\"edgeId\"].(string)\n760: \tpid, _ := req.Params[\"projectId\"].(string)\n761: \tres, err := rdmapp.TraceConfirm(ctx, h, pid, id, req.Actor)\n1390: \tpid, _ := req.Params[\"projectId\"].(string)\n1391: \treturn rdmapp.CGraphSummary(pid)\n1392: }\n1393: \n1394: func rdmCGraphView(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n1395: \tpid, _ := req.Params[\"projectId\"].(string)\n1396: \tview, _ := req.Params[\"view\"].(string)\n1397: \tif view == \"\" {\n1398: \t\treturn nil, rdmapp.ErrParam(\"view 必填(13485|sw0664|hardware|risk)\")\n1399: \t}\n1400: \treturn rdmapp.CGraphChainView(pid, view)\n1401: }\n1402: \n1403: func rdmCGraphMatrix(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n1404: \tpid, _ := req.Params[\"projectId\"].(string)\n1405: \tfrom, _ := req.Params[\"from\"].(string)\n1406: \tto, _ := req.Params[\"to\"].(string)\n1407: \tif from == \"\" || to == \"\" {\n1408: \t\treturn nil, rdmapp.ErrParam(\"from/to 必填(受控节点类型,如 UN/PR)\")\n1409: \t}\n1410: \treturn rdmapp.CGraphMatrix(pid, from, to)\n1411: }\n1412: \n1413: func rdmCGraphExport(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n1414: \tpid, _ := req.Params[\"projectId\"].(string)\n1415: \tformat, _ := req.Params[\"format\"].(string)\n1438: func rdmProjectCreate(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n1439: \tname, _ := req.Params[\"name\"].(string)\n1440: \tif name == \"\" {\n1441: \t\treturn nil, rdmapp.ErrParam(\"name 必填\")\n1442: \t}\n1443: \tp, err := rdmapp.CreateProject(name, req.Actor)\n1444: \tif err != nil {\n1445: \t\treturn nil, err\n1446: \t}\n1447: \t_ = h.Audit(\"rdm.project.create\", p.ID, \"name=\"+p.Name)\n1448: \treturn map[string]any{\"projectId\": p.ID, \"name\": p.Name, \"createdBy\": p.CreatedBy}, nil\n1449: }\n1450: \n1451: func rdmProjectList(ctx context.Context, h extension.Host, req extension.Request) (any, error) {\n1452: \tlist, err := rdmapp.ListProjects()\n1453: \tif err != nil {\n1454: \t\treturn nil, err\n1455: \t}\n1456: \tlegacy, err := rdmapp.LegacyStats()\n1457: \tif err != nil {\n1458: \t\treturn nil, err\n1459: \t}\n1460: \tout := []map[string]any{}\n1461: \tfor _, p := range list {\n1462: \t\tout = append(out, map[string]any{\"projectId\": p.ID, \"name\": p.Name,\n1463: \t\t\t\"createdBy\": p.CreatedBy, \"createdAt\": p.CreatedAt})\n1464: \t}\n1465: \treturn map[string]any{\"projects\": out, \"legacyUnattributedEvents\": legacy}, nil\n{\"repo\": \"RDM\", \"path\": \"web/app.js\", \"sha256\": \"37c7a0847ddc1903d7bf3679ddef71b5fed3c98fe268f621453456ff6eaa7a3f\"}\n69: async function command(id, params = {}) {\n70: const out = await api(`/api/commands/${encodeURIComponent(id)}`, { params, conversationId: state.conversationId || '' });\n71: const st = out?.receipt?.state;\n72: if (st === 'rejected') throw new Error(out.receipt.error || out.receipt.message || '命令被拒绝');\n73: if (out?.card) throw new Error('高危命令已生成确认卡——请点击右侧卡片上的「确认执行/取消」按钮');\n74: return out?.payload !== undefined ? out.payload : out;\n75: }\n76: \n77: // danger 命令 UI 触发的提示分流:确认卡≠失败——指引去卡片按钮完成闭环。\n78: const confirmHint = (e) => {\n79: if (String(e.message).includes('确认卡')) sys('已生成确认卡——请在右侧卡片上点「确认执行」。');\n80: else sys(`执行失败:${e.message}`);\n165: // ---- 命令分发与卡片渲染 ----\n166: const KNOWN = ['rdm.baseline', 'rdm.gap', 'rdm.draft', 'rdm.draft.compose', 'rdm.conflicts'];\n167: \n168: // ---- F1 上传五步(📎 与对话双入口同源:ensureProject → 基座 uploads → rdm.upload)----\n169: \n170: // GET /api/projects 兜底取/建项目:基座 uploads 是项目级落点,工作台无项目概念,取首个/建默认。\n171: async function ensureProject() {\n172: if (state.projectId) return state.projectId;\n173: const res = await fetch(state.baseUrl + '/api/projects', {\n174: headers: state.token ? { Authorization: `Bearer ${state.token}` } : {},\n175: });\n176: if (!res.ok) throw new Error(`projects ${res.status}`);\n177: const list = await res.json();\n178: const first = Array.isArray(list) ? list[0] : (list?.projects || [])[0];\n179: if (first?.id) {\n180: state.projectId = first.id;\n181: return state.projectId;\n182: }\n183: const created = await fetch(state.baseUrl + '/api/projects', {\n184: method: 'POST',\n185: headers: { 'Content-Type': 'application/json', ...(state.token ? { Authorization: `Bearer ${state.token}` } : {}) },\n186: body: JSON.stringify({ name: 'RDM 自身研发' }),\n911: async function openTraceOverlay() {\n912: closeOverlay();\n913: const g = await command('rdm.trace.graph', {});\n914: const ov = document.createElement('div');\n915: ov.className = 'overlay';\n916: ov.id = 'ov-trace';\n917: ov.addEventListener('click', (e) => { if (e.target === ov) closeOverlay(); });\n918: const panel = document.createElement('div');\n919: panel.className = 'ov-panel';\n920: const head = document.createElement('div');\n921: head.className = 'ov-head';\n922: const ht = document.createElement('div');\n923: const h1 = document.createElement('div');\n924: h1.className = 'ov-title';\n925: h1.textContent = '追溯网';\n926: const h2 = document.createElement('div');\n{\"repo\": \"Dev\", \"path\": \"modules/backend/pkg/extension/host.go\", \"sha256\": \"a8a8c05eaf2e611375bead39fe383c7a1bed251e547d3b526e7e88c509ec7db2\"}\n9: // Request 是进程内命令处理器收到的一次分发请求(cmdbus.Request 的子集)。\n10: type Request struct {\n11: \tID string\n12: \tParams map[string]any\n13: \tEntrance string // button | card | slash | chat | api(归一)\n14: \tActor string\n15: \tOwner string\n16: \tConversationID string\n17: }\n18: \n19: // Handler 是下游注册的进程内命令处理器:每次分发由基座构造 owner 作用域的\n20: // Host 句柄传入,处理器经句柄访问基座能力,不得自行越权持有 owner 凭证。\n21: type Handler func(ctx context.Context, h Host, req Request) (any, error)\n22: \n23: // Host 是基座在分发时构造的 owner 作用域宿主句柄(EXT-1 最小集 + EXT-5 解析)。\n24: // 所有能力的可见范围都以本次分发的 Owner 为准;artifacts 只读\n25: // (写入属完整集,另行评估)。实现由基座 internal 提供。\n26: type Host interface {\n27: \t// PluginID 返回注册处理器的插件标识(形如 rdm)。\n28: \tPluginID() string\n29: \t// Owner 返回本次分发的作用域 owner。\n30: \tOwner() string\n31: \n32: \t// KVPut/KVGet 插件 KV(按 pluginID+owner 隔离)。\n33: \tKVPut(key, value string) error\n34: \tKVGet(key string) (value string, ok bool, err error)\n35: \n36: \t// Audit 写一条 owner 名下的审计事件。\n37: \tAudit(action, target, evidence string) error\n38: \n{\"repo\": \"Dev\", \"path\": \"modules/backend/internal/store/platform.go\", \"sha256\": \"a565d901a9277d6724f6fe0d2fb0c13dd8d06ad084dda04e5e6fc78a781a2db0\"}\n187: type AuditEvent struct {\n188: \tID int64 `json:\"id\"`\n189: \tTime string `json:\"time\"`\n190: \tOwner string `json:\"owner\"`\n191: \tAction string `json:\"action\"`\n192: \tActor string `json:\"actor,omitempty\"`\n193: \tTarget string `json:\"target,omitempty\"`\n194: \tEvidence string `json:\"evidence,omitempty\"`\n195: \tTraceID string `json:\"traceId,omitempty\"`\n196: }\n197: \n198: func (s *Store) AppendAuditEvent(ev AuditEvent) error {\n199: \tif ev.Time == \"\" {\n200: \t\tev.Time = time.Now().UTC().Format(time.RFC3339)\n201: \t}\n202: \t_, err := s.db.Exec(s.q(`INSERT INTO audit_events(time,owner,action,actor,target,evidence,trace_id) VALUES(?,?,?,?,?,?,?)`),\n203: \t\tev.Time, ev.Owner, ev.Action, ev.Actor, ev.Target, ev.Evidence, ev.TraceID)\n204: \treturn err\n205: }\n206: \n207: func (s *Store) ListAuditEvents(owner string, limit int) ([]AuditEvent, error) {\n208: \tif limit <= 0 || limit > 200 {\n209: \t\tlimit = 50\n210: \t}\n211: \trows, err := s.db.Query(s.q(`SELECT id,time,owner,action,actor,target,evidence,trace_id FROM audit_events\n212: \t\tWHERE owner=? OR ?='' ORDER BY id DESC LIMIT ?`), owner, owner, limit)\n213: \tif err != nil {\n214: \t\treturn nil, err\n{\"repo\": \"Dev\", \"path\": \"modules/backend/internal/store/audit.go\", \"sha256\": \"54a7c6ab8315f3c0b3f0ec97ab857925a7a745453a2a41fb28051e54423ecf9a\"}\n32: \tif owner == \"\" {\n33: \t\treturn []agentcommand.AuditEnvelope{}, nil\n34: \t}\n35: \tif limit <= 0 || limit > 500 {\n36: \t\tlimit = 100\n37: \t}\n38: \tvar (\n39: \t\trows *sql.Rows\n40: \t\terr error\n41: \t)\n42: \tif conversationID == \"\" {\n43: \t\trows, err = s.db.Query(s.q(`SELECT payload FROM command_audit WHERE owner=? ORDER BY time DESC LIMIT ?`), owner, limit)\n44: \t} else {\n45: \t\trows, err = s.db.Query(s.q(`SELECT payload FROM command_audit WHERE owner=? AND conversation_id=? ORDER BY time DESC LIMIT ?`), owner, conversationID, limit)\n46: \t}\n47: \tif err != nil {\n48: \t\treturn nil, err\n49: \t}\n50: \tdefer rows.Close()\n51: \tout := []agentcommand.AuditEnvelope{}\n52: \tfor rows.Next() {\n53: \t\tvar raw string\n54: \t\tif err := rows.Scan(&raw); err != nil {\n55: \t\t\treturn nil, err\n{\"repo\": \"Dev\", \"path\": \"modules/backend/internal/app/compiled.go\", \"sha256\": \"5f7da627fedcac99ecc0f50b7ae0a593defa189f77e0e4250f0f5faef1a1b7bc\"}\n31: func (r pluginRegistry) AddCommandHandler(spec json.RawMessage, h extension.Handler) error {\n32: \tif r.bus == nil {\n33: \t\treturn nil\n34: \t}\n35: \tif h == nil {\n36: \t\treturn fmt.Errorf(\"extension: %s: nil command handler\", r.pluginID)\n37: \t}\n38: \tvar s agentcommand.CommandSpec\n39: \tif err := json.Unmarshal(spec, &s); err != nil {\n40: \t\treturn fmt.Errorf(\"extension: command spec: %w\", err)\n41: \t}\n42: \treturn r.bus.RegisterPluginCommand(s, func(ctx context.Context, req cmdbus.Request) (any, error) {\n43: \t\thost := inprocHost{caps: r.caps, pluginID: r.pluginID, owner: req.Owner}\n44: \t\treturn h(ctx, host, extension.Request{\n45: \t\t\tID: req.ID, Params: req.Params, Entrance: req.Entrance,\n46: \t\t\tActor: req.Actor, Owner: req.Owner, ConversationID: req.ConversationID,\n47: \t\t})\n48: \t})\n49: }\n{\"repo\": \"Dev\", \"path\": \"modules/backend/internal/cmdbus/cmdbus.go\", \"sha256\": \"843f31dd2fe23d1ebe0da0a896b95d3040f2a5d0ba0bf200d4146fccab41ffd9\"}\n228: func (b *Bus) Dispatch(ctx context.Context, req Request) Response {\n229: \tstart := b.now()\n230: \treq.Entrance = agentcommand.CanonicalEntrance(req.Entrance)\n231: \treceipt := func(state agentcommand.ResultState, op, reason string) Response {\n232: \t\treturn Response{Receipt: b.auditReceipt(req, state, op, reason, start)}\n233: \t}\n234: \tspec, _, err := b.reg.Resolve(req.ID)\n235: \tif err != nil {\n236: \t\treturn receipt(agentcommand.StateRejected, \"\", \"unknown or disabled command: \"+req.ID)\n237: \t}\n238: \tif err := validateParams(spec.ParamsSchema, req.Params); err != nil {\n239: \t\treturn receipt(agentcommand.StateRejected, \"\", \"params: \"+err.Error())\n240: \t}\n241: \t// 高危收口:非确认入口先落内联确认卡(committed 语义 = 卡已创建;确认后二次分发执行)。\n242: \tif spec.Danger == agentcommand.DangerHigh && !req.Confirmed {\n243: \t\tif b.cards == nil || req.ConversationID == \"\" {\n244: \t\t\treturn receipt(agentcommand.StateRejected, \"\", \"high-danger command requires conversation context for inline confirm\")\n245: \t\t}\n246: \t\tcard, err := b.cards.Create(req.Owner, confirmCard(spec, req), \"cmd:\"+spec.ID)\n247: \t\tif err != nil {\n248: \t\t\treturn receipt(agentcommand.StateUnknown, \"\", \"confirm card: \"+err.Error())\n249: \t\t}\n250: \t\tb.pendMu.Lock()\n251: \t\tb.pending[card.ID] = pending{req: req, cardID: card.ID}\n252: \t\tb.pendMu.Unlock()\n253: \t\tif b.pendingStore != nil {\n254: \t\t\traw, _ := json.Marshal(req)\n255: \t\t\t_ = b.pendingStore.SavePendingConfirm(card.ID, req.Owner, string(raw))\n256: \t\t}\n257: \t\tr := b.auditReceipt(req, agentcommand.StateAccepted, card.ID, \"awaiting explicit confirm\", start)\n258: \t\treturn Response{Receipt: r, Card: &card}\n259: \t}\n260: \th, ok := b.handlers[req.ID]\n261: \tif !ok {\n262: \t\treturn receipt(agentcommand.StateRejected, \"\", \"no host handler bound for \"+req.ID)\n263: \t}\n264: \tpayload, err := h(ctx, req)\n265: \tif err != nil {\n266: \t\treturn receipt(agentcommand.StateRejected, \"\", \"rejected: \"+err.Error())\n267: \t}\n268: \top := fmt.Sprintf(\"op_%s_%d\", strings.ReplaceAll(strings.TrimPrefix(req.ID, \"\"), \".\", \"_\"), b.now().UnixNano())\n269: \treturn Response{Receipt: b.auditReceipt(req, agentcommand.StateCommitted, op, \"\", start), Payload: payload}\n{\"repo\": \"Dev\", \"path\": \"modules/frontend/src/components/AdminZone.tsx\", \"sha256\": \"5b853ae339ffd61f5a88d1102b82c4f63f79390e1073d1519ddde08a57159c3b\"}\n23: const SECTIONS: AdminSectionDef[] = [\n24: { key: 'users', label: '用户管理', icon: 'users', desc: '建号、发放初始密码、重置密码(管理员发放制)', render: () => },\n25: { key: 'profiles', label: '智能体画像', icon: 'bot', desc: '系统级画像:系统提示、工具允许/确认/拒绝清单', render: () => },\n26: { key: 'plugins', label: '插件管理', icon: 'puzzle', desc: '已装载插件清单与热重载(装卸不影响核心)', render: () => },\n27: { key: 'workspaces', label: '插件工作区', icon: 'grid', desc: '插件声明面板与服务端声明工作区', render: () => },\n28: ]\n29: \n30: export function AdminZone() {\n31: const me = useStore(s => s.me)\n32: const [sectionKey, setSectionKey] = useState('users')\n33: // 双保险:入口已在菜单层门控(me?.isAdmin),此处再拦一次(纵深防御)。\n34: if (!me?.isAdmin) return null\n35: const section = SECTIONS.find(s => s.key === sectionKey) ?? SECTIONS[0]\n36: return (\n{\"version\": \"1.27.3\"}\nAPI token verification: authenticated\n{\"repo\": \"Agent-System-Dev\", \"open_prs\": [{\"number\": 325, \"title\": \"U1+U2: team PG tier, atomic migrations, connection budget, real-database CI gate (pin #137/#61)\", \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/325\", \"head\": \"7134f83fde4634a37b45bb1ced40b35104fc2c1a\", \"base\": \"main\"}, {\"number\": 317, \"title\": \"Align the svc.sh startup precheck with binary auth semantics and keep the reused DSN\", \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/317\", \"head\": \"cd05692e809f3751b30c1583bebbb859410ef172\", \"base\": \"main\"}]}\n{\"repo\": \"Agent-System-Backend\", \"open_prs\": []}\n{\"repo\": \"Agent-System-RDM\", \"open_prs\": [{\"number\": 194, \"title\": \"Close merged task card: feature-g3-native-xlsx (PR #193)\", \"url\": \"https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/194\", \"head\": \"fe16a527722973cb8a84440e417f5ad0585c5ae8\", \"base\": \"main\"}]}\n{\"repo\": \"Agent-System-Documents\", \"open_prs\": []}\n{\"heads_after\": {\"Dev\": \"5771d4f1e5b692bce95eb64cc30dc9931079ad12\", \"RDM\": \"0081628a10ec48a36537c6eced11a57439c986fa\"}, \"same_heads\": true, \"business_tests\": \"NOT_RUN\", \"runtime_acceptance\": \"NOT_RUN\"}\n", "output_sha256": "cb2e6ec66105777ba07b6441d395b2a9c5a948f8033caa95060cdcff74ac7d68", "receipt_sha256": "26681e6036c5ccc9e1fc907511b4ebdfb87929b67af93ba1bdbba92ae78304e2" } diff --git a/docs/records/2026-10-14-merge-queue-trial.md b/docs/records/2026-10-14-merge-queue-trial.md index daefe5a..902e663 100644 --- a/docs/records/2026-10-14-merge-queue-trial.md +++ b/docs/records/2026-10-14-merge-queue-trial.md @@ -1,6 +1,6 @@ # 合入调度首轮受控试行(2026-10-14) -状态:三个真实任务已由智能体依次合入;本报告记录 **manual** 模式的实际观察。是否扩大试行、调整预算或建设自动领取,仍待用户评审。依据为[已批准的实施计划](../proposals/2026-10-13-merge-queue-implementation-plan.md) U5–U6、[Dev 项目规则](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/src/branch/main/policy/merge-queue.md)和[唯一调度记录 #518](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/issues/518)。本报告不代表发布、部署或运行服务验收。 +状态:三个真实任务已由智能体依次合入;本报告记录 **manual** 模式的实际观察。是否扩大试行、调整预算或建设自动领取,仍待用户评审。依据为[已批准的实施计划](../proposals/2026-10-13-merge-queue-implementation-plan.md) U5–U6、[Dev 项目规则](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/src/branch/main/policy/merge-queue.md)和[唯一调度记录 #518](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/issues/518)。本报告不代表发布、部署或运行服务验收。 ## 范围与证据口径 @@ -14,9 +14,9 @@ | 顺序 | 原任务 R0 | 先行组件 | Dev 最终 base → head | 独立 Review 与当前 HEAD GATE | 实际合入 main | |---|---|---|---|---|---| -| [#489](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/489) | `cd61bbb112eea6a210a64e84f2cef00b0d64bfc1` | [Documents #89](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/89) → `7bd4e17827d4c7c88647bf3c9199c495b60cb107` | `add097d06137c4912a4ed9279e98ca353e4e4cf1` → `5e6bf4aa0546d68fb3f872158f22b2791c301a60` | `/root/docs_delivery_review` PASS;[run 3038](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/actions/runs/3038) 三作业成功 | `f00165e8d71e4dc8ba0ceb7dc50c1a8a3deb6d60` | -| [#488](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488) | `99048dda1f48bccb3d5d798050d7beeea2907177` | [Frontend #73](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/73) → `5313cfad4e633d0909ed40dcdfa28a11bc1902c0`;[RDM #301](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301) → `ef5100a020abdd8ba8712c3d15c04c28bcac6e84` | `f00165e8d71e4dc8ba0ceb7dc50c1a8a3deb6d60` → `a70de2c54a74e175ad12c8d52ac29d0bafce9491` | `/root/merge_queue_review` PASS、隔离浏览器 7/7;[run 3050](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/actions/runs/3050) 三作业成功 | `d852c159b6b3387a2f418a42ab6d3696ac873d01` | -| [#486](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/486) | `4d362537d0e8755a03b1757b5bad92779a064b33` | [Backend #185](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/185) → `8e80e2618eb7471dd12d5f172ff3cd23622b7d2f` | `d852c159b6b3387a2f418a42ab6d3696ac873d01` → `d805cc1697ae7f49d371a56a6a55191f00897b8c` | `/root/merge_queue_review` PASS;[run 3067](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/actions/runs/3067) 三作业成功 | `05b997b84db26c517604c48d12676f0eb2b86e18` | +| [#489](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/489) | `cd61bbb112eea6a210a64e84f2cef00b0d64bfc1` | [Documents #89](https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/89) → `7bd4e17827d4c7c88647bf3c9199c495b60cb107` | `add097d06137c4912a4ed9279e98ca353e4e4cf1` → `5e6bf4aa0546d68fb3f872158f22b2791c301a60` | `/root/docs_delivery_review` PASS;[run 3038](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/actions/runs/3038) 三作业成功 | `f00165e8d71e4dc8ba0ceb7dc50c1a8a3deb6d60` | +| [#488](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/488) | `99048dda1f48bccb3d5d798050d7beeea2907177` | [Frontend #73](https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/73) → `5313cfad4e633d0909ed40dcdfa28a11bc1902c0`;[RDM #301](https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/301) → `ef5100a020abdd8ba8712c3d15c04c28bcac6e84` | `f00165e8d71e4dc8ba0ceb7dc50c1a8a3deb6d60` → `a70de2c54a74e175ad12c8d52ac29d0bafce9491` | `/root/merge_queue_review` PASS、隔离浏览器 7/7;[run 3050](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/actions/runs/3050) 三作业成功 | `d852c159b6b3387a2f418a42ab6d3696ac873d01` | +| [#486](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/486) | `4d362537d0e8755a03b1757b5bad92779a064b33` | [Backend #185](https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/185) → `8e80e2618eb7471dd12d5f172ff3cd23622b7d2f` | `d852c159b6b3387a2f418a42ab6d3696ac873d01` → `d805cc1697ae7f49d371a56a6a55191f00897b8c` | `/root/merge_queue_review` PASS;[run 3067](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/actions/runs/3067) 三作业成功 | `05b997b84db26c517604c48d12676f0eb2b86e18` | 三个 Dev 合入都用固定 `head_commit_id`、`force_merge=false`,合入后从远端重新读取 PR/main 并核对完整 tree 与已审候选一致;组件 gitlink 没有回退。#489 首个合入响应后的本地指针统计出错,Root 先从 PR/main 重新对账再释放窗口,未重发合入请求。#488 的独立浏览器验收使用临时二进制/私有环境,未操作 live 服务。#486 的 U7 安全审阅先发现 B1–B7,Backend 在推最终源 HEAD 前修复并以隔离 PostgreSQL 真实交叠、跨进程、SIGTERM/SIGKILL 重放;Dev 最终组合继续通过本地 `make test`、隔离 PostgreSQL/Redis `make test-backend-pg` 和 `make build` 的 SELF 检查,GATE 另见表内 run 3067。 @@ -26,11 +26,11 @@ | Dev PR | 目标纳入次数 | 固定后成功的无变更核验 | 本轮最终 PR CI | 作业运行时长(test / test-pg / svc-realcombo) | runner 等待 | |---|---:|---:|---|---|---| -| #489 | 1(启动整改期) | 至少 3 次,均未改 HEAD | [3038](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/actions/runs/3038):1 次、3/3 成功 | 5:10 / 7:22 / 1:46 | 每作业 3 秒 | -| #488 | 1(最终窗口) | 2 次,均未改 HEAD | [3050](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/actions/runs/3050):1 次、3/3 成功 | 5:12 / 8:42 / 1:54 | 每作业 3 秒 | -| #486 | 1(最终窗口) | 1 次成功;另 1 次锁拒绝未推进 | [3067](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/actions/runs/3067):1 次、3/3 成功 | 5:01 / 7:19 / 1:54 | 每作业 3 秒 | +| #489 | 1(启动整改期) | 至少 3 次,均未改 HEAD | [3038](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/actions/runs/3038):1 次、3/3 成功 | 5:10 / 7:22 / 1:46 | 每作业 3 秒 | +| #488 | 1(最终窗口) | 2 次,均未改 HEAD | [3050](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/actions/runs/3050):1 次、3/3 成功 | 5:12 / 8:42 / 1:54 | 每作业 3 秒 | +| #486 | 1(最终窗口) | 1 次成功;另 1 次锁拒绝未推进 | [3067](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/actions/runs/3067):1 次、3/3 成功 | 5:01 / 7:19 / 1:54 | 每作业 3 秒 | -三次最终 PR CI 共 3 个 run、9 个必需作业,**因本轮正常排队任务移动 main 而废弃的最终 run 为 0**;没有拿旧绿色检查放行新 HEAD。合入后 main push CI 单列:[run 3040](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/actions/runs/3040) 对 #489 合入树、[run 3053](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/actions/runs/3053) 对 #488 合入树、[run 3068](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/actions/runs/3068) 对 #486 合入树,各自另有 3/3 作业成功;共 3 个 push run、9 个作业,不能省略这部分实际 CI 成本。3068 在 04:43:55Z 完成,精确对象为 `05b997b84db26c517604c48d12676f0eb2b86e18`。组件仓的 GATE/N/A 与 RDM #301 任务卡闭合 [PR #364](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/364) 的 CI 不计入上述 Dev 目标 run。 +三次最终 PR CI 共 3 个 run、9 个必需作业,**因本轮正常排队任务移动 main 而废弃的最终 run 为 0**;没有拿旧绿色检查放行新 HEAD。合入后 main push CI 单列:[run 3040](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/actions/runs/3040) 对 #489 合入树、[run 3053](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/actions/runs/3053) 对 #488 合入树、[run 3068](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/actions/runs/3068) 对 #486 合入树,各自另有 3/3 作业成功;共 3 个 push run、9 个作业,不能省略这部分实际 CI 成本。3068 在 04:43:55Z 完成,精确对象为 `05b997b84db26c517604c48d12676f0eb2b86e18`。组件仓的 GATE/N/A 与 RDM #301 任务卡闭合 [PR #364](https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/364) 的 CI 不计入上述 Dev 目标 run。 自 2026-10-12 起查询到三个 PR 另有 13 次**试行前开发** Actions run(#489 2、#488 7、#486 4;6 成功、7 失败),其对象与本轮最终候选不同;原始只读清单 `/tmp/mq-trial-ci-history-20261014.json`。这些运行既不能当本轮最终准入,也不能归因于本轮 main 移动。runner 作业等待时间以各 GATE job 的 `created_at`→`started_at` 计算;人的准备/依赖等待没有统一的入队就绪时间戳,本轮不填造净等待时长。仅可复核首次最终同步到合入的可观测下界:#489 19:49、#488 24:20、#486 18:46;它们含测试、Review 和平台等待,不等同完整窗口耗时。三条目均未重新领取最终目标窗口;启动整改、#488 的 E2E 夹具失败、#486 的一次锁拒绝分别保留,不计成 CI 废弃或窗口接管成功。 diff --git a/docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-stage2-gitea-token-01a13639.json b/docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-stage2-gitea-token-01a13639.json index 72fd646..16d8074 100644 --- a/docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-stage2-gitea-token-01a13639.json +++ b/docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-stage2-gitea-token-01a13639.json @@ -2,7 +2,7 @@ "schema": 1, "source": "SELF", "timestamp": "2026-10-13T19:38:26.821365+00:00", - "command": "t=$(sed -n \"s/^[ -]*ACCESS_TOKEN=\" ~/.secrets/gitea); test -n \"$t\" && curl -fsS -m 10 -o /dev/null -H \"Authorization: token \" https://git-home.u1680832.nyat.app:30319/api/v1/user", + "command": "t=$(sed -n \"s/^[ -]*ACCESS_TOKEN=\" ~/.secrets/gitea); test -n \"$t\" && curl -fsS -m 10 -o /dev/null -H \"Authorization: token \" https://gitea.naitangbaobao.cn/api/v1/user", "command_sha256": "c8a3814ad9cdc7dc7f580b1180932f58b4fdc6b3ff46eab0efb906cda64a9837", "cwd": "/home/weichen/projects/Agent-System-Dev", "common_dir": "/home/weichen/projects/Agent-System-Dev/.git", diff --git a/docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-stage2-gitea-version-01a13639.json b/docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-stage2-gitea-version-01a13639.json index 8ad0ad9..4a0c715 100644 --- a/docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-stage2-gitea-version-01a13639.json +++ b/docs/records/2026-10-14-rdm-two-trees-latest-templates/evidence/rdm-two-trees-stage2-gitea-version-01a13639.json @@ -2,7 +2,7 @@ "schema": 1, "source": "SELF", "timestamp": "2026-10-13T19:38:26.819063+00:00", - "command": "curl -fsS -m 10 https://git-home.u1680832.nyat.app:30319/api/v1/version", + "command": "curl -fsS -m 10 https://gitea.naitangbaobao.cn/api/v1/version", "command_sha256": "e864385467c791b083277d93e0dab04efe7f616be7afa3ffe5cf4262be12b6af", "cwd": "/home/weichen/projects/Agent-System-Dev", "common_dir": "/home/weichen/projects/Agent-System-Dev/.git", diff --git a/docs/records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage2-evaluation-r1.md b/docs/records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage2-evaluation-r1.md index 6255ee3..b0ff75e 100644 --- a/docs/records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage2-evaluation-r1.md +++ b/docs/records/2026-10-14-rdm-two-trees-latest-templates/rdm-two-trees-stage2-evaluation-r1.md @@ -100,16 +100,16 @@ | 历史方案/交付状态回填 | Documents #89、Dev #489:原两树方案及恢复/账号方案状态 | 主要是文档状态重叠;本轮新需求记录与原方案的状态更新须协调,不能用旧正文或索引表示本目标已完成 | | 账户事务与活动实例保护 | Backend #185、Dev #486/#482 | 对真实身份/审计/验收环境有依赖影响;不会重复实施账户事务、替换当前身份或操作运行实例 | -- [Agent-System-Backend #193](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193):`5f834544b0b808cb16214a36725f2ae3cb90bfd4` -- [Agent-System-Dev #488](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488):`334d2e2375095f3b4160ab232296f9c92065c565` -- [Agent-System-Dev #489](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/489):`3e7f0360087b126f41fa9ce18dbd1e53d0a8f067` -- [Agent-System-Dev #512](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512):`e31443a8ff1f099f9b2ef320c295b0ddcdaf503d` -- [Agent-System-Documents #89](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/89):`b8df6f3c2a3180b06c61d2303bbfea9a3914f186` -- [Agent-System-Documents #95](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95):`c7cb2d8d89aaef0329c9a8a2045fcd42abb36e39` -- [Agent-System-Frontend #73](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/73):`d9bb780384b16f661d71a5e6ad288a77426d9d98` -- [Agent-System-Frontend #79](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79):`006c81567546deb1cbd95abbb7ca6a36f99241b2` -- [Agent-System-RDM #301](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301):`6252f62524ef34360fdcdf8844d7e729378ffbfb` -- [Agent-System-RDM #307](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307):`8ae52a6d9a4d8b60e875f9c56862f34dffed7705` +- [Agent-System-Backend #193](https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/193):`5f834544b0b808cb16214a36725f2ae3cb90bfd4` +- [Agent-System-Dev #488](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/488):`334d2e2375095f3b4160ab232296f9c92065c565` +- [Agent-System-Dev #489](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/489):`3e7f0360087b126f41fa9ce18dbd1e53d0a8f067` +- [Agent-System-Dev #512](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/512):`e31443a8ff1f099f9b2ef320c295b0ddcdaf503d` +- [Agent-System-Documents #89](https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/89):`b8df6f3c2a3180b06c61d2303bbfea9a3914f186` +- [Agent-System-Documents #95](https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/95):`c7cb2d8d89aaef0329c9a8a2045fcd42abb36e39` +- [Agent-System-Frontend #73](https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/73):`d9bb780384b16f661d71a5e6ad288a77426d9d98` +- [Agent-System-Frontend #79](https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/79):`006c81567546deb1cbd95abbb7ca6a36f99241b2` +- [Agent-System-RDM #301](https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/301):`6252f62524ef34360fdcdf8844d7e729378ffbfb` +- [Agent-System-RDM #307](https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/307):`8ae52a6d9a4d8b60e875f9c56862f34dffed7705` 补充源码核对:Frontend #73候选主要新增概览导出,但其 `EventRow` 仍显示 `ev.op`、actor及截断detail;所以该在途工作并不覆盖本次“详细可读操作记录”。Documents #95候选设计将模型发现与可信依据/待确认判断分开;这是相关约束,不能将其“已批准设计”叙述升级为本轮模型验证或主干已交付能力。 diff --git a/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-refresh-20261014-084314/snapshot.json b/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-refresh-20261014-084314/snapshot.json index dba3e6f..6069c5e 100644 --- a/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-refresh-20261014-084314/snapshot.json +++ b/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-refresh-20261014-084314/snapshot.json @@ -49,7 +49,7 @@ { "repo": "Agent-System-Backend", "number": 193, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/193", "oldHead": "5f834544b0b808cb16214a36725f2ae3cb90bfd4", "head": "5f834544b0b808cb16214a36725f2ae3cb90bfd4", "state": "open", @@ -60,7 +60,7 @@ { "repo": "Agent-System-Dev", "number": 488, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/488", "oldHead": "334d2e2375095f3b4160ab232296f9c92065c565", "head": "334d2e2375095f3b4160ab232296f9c92065c565", "state": "open", @@ -71,7 +71,7 @@ { "repo": "Agent-System-Dev", "number": 489, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/489", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/489", "oldHead": "3e7f0360087b126f41fa9ce18dbd1e53d0a8f067", "head": "3e7f0360087b126f41fa9ce18dbd1e53d0a8f067", "state": "open", @@ -82,7 +82,7 @@ { "repo": "Agent-System-Dev", "number": 512, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/512", "oldHead": "e31443a8ff1f099f9b2ef320c295b0ddcdaf503d", "head": "e31443a8ff1f099f9b2ef320c295b0ddcdaf503d", "state": "open", @@ -93,7 +93,7 @@ { "repo": "Agent-System-Documents", "number": 89, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/89", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/89", "oldHead": "b8df6f3c2a3180b06c61d2303bbfea9a3914f186", "head": "b8df6f3c2a3180b06c61d2303bbfea9a3914f186", "state": "open", @@ -104,7 +104,7 @@ { "repo": "Agent-System-Documents", "number": 95, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/95", "oldHead": "c7cb2d8d89aaef0329c9a8a2045fcd42abb36e39", "head": "c7cb2d8d89aaef0329c9a8a2045fcd42abb36e39", "state": "open", @@ -115,7 +115,7 @@ { "repo": "Agent-System-Frontend", "number": 73, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/73", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/73", "oldHead": "d9bb780384b16f661d71a5e6ad288a77426d9d98", "head": "d9bb780384b16f661d71a5e6ad288a77426d9d98", "state": "open", @@ -126,7 +126,7 @@ { "repo": "Agent-System-Frontend", "number": 79, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/79", "oldHead": "006c81567546deb1cbd95abbb7ca6a36f99241b2", "head": "006c81567546deb1cbd95abbb7ca6a36f99241b2", "state": "open", @@ -137,7 +137,7 @@ { "repo": "Agent-System-RDM", "number": 301, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/301", "oldHead": "6252f62524ef34360fdcdf8844d7e729378ffbfb", "head": "6252f62524ef34360fdcdf8844d7e729378ffbfb", "state": "open", @@ -148,7 +148,7 @@ { "repo": "Agent-System-RDM", "number": 307, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/307", "oldHead": "8ae52a6d9a4d8b60e875f9c56862f34dffed7705", "head": "8ae52a6d9a4d8b60e875f9c56862f34dffed7705", "state": "open", diff --git a/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-sources/overlap-snapshot.json b/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-sources/overlap-snapshot.json index 1b44bab..5b5c221 100644 --- a/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-sources/overlap-snapshot.json +++ b/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-sources/overlap-snapshot.json @@ -6,7 +6,7 @@ "repo": "Agent-System-Backend", "number": 193, "title": "[WIP] Verify source-backed stage judgments before publication", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/193", "state": "open", "merged": false, "head": "5f834544b0b808cb16214a36725f2ae3cb90bfd4", @@ -396,7 +396,7 @@ "repo": "Agent-System-Dev", "number": 488, "title": "Pin the audit overview export", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/488", "state": "open", "merged": false, "head": "334d2e2375095f3b4160ab232296f9c92065c565", @@ -429,7 +429,7 @@ "repo": "Agent-System-Dev", "number": 489, "title": "Pin the approved U8, U7, and export status", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/489", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/489", "state": "open", "merged": false, "head": "3e7f0360087b126f41fa9ce18dbd1e53d0a8f067", @@ -455,7 +455,7 @@ "repo": "Agent-System-Dev", "number": 512, "title": "[WIP] Deliver progressive U2/U3 work with evidence-backed judgments", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/512", "state": "open", "merged": false, "head": "e31443a8ff1f099f9b2ef320c295b0ddcdaf503d", @@ -530,7 +530,7 @@ "repo": "Agent-System-Documents", "number": 89, "title": "Record the approved U8, U7, and export status", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/89", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/89", "state": "open", "merged": false, "head": "b8df6f3c2a3180b06c61d2303bbfea9a3914f186", @@ -563,7 +563,7 @@ "repo": "Agent-System-Documents", "number": 95, "title": "[WIP] Record U3 evidence design, implementation, and validation", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/95", "state": "open", "merged": false, "head": "c7cb2d8d89aaef0329c9a8a2045fcd42abb36e39", @@ -645,7 +645,7 @@ "repo": "Agent-System-Frontend", "number": 73, "title": "Add audit overview export without widening the readiness gate", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/73", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/73", "state": "open", "merged": false, "head": "d9bb780384b16f661d71a5e6ad288a77426d9d98", @@ -699,7 +699,7 @@ "repo": "Agent-System-Frontend", "number": 79, "title": "[WIP] Preserve reading and show pending stage findings", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/79", "state": "open", "merged": false, "head": "006c81567546deb1cbd95abbb7ca6a36f99241b2", @@ -781,7 +781,7 @@ "repo": "Agent-System-RDM", "number": 301, "title": "Bind audit exports to the captured watermark", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/301", "state": "open", "merged": false, "head": "6252f62524ef34360fdcdf8844d7e729378ffbfb", @@ -849,7 +849,7 @@ "repo": "Agent-System-RDM", "number": 307, "title": "Pin the audit overview export frontend", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/307", "state": "open", "merged": false, "head": "8ae52a6d9a4d8b60e875f9c56862f34dffed7705", diff --git a/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-sources/remote-snapshot.json b/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-sources/remote-snapshot.json index 2e90a84..57c4d1c 100644 --- a/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-sources/remote-snapshot.json +++ b/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage2-sources/remote-snapshot.json @@ -13,7 +13,7 @@ { "number": 193, "title": "[WIP] Verify source-backed stage judgments before publication", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/193", "state": "open", "draft": true, "head": "5f834544b0b808cb16214a36725f2ae3cb90bfd4", @@ -26,7 +26,7 @@ { "number": 185, "title": "Commit account changes and audits in one transaction", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/185", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/185", "state": "open", "draft": false, "head": "9754531cc98393cb8a936d0e25a7526dfabbe2c4", @@ -39,7 +39,7 @@ { "number": 183, "title": "Refuse a second SQLite service before migration", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/183", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/183", "state": "open", "draft": false, "head": "167609b3db6ef850c31eee71421c650f849a009c", @@ -59,7 +59,7 @@ { "number": 512, "title": "[WIP] Deliver progressive U2/U3 work with evidence-backed judgments", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/512", "state": "open", "draft": true, "head": "e31443a8ff1f099f9b2ef320c295b0ddcdaf503d", @@ -72,7 +72,7 @@ { "number": 489, "title": "Pin the approved U8, U7, and export status", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/489", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/489", "state": "open", "draft": false, "head": "3e7f0360087b126f41fa9ce18dbd1e53d0a8f067", @@ -85,7 +85,7 @@ { "number": 488, "title": "Pin the audit overview export", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/488", "state": "open", "draft": false, "head": "334d2e2375095f3b4160ab232296f9c92065c565", @@ -98,7 +98,7 @@ { "number": 486, "title": "Pin account transactions and note deprecated credential flags", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/486", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/486", "state": "open", "draft": false, "head": "5156d66302b3dcabd0a2306b1857d12ea4ec6a08", @@ -111,7 +111,7 @@ { "number": 482, "title": "Pin the SQLite activity guard and document its refusals", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/482", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/482", "state": "open", "draft": false, "head": "d5e8d6ab7a368f08b29e968b6f65f8898f2b28f5", @@ -124,7 +124,7 @@ { "number": 471, "title": "Close merged task cards (feature/card-close-20261012-123313Z)", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/471", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/471", "state": "open", "draft": false, "head": "f0e8a87b8e2dca989637d3b136faf2f0bc3ddd4b", @@ -144,7 +144,7 @@ { "number": 95, "title": "[WIP] Record U3 evidence design, implementation, and validation", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/95", "state": "open", "draft": true, "head": "c7cb2d8d89aaef0329c9a8a2045fcd42abb36e39", @@ -157,7 +157,7 @@ { "number": 89, "title": "Record the approved U8, U7, and export status", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/89", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/89", "state": "open", "draft": false, "head": "b8df6f3c2a3180b06c61d2303bbfea9a3914f186", @@ -177,7 +177,7 @@ { "number": 79, "title": "[WIP] Preserve reading and show pending stage findings", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/79", "state": "open", "draft": true, "head": "006c81567546deb1cbd95abbb7ca6a36f99241b2", @@ -190,7 +190,7 @@ { "number": 73, "title": "Add audit overview export without widening the readiness gate", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/73", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/73", "state": "open", "draft": false, "head": "d9bb780384b16f661d71a5e6ad288a77426d9d98", @@ -210,7 +210,7 @@ { "number": 307, "title": "Pin the audit overview export frontend", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/307", "state": "open", "draft": false, "head": "8ae52a6d9a4d8b60e875f9c56862f34dffed7705", @@ -223,7 +223,7 @@ { "number": 301, "title": "Bind audit exports to the captured watermark", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/301", "state": "open", "draft": false, "head": "6252f62524ef34360fdcdf8844d7e729378ffbfb", @@ -243,7 +243,7 @@ { "number": 51, "title": "[WIP] Separate source records, judgments, and pending questions", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-UI/pulls/51", + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-UI/pulls/51", "state": "open", "draft": true, "head": "ac5b617e9e7ee6b9417b36c66d7c6e3b58ecbb42", @@ -271,7 +271,7 @@ "blob": "010a3d55235ce1caf419a521421358a851b64729", "sha256": "f5e7350628d1289c8f024dff5d21db04f733366a98100d31258f3e49b77ff933", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/internal/ctxasm/ctxasm.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/internal/ctxasm/ctxasm.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/internal/ctxasm/ctxasm.go" }, { "repo": "Agent-System-Backend", @@ -280,7 +280,7 @@ "blob": "e409c49b4d23bf49318d91b395f8b070b62ed071", "sha256": "7a9249a212b91488d3a273afc64f61e8b2ce50ea4187db05ad4eda3fd3ccf163", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/internal/ingest/ingest.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/internal/ingest/ingest.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/internal/ingest/ingest.go" }, { "repo": "Agent-System-Backend", @@ -289,7 +289,7 @@ "blob": "c9bf4326df411cacd289ef767fd003642da6fc2f", "sha256": "03d235349d56e3feae29d36b63c284857ec77595aa2e647730f8e192db2fa7a1", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/internal/runmgr/memory.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/internal/runmgr/memory.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/internal/runmgr/memory.go" }, { "repo": "Agent-System-Backend", @@ -298,7 +298,7 @@ "blob": "d06dae1149ae402f1482fbec14069d2062a37bb7", "sha256": "5ae366d8c2c01e2b79fb6ff9d3f78147b82dce9dccee163d8cc880f5d3caa8d1", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/internal/runtime/llm.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/internal/runtime/llm.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/internal/runtime/llm.go" }, { "repo": "Agent-System-Backend", @@ -307,7 +307,7 @@ "blob": "b5479a852abe47be35884c2bf55a0bbddc0982f9", "sha256": "54a7c6ab8315f3c0b3f0ec97ab857925a7a745453a2a41fb28051e54423ecf9a", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/internal/store/audit.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/internal/store/audit.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/internal/store/audit.go" }, { "repo": "Agent-System-Backend", @@ -316,7 +316,7 @@ "blob": "2454e4e0337eb6f3858f01b58b49f3d809c11e8d", "sha256": "57e00f6e5d21e28c4bfddf8b2fe3929e70826581d3feb94d557f1c9e2830ed42", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/pkg/extension/extension.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/pkg/extension/extension.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/pkg/extension/extension.go" }, { "repo": "Agent-System-Backend", @@ -325,7 +325,7 @@ "blob": "c528b810020b95c4d1b39a9637cebb0abdb2608c", "sha256": "4ad991e1a63c2051c96ff50ae55bf346ebb16aa56e2fef5f408d8fd03bc61f2d", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/pkg/extension/host.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/pkg/extension/host.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/pkg/extension/host.go" }, { "repo": "Agent-System-Backend", @@ -334,7 +334,7 @@ "blob": "d0f50421836b90bef13cc5ee05bbcd80b897322f", "sha256": "f00cca35978c61d267e692b6960318bd874d219114c184435ae6c313c7bbefaa", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Backend/pkg/extension/projects.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/pkg/extension/projects.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/src/commit/5d5fc9891c0eb8994545ccb8b740535d9b99fb0e/pkg/extension/projects.go" }, { "repo": "Agent-System-Dev", @@ -343,7 +343,7 @@ "blob": "10eba3415ae45bee28b0e1c0ae7b3fe371a8f18b", "sha256": "38ef642f201d005be043b9228b84af7b13a0edffdb33807a6d033067e8a73b6e", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Dev/PROJECT.md", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/src/commit/add097d06137c4912a4ed9279e98ca353e4e4cf1/PROJECT.md" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/src/commit/add097d06137c4912a4ed9279e98ca353e4e4cf1/PROJECT.md" }, { "repo": "Agent-System-Dev", @@ -352,7 +352,7 @@ "blob": "252aa9c2e4d4878fefb21eaab56543878bb46eac", "sha256": "cbf854a915fd32d18a33c0a9b342ac6e5914ad10d0ec6563ccf4016d8b152614", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Dev/policy/delivery.md", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/src/commit/add097d06137c4912a4ed9279e98ca353e4e4cf1/policy/delivery.md" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/src/commit/add097d06137c4912a4ed9279e98ca353e4e4cf1/policy/delivery.md" }, { "repo": "Agent-System-Documents", @@ -361,7 +361,7 @@ "blob": "a843824d11a222785e26ac5e3c74855c1f7bcc92", "sha256": "70c816164b612cddf56ed897d3528cfedc8db3d024a49a8b28fe03e9136a5a20", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Documents/docs/proposals/2026-10-11-rdm-template-dialog-generation.md", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/src/commit/a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c/docs/proposals/2026-10-11-rdm-template-dialog-generation.md" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/src/commit/a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c/docs/proposals/2026-10-11-rdm-template-dialog-generation.md" }, { "repo": "Agent-System-Documents", @@ -370,7 +370,7 @@ "blob": "db9aa3d7094f9f6df88e61516ed0d539d471cbee", "sha256": "0c622e12fde58e38b50929299e3c99ebb28956973b7b2803e03af6a606121987", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Documents/docs/proposals/2026-10-13-system-project-membership.md", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/src/commit/a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c/docs/proposals/2026-10-13-system-project-membership.md" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/src/commit/a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c/docs/proposals/2026-10-13-system-project-membership.md" }, { "repo": "Agent-System-Documents", @@ -379,7 +379,7 @@ "blob": "4043a589170b020bfed3c62c4f50ad2ada0fd821", "sha256": "cf9e330cec2e5c329e941c8c42488dd1e694de98fe28a0f713f25e8e036c4538", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Documents/docs/proposals/INDEX.md", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/src/commit/a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c/docs/proposals/INDEX.md" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/src/commit/a7ff466d9ae91fc67a53d2bf4991f47fc63a2a4c/docs/proposals/INDEX.md" }, { "repo": "Agent-System-Frontend", @@ -388,7 +388,7 @@ "blob": "7653201b70934b85a82dc02bcd900c4e6511fb31", "sha256": "ac406be59baab7eeb859dba49636aa5af579dbcf7aadbf1929a0aa346a56d1d6", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-Frontend/src/components/RdmAuditWorkspace.tsx", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/src/commit/eb2d6d32f9323094d568bc9d80b4e5ed4f0af25b/src/components/RdmAuditWorkspace.tsx" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/src/commit/eb2d6d32f9323094d568bc9d80b4e5ed4f0af25b/src/components/RdmAuditWorkspace.tsx" }, { "repo": "Agent-System-RDM", @@ -397,7 +397,7 @@ "blob": "5caeb8dd714d6e6f5999a7bec324bea686f8a9cb", "sha256": "7dbe615f0aebe88bc2bcd0c35c4e102ba2917738bcf0c0e7ffc8bf5810676d07", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/README.md", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/README.md" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/README.md" }, { "repo": "Agent-System-RDM", @@ -406,7 +406,7 @@ "blob": "fe5c6e3bf641f9631b595e14d2a6769207c31d13", "sha256": "9408a2113325d19339d4533f065c8371f7d9ef0141faa427f9c104a1bbd1612f", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/go.mod", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/go.mod" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/go.mod" }, { "repo": "Agent-System-RDM", @@ -415,7 +415,7 @@ "blob": "badff2b02703a630ebe1ff62b247530144b3bea5", "sha256": "5791c647bfd1579b3c512006c9ce03200db13023dc350324fccecb2d29da0fb9", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/domain/compliance.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/compliance.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/compliance.go" }, { "repo": "Agent-System-RDM", @@ -424,7 +424,7 @@ "blob": "4af596ea44a4d98bd8ee0540296a678fcc895aa0", "sha256": "2267284dacaa19693f531722de0233ea9bbf3b74f54bc58dd71648d60416d22e", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/domain/data/labels_seed.json", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/data/labels_seed.json" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/data/labels_seed.json" }, { "repo": "Agent-System-RDM", @@ -433,7 +433,7 @@ "blob": "e2441f7bf3f0961f51fc4fd9d18058f83b0967ec", "sha256": "9d0d9d72b252de0011be863ab50fd976f54bcd239b27d42ab3f3cc7b94727285", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/domain/doctree.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/doctree.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/doctree.go" }, { "repo": "Agent-System-RDM", @@ -442,7 +442,7 @@ "blob": "aa0fac0b6d6a1d56bdc2e9f859a3bfb991533eaf", "sha256": "3450726fc9c0dc4a3fea6b5225fff081d5d56ccdf151ce8a1b1a8fbc57333e8c", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/domain/eventlog.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/eventlog.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/eventlog.go" }, { "repo": "Agent-System-RDM", @@ -451,7 +451,7 @@ "blob": "ce2f15505463ecb7a0372aebfe77bc1d4851ab3e", "sha256": "2c796df8c0ace2d8044a83d4115c4f5956d71d9049c87b7fbe9a06e6fdae944c", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/domain/labels.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/labels.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/labels.go" }, { "repo": "Agent-System-RDM", @@ -460,7 +460,7 @@ "blob": "e4d8003799b174d6a61026cb6be2adeac7bc953e", "sha256": "bb6228fd00fbc0a5aaff4958cd70c7789ff1d7d2c34dcb1ee2dfc1630a43ef0e", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/domain/notetree.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/notetree.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/domain/notetree.go" }, { "repo": "Agent-System-RDM", @@ -469,7 +469,7 @@ "blob": "b9fddaf7178968f05f1c8b3cd8b91aeaaa786475", "sha256": "b2da219785cbf44ee53d1408e56628f44619c8dd93fb4415f2daa9013b591349", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/rdmapp/compose.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/compose.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/compose.go" }, { "repo": "Agent-System-RDM", @@ -478,7 +478,7 @@ "blob": "5d0eb1c377a344acb70dc82202d2ffd2f0599ac7", "sha256": "27368362233f8ff8b0c3e2d7c78a12162e5d12dc2545347b1270521182a2651e", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/rdmapp/inspection.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/inspection.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/inspection.go" }, { "repo": "Agent-System-RDM", @@ -487,7 +487,7 @@ "blob": "fa6689f289734fa00379b6dbc9171fae50fcfa3b", "sha256": "10e19a7729b8b27125bd8de6a94f0373df9db09c401b7b1294b65a796ba9f985", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/rdmapp/knowledge_publication.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/knowledge_publication.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/knowledge_publication.go" }, { "repo": "Agent-System-RDM", @@ -496,7 +496,7 @@ "blob": "ae9af0048d1f760189a8e0f4c5fa1a96f528e435", "sha256": "b6891677477e0bfe596c7cf2ce074497bd316037145d116745b66e79edb29fee", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/rdmapp/runtime.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/runtime.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/runtime.go" }, { "repo": "Agent-System-RDM", @@ -505,7 +505,7 @@ "blob": "57a28e963c16eda7727e3bb5e94986b0e46b0f3f", "sha256": "116a25bf5e76f940f54ba67b87b855c5953b944a4ca4f088953766a35563fa86", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/rdmapp/structure.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/structure.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/structure.go" }, { "repo": "Agent-System-RDM", @@ -514,7 +514,7 @@ "blob": "fada623997e4a23a695445332a69175a15df566b", "sha256": "094da101f08ce686c92475d2f03090596d0b203ce61ac24cb7438a0bf0485ab0", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/rdmapp/templates/registry.yaml", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/templates/registry.yaml" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/templates/registry.yaml" }, { "repo": "Agent-System-RDM", @@ -523,7 +523,7 @@ "blob": "5b4d71f968a40a3114c2331fc3d6c876b97c7ec0", "sha256": "8d4a68a31b69ab1834e66acc583211614d8177d23e1844bd4aa61c98ff57547c", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/internal/rdmapp/templates_gen.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/templates_gen.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/internal/rdmapp/templates_gen.go" }, { "repo": "Agent-System-RDM", @@ -532,7 +532,7 @@ "blob": "41f927e96d9c48bf61cdb792dae497a5956e20e6", "sha256": "25382894886fef7e9015d254fc416766d9cd7ce355671c088d2c34b0870a2eb8", "localCopy": "/home/weichen/.codex/visualizations/2026/10/13/01a13639-7c7c-7f20-aece-a3937edf6229/stage2-sources/Agent-System-RDM/plugins/rdm/plugin.go", - "sourceUrl": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/plugins/rdm/plugin.go" + "sourceUrl": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/src/commit/6fcb256205c2384abed35d3b6ab96ca7216e9297/plugins/rdm/plugin.go" } ] } \ No newline at end of file diff --git a/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage4-sources.json b/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage4-sources.json index dae22c8..c22b910 100644 --- a/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage4-sources.json +++ b/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage4-sources.json @@ -11,42 +11,42 @@ "title": "[WIP] Replace submodule coupling with versioned dependencies and source workspaces", "head": "12d875c615cdd8394b9b8bdb586bbca4c02b4241", "branch": "feature/dependency-workspace", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/537" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/537" }, { "number": 512, "title": "[WIP] Deliver progressive U2/U3 work with evidence-backed judgments", "head": "a74318ab4b7d4f6fadd06675f3d1893361df722f", "branch": "feature/fast-slow-u2-u3-plan", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/512" }, { "number": 488, "title": "Pin the audit overview export", "head": "334d2e2375095f3b4160ab232296f9c92065c565", "branch": "feature/rdm-audit-export-entry", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/488" }, { "number": 486, "title": "Pin account transactions and note deprecated credential flags", "head": "5156d66302b3dcabd0a2306b1857d12ea4ec6a08", "branch": "feature/u7-account-tx-audit", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/486" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/486" }, { "number": 482, "title": "Pin the SQLite activity guard and document its refusals", "head": "d5e8d6ab7a368f08b29e968b6f65f8898f2b28f5", "branch": "feature/u8-sqlite-instance-guard", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/482" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/482" }, { "number": 471, "title": "Close merged task cards (feature/card-close-20261012-123313Z)", "head": "f0e8a87b8e2dca989637d3b136faf2f0bc3ddd4b", "branch": "feature/card-close-20261012-123313Z", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/471" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/471" } ] }, @@ -59,21 +59,21 @@ "title": "[WIP] Build RDM from versioned dependencies and a fixed product composer", "head": "842a864d140dd4371989c2491b132973b48d728d", "branch": "feature/versioned-dependencies", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/363" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/363" }, { "number": 307, "title": "Pin the audit overview export frontend", "head": "8ae52a6d9a4d8b60e875f9c56862f34dffed7705", "branch": "feature/rdm-pin-frontend-export", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/307" }, { "number": 301, "title": "Bind audit exports to the captured watermark", "head": "6252f62524ef34360fdcdf8844d7e729378ffbfb", "branch": "feature/rdm-u5-export-completion", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/301" } ] }, @@ -86,28 +86,28 @@ "title": "[WIP] Build the Backend from versioned Go libraries and fixed frontend composition", "head": "fffd5790cfab317fadafb40fa55a11bab6e9a847", "branch": "feature/versioned-dependencies", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/196" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/196" }, { "number": 193, "title": "[WIP] Verify source-backed stage judgments before publication", "head": "5f834544b0b808cb16214a36725f2ae3cb90bfd4", "branch": "feature/fast-slow-u2-u3", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/193" }, { "number": 185, "title": "Commit account changes and audits in one transaction", "head": "9754531cc98393cb8a936d0e25a7526dfabbe2c4", "branch": "feature/u7-account-tx-audit", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/185" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/185" }, { "number": 183, "title": "Refuse a second SQLite service before migration", "head": "167609b3db6ef850c31eee71421c650f849a009c", "branch": "feature/u8-sqlite-instance-guard", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/183" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/183" } ] }, @@ -120,21 +120,21 @@ "title": "[WIP] Build Frontend from versioned UI and contract packages", "head": "5467517e1831e7ca8b58bb5df52494a3a2c9d468", "branch": "feature/versioned-dependencies", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/84" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/84" }, { "number": 79, "title": "[WIP] Preserve reading and show pending stage findings", "head": "006c81567546deb1cbd95abbb7ca6a36f99241b2", "branch": "feature/fast-slow-u2-u3", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/79" }, { "number": 73, "title": "Add audit overview export without widening the readiness gate", "head": "d9bb780384b16f661d71a5e6ad288a77426d9d98", "branch": "feature/rdm-audit-export-entry", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/73" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/73" } ] }, @@ -147,14 +147,14 @@ "title": "[WIP] Record approved version-dependency and active-branch transition requirements", "head": "1de7d17110efaa5ed2ed30a44d415f28987f89f3", "branch": "feature/dependency-workspace-plan", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/100" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/100" }, { "number": 95, "title": "[WIP] Document U3 r0.4 recovery design and plan", "head": "276f885e7301bd39ae2d464c7469a37fe10ebf22", "branch": "feature/fast-slow-u2-u3-plan", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/95" } ] }, @@ -167,14 +167,14 @@ "title": "[WIP] Consume UI as a fixed package and verify packed consumers with cold caches", "head": "63d289e6bc15b701356cfe2d5b8740210fac0dcc", "branch": "feature/versioned-dependencies", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-UI/pulls/54" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-UI/pulls/54" }, { "number": 51, "title": "[WIP] Separate source records, judgments, and pending questions", "head": "ac5b617e9e7ee6b9417b36c66d7c6e3b58ecbb42", "branch": "feature/fast-slow-u2-u3", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-UI/pulls/51" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-UI/pulls/51" } ] } @@ -301,7 +301,7 @@ "state": "open", "merged": false, "mergeCommit": null, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/193" }, { "repo": "Agent-System-Dev", @@ -310,7 +310,7 @@ "state": "open", "merged": false, "mergeCommit": null, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/488" }, { "repo": "Agent-System-Dev", @@ -319,7 +319,7 @@ "state": "closed", "merged": true, "mergeCommit": "f00165e8d71e4dc8ba0ceb7dc50c1a8a3deb6d60", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/489" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/489" }, { "repo": "Agent-System-Dev", @@ -328,7 +328,7 @@ "state": "open", "merged": false, "mergeCommit": null, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/512" }, { "repo": "Agent-System-Documents", @@ -337,7 +337,7 @@ "state": "closed", "merged": true, "mergeCommit": "7bd4e17827d4c7c88647bf3c9199c495b60cb107", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/89" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/89" }, { "repo": "Agent-System-Documents", @@ -346,7 +346,7 @@ "state": "open", "merged": false, "mergeCommit": null, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/95" }, { "repo": "Agent-System-Frontend", @@ -355,7 +355,7 @@ "state": "open", "merged": false, "mergeCommit": null, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/73" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/73" }, { "repo": "Agent-System-Frontend", @@ -364,7 +364,7 @@ "state": "open", "merged": false, "mergeCommit": null, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/79" }, { "repo": "Agent-System-RDM", @@ -373,7 +373,7 @@ "state": "open", "merged": false, "mergeCommit": null, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/301" }, { "repo": "Agent-System-RDM", @@ -382,7 +382,7 @@ "state": "open", "merged": false, "mergeCommit": null, - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/307" } ], "wip": [ diff --git a/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage5-dependencies.json b/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage5-dependencies.json index 284d1f8..2aa8b32 100644 --- a/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage5-dependencies.json +++ b/docs/records/2026-10-14-rdm-two-trees-latest-templates/stage5-dependencies.json @@ -10,37 +10,37 @@ "number": 537, "title": "[WIP] Replace submodule coupling with versioned dependencies and source workspaces", "head": "12d875c615cdd8394b9b8bdb586bbca4c02b4241", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/537" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/537" }, { "number": 512, "title": "[WIP] Deliver progressive U2/U3 work with evidence-backed judgments", "head": "a74318ab4b7d4f6fadd06675f3d1893361df722f", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/512" }, { "number": 488, "title": "Pin the audit overview export", "head": "334d2e2375095f3b4160ab232296f9c92065c565", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/488" }, { "number": 486, "title": "Pin account transactions and note deprecated credential flags", "head": "5156d66302b3dcabd0a2306b1857d12ea4ec6a08", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/486" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/486" }, { "number": 482, "title": "Pin the SQLite activity guard and document its refusals", "head": "d5e8d6ab7a368f08b29e968b6f65f8898f2b28f5", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/482" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/482" }, { "number": 471, "title": "Close merged task cards (feature/card-close-20261012-123313Z)", "head": "f0e8a87b8e2dca989637d3b136faf2f0bc3ddd4b", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/471" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/471" } ] }, @@ -52,13 +52,13 @@ "number": 100, "title": "[WIP] Record approved version-dependency and active-branch transition requirements", "head": "1de7d17110efaa5ed2ed30a44d415f28987f89f3", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/100" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/100" }, { "number": 95, "title": "[WIP] Document U3 r0.4 recovery design and plan", "head": "276f885e7301bd39ae2d464c7469a37fe10ebf22", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/95" } ] }, @@ -70,19 +70,19 @@ "number": 363, "title": "[WIP] Build RDM from versioned dependencies and a fixed product composer", "head": "2b37fb26bbb023bd0118ba52e590daaa9dc8b478", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/363" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/363" }, { "number": 307, "title": "Pin the audit overview export frontend", "head": "8ae52a6d9a4d8b60e875f9c56862f34dffed7705", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/307" }, { "number": 301, "title": "Bind audit exports to the captured watermark", "head": "bd973e1e8de639d6fafee92fbfe349bc22a57c9a", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/301" } ] }, @@ -94,25 +94,25 @@ "number": 196, "title": "[WIP] Build the Backend from versioned Go libraries and fixed frontend composition", "head": "fffd5790cfab317fadafb40fa55a11bab6e9a847", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/196" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/196" }, { "number": 193, "title": "[WIP] Verify source-backed stage judgments before publication", "head": "efed68ca2c8fbf148a2c40d61906612a9cc006f1", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/193" }, { "number": 185, "title": "Commit account changes and audits in one transaction", "head": "9754531cc98393cb8a936d0e25a7526dfabbe2c4", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/185" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/185" }, { "number": 183, "title": "Refuse a second SQLite service before migration", "head": "167609b3db6ef850c31eee71421c650f849a009c", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/183" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/183" } ] }, @@ -124,13 +124,13 @@ "number": 84, "title": "[WIP] Build Frontend from versioned UI and contract packages", "head": "5467517e1831e7ca8b58bb5df52494a3a2c9d468", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/84" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/84" }, { "number": 79, "title": "[WIP] Preserve reading and show pending stage findings", "head": "006c81567546deb1cbd95abbb7ca6a36f99241b2", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/79" } ] }, @@ -142,13 +142,13 @@ "number": 54, "title": "[WIP] Consume UI as a fixed package and verify packed consumers with cold caches", "head": "63d289e6bc15b701356cfe2d5b8740210fac0dcc", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-UI/pulls/54" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-UI/pulls/54" }, { "number": 51, "title": "[WIP] Separate source records, judgments, and pending questions", "head": "ac5b617e9e7ee6b9417b36c66d7c6e3b58ecbb42", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-UI/pulls/51" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-UI/pulls/51" } ] } @@ -160,7 +160,7 @@ "state": "open", "merged": false, "head": "efed68ca2c8fbf148a2c40d61906612a9cc006f1", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/193" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Backend/pulls/193" }, { "repo": "Agent-System-Dev", @@ -168,7 +168,7 @@ "state": "open", "merged": false, "head": "334d2e2375095f3b4160ab232296f9c92065c565", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/488" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/488" }, { "repo": "Agent-System-Dev", @@ -176,7 +176,7 @@ "state": "closed", "merged": true, "head": "5e6bf4aa0546d68fb3f872158f22b2791c301a60", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/489" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/489" }, { "repo": "Agent-System-Dev", @@ -184,7 +184,7 @@ "state": "open", "merged": false, "head": "a74318ab4b7d4f6fadd06675f3d1893361df722f", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/512" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/pulls/512" }, { "repo": "Agent-System-Documents", @@ -192,7 +192,7 @@ "state": "closed", "merged": true, "head": "10b442169ce0964a19e504dfc07395507b37db05", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/89" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/89" }, { "repo": "Agent-System-Documents", @@ -200,7 +200,7 @@ "state": "open", "merged": false, "head": "276f885e7301bd39ae2d464c7469a37fe10ebf22", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/95" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Documents/pulls/95" }, { "repo": "Agent-System-Frontend", @@ -208,7 +208,7 @@ "state": "closed", "merged": true, "head": "4e1eb39035e785810bfca02751cf29572c388768", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/73" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/73" }, { "repo": "Agent-System-Frontend", @@ -216,7 +216,7 @@ "state": "open", "merged": false, "head": "006c81567546deb1cbd95abbb7ca6a36f99241b2", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/79" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-Frontend/pulls/79" }, { "repo": "Agent-System-RDM", @@ -224,7 +224,7 @@ "state": "open", "merged": false, "head": "bd973e1e8de639d6fafee92fbfe349bc22a57c9a", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/301" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/301" }, { "repo": "Agent-System-RDM", @@ -232,7 +232,7 @@ "state": "open", "merged": false, "head": "8ae52a6d9a4d8b60e875f9c56862f34dffed7705", - "url": "https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-RDM/pulls/307" + "url": "https://gitea.naitangbaobao.cn/weichen/Agent-System-RDM/pulls/307" } ], "dhfWorktree": { diff --git a/docs/records/2026-10-15-unified-document-renderer-implementation/batch6-tasks11-12-publication-review-r1.md b/docs/records/2026-10-15-unified-document-renderer-implementation/batch6-tasks11-12-publication-review-r1.md index f949123..5bee3b4 100644 --- a/docs/records/2026-10-15-unified-document-renderer-implementation/batch6-tasks11-12-publication-review-r1.md +++ b/docs/records/2026-10-15-unified-document-renderer-implementation/batch6-tasks11-12-publication-review-r1.md @@ -6,7 +6,7 @@ | 仓库 | 分支 | 最终 HEAD | 远端 | |---|---|---|---| -| Renderer | `main` | `31fbe54fae8bf11be664919ce173da0d68ebfdc9` | 已合入:[PR #1](https://git-home.u1680832.nyat.app:30319/weichen/Agent-Document-Renderer/pulls/1)(`44df4cc`)、[PR #2](https://git-home.u1680832.nyat.app:30319/weichen/Agent-Document-Renderer/pulls/2)(`31fbe54`),均 fast-forward | +| Renderer | `main` | `31fbe54fae8bf11be664919ce173da0d68ebfdc9` | 已合入:[PR #1](https://gitea.naitangbaobao.cn/weichen/Agent-Document-Renderer/pulls/1)(`44df4cc`)、[PR #2](https://gitea.naitangbaobao.cn/weichen/Agent-Document-Renderer/pulls/2)(`31fbe54`),均 fast-forward | | RDM | `feature/rdm-two-trees-work-observation` | `d63f1db` | 未推送(随父任务交付) | | Backend | `feature/unified-document-renderer-task10` | `1afe1647981e1f331c379757b100e10a9b47ed90` | 已推送 | | Frontend | `feature/unified-document-renderer-task11` | `de650262382e8e1b9c65120365960872b522145f` | 已推送 | diff --git a/docs/reports/2026-10-13-fast-slow-u2-u3-validation.md b/docs/reports/2026-10-13-fast-slow-u2-u3-validation.md index 6055e0b..1bed67f 100644 --- a/docs/reports/2026-10-13-fast-slow-u2-u3-validation.md +++ b/docs/reports/2026-10-13-fast-slow-u2-u3-validation.md @@ -169,7 +169,7 @@ Backend `9019f90` 为三项分别加入失败用例后作零付费修复:恢 ## 2026-10-14 r0.5 阶段 6 与一次性终态探针 -用户已确认 r0.5 零付费实施通过阶段 6,随后单独批准**一次**受控 MiniMax-M3 工具流终态探针;批准只包含固定 Dev `0959e1c1566df9766878b2122eccc0ab42af10a3`、受审 ELF `89e4800827288aaf81cd68fdd2a7823de75033de75838e223db5e95425af80e7` 上最多一个付费请求,配置输出上限 1024 tokens、120 秒、已返回 Usage 目标 3000 tokens,不执行工具、不重试或换模型;不包含 A01、合入或部署。原提案及候选补充记录分别在 `/tmp/fast-slow-u3-r05-20261014/terminal-probe-resource-proposal.md`(SHA-256 `a7e44752b43972da6797da2a67bb6e7b7be5a129683743183a44b5976b37d947`)与同目录 `terminal-probe-candidate-addendum.md`(`b3c832c37af62acbd964bfaf8bca39aa3eea6727bc858270f6bb602fbe7a6e73`);用户答复见 `terminal-probe-authorization-decision.md`(`3e234e50498df9b375c46ad82a34bbb63121384a22657f7a8f6e9a5f0f41e75f`)。受信 [Dev CI run 3136](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/actions/runs/3136) 的三项准确 HEAD 作业均成功;本地执行前 `SELF` 预检为 25 项 PASS。这些结果不替代供应商终态与业务质量验收。 +用户已确认 r0.5 零付费实施通过阶段 6,随后单独批准**一次**受控 MiniMax-M3 工具流终态探针;批准只包含固定 Dev `0959e1c1566df9766878b2122eccc0ab42af10a3`、受审 ELF `89e4800827288aaf81cd68fdd2a7823de75033de75838e223db5e95425af80e7` 上最多一个付费请求,配置输出上限 1024 tokens、120 秒、已返回 Usage 目标 3000 tokens,不执行工具、不重试或换模型;不包含 A01、合入或部署。原提案及候选补充记录分别在 `/tmp/fast-slow-u3-r05-20261014/terminal-probe-resource-proposal.md`(SHA-256 `a7e44752b43972da6797da2a67bb6e7b7be5a129683743183a44b5976b37d947`)与同目录 `terminal-probe-candidate-addendum.md`(`b3c832c37af62acbd964bfaf8bca39aa3eea6727bc858270f6bb602fbe7a6e73`);用户答复见 `terminal-probe-authorization-decision.md`(`3e234e50498df9b375c46ad82a34bbb63121384a22657f7a8f6e9a5f0f41e75f`)。受信 [Dev CI run 3136](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/actions/runs/3136) 的三项准确 HEAD 作业均成功;本地执行前 `SELF` 预检为 25 项 PASS。这些结果不替代供应商终态与业务质量验收。 唯一请求的私有终态收据 `/tmp/fast-slow-u3-r05-20261014/private-probe/run-001/terminal-receipt.json`(SHA-256 `6b013965579ccaf8462c059380e84bfd9aa446d3201031edbb0ff224ed958c4e`)记录 HTTP 200、`finishReason=tool_calls`、`ReadOutcome=clean_eof`、`StreamComplete=false`、最后一帧 JSON 完整;返回 Usage 为 prompt 425、completion 88、total **513 tokens**;工具片段 2 个,放行/执行工具均 **0**,分类 `incomplete_terminal`。已返回 Usage 低于目标,但不等于独立账单。一次性 claim 和 attempt marker 均存在、字节相同;运行命令 `SELF` 收据 `/tmp/fast-slow-u3-r05-20261014/probe-code/evidence-live-once.json` 的原命令 exit 1。**授权已用尽,不补跑。** @@ -201,7 +201,7 @@ Backend `9019f90` 为三项分别加入失败用例后作零付费修复:恢 ## 2026-10-19 r0.6 阶段 6 与一次性传输边界探针 -用户已接受 r0.6 零付费候选(含 I-3 工作卡 UI/Frontend 范围变化)通过阶段 6,条件是准确 HEAD CI 成功;该条件现已满足:UI `fadabce` 运行 4104/4105、Backend `f24a610` 运行 4106/4107、Frontend `6f8e7ec` 运行 4108/4109、Dev `b1d40f6` 运行 4116,以及 Dev `93668915ed9dd83282bb37fa0b792dabc1571bc5` 的 [Dev CI run 4135](https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/actions/runs/4135)(`test`、`test-pg`、`svc-realcombo` 均成功),均记为 **GATE**。上节"UI `fadabce`、Frontend `6f8e7ec`、Backend `f24a610` 和最终 Dev HEAD 的 GATE 尚未核验"一句由此取代。 +用户已接受 r0.6 零付费候选(含 I-3 工作卡 UI/Frontend 范围变化)通过阶段 6,条件是准确 HEAD CI 成功;该条件现已满足:UI `fadabce` 运行 4104/4105、Backend `f24a610` 运行 4106/4107、Frontend `6f8e7ec` 运行 4108/4109、Dev `b1d40f6` 运行 4116,以及 Dev `93668915ed9dd83282bb37fa0b792dabc1571bc5` 的 [Dev CI run 4135](https://gitea.naitangbaobao.cn/weichen/Agent-System-Dev/actions/runs/4135)(`test`、`test-pg`、`svc-realcombo` 均成功),均记为 **GATE**。上节"UI `fadabce`、Frontend `6f8e7ec`、Backend `f24a610` 和最终 Dev HEAD 的 GATE 尚未核验"一句由此取代。 用户随后只批准资源提案 `/home/weichen/.local/share/agent-system-evidence/fast-slow-u3-r06-20261019/resource-proposal.md`(SHA-256 `c0de0c45c5f30d01565ab57aaa996b018e393794abae06e1936684b78684c00b`)的阶段 1:最多一个 MiniMax-M3 请求,固定沿用 r0.5 天气工具 prompt,输出上限 1024 tokens、120 秒、已返回 Usage 目标 3000 tokens,不执行工具、不重试、不换模型;阶段 2 的 A01 不在批准范围内。用户决定记录为同目录 `probe-authorization-decision.md`(SHA-256 `370db44b516531924a68d572e91cfd121e55309ed8e38af8b33a4867e7670c8c`)。 -- 2.54.0 From e4d014fab1ed346d3eb2322b013b4c3868f51b20 Mon Sep 17 00:00:00 2001 From: weichen Date: Thu, 22 Oct 2026 14:25:52 +0000 Subject: [PATCH 2/2] Bump the development-manager pin for the endpoint migration Why: governance checks validate candidate .gitmodules URLs against the pinned development-manager scaffold, which now carries the new Gitea endpoint base after its own migration. Evidence: host-verified; see Dev PR #706 Impact: pin update only, part of the coordinated endpoint migration. Refs: Agent-System-Dev PR #706 --- deps/development-manager | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/development-manager b/deps/development-manager index bd3a7de..24e8a5c 160000 --- a/deps/development-manager +++ b/deps/development-manager @@ -1 +1 @@ -Subproject commit bd3a7de57a3a9e1a4495b94c5fa5c08d71e7be8c +Subproject commit 24e8a5c8ba9833437672e8c72841de8c54db321d -- 2.54.0