Files
knowledge-governance/docs/release-ledger.md
姚章浩 271f9f5f09
build / build (push) Successful in 1m20s
docs: 台账补记 0.1.198–0.1.199
记录接管分类与维护释放幂等的真实 SHA、CI run(236)与候选栈身份注入后
/api/v1/build-info 的读回结果。
2026-10-29 14:27:53 +08:00

12 KiB
Raw Permalink Blame History

版本台账(可审计)

开发版本号由 scripts/version.py 从提交数推导(release_version 0.1.0 + commits_since_release), 不创建正式 tag。下表记录每个开发版本对应的完整 SHA、CI 结论与部署事实;历史失败不涂改。

CI = Gitea Actions 仓库级 runner,make verify 为唯一门禁(format / static-go / static-web / build-go / build-web / tests-go / tests-web / contracts / version / security-secrets / security-deps / manifests-locked)。

版本 完整 SHA 实现范围 CI run CI 结论 已部署本机
0.1.105 3dc854de4b 阻止旧策略作业重放 148 success 曾部署(后被后续版本替换)
0.1.107 864a1632e0 整库快照/冻结基线 148 success 否(版本记录门禁当时未过)
0.1.108 045fc44 整库版本只读页 + 部署 — 未取得通过证据(run149 起连续失败) 是
0.1.109 20fc40a147 归档用量口径 149–150 段 failure(format 等) 是
0.1.110 c5e033dd0e 修 R1/R2/R3 151 failure 是
0.1.111 910c0fcd76 页面发起封存 + 主机侧 agent 152 failure 是
0.1.112 bb64c32654 发布管理整库视图(后被用户打回 UI) 153 failure 是
0.1.113 58d0483d44 按确认稿重做发布管理 UI 154 failure(format) 是
0.1.114 dc9e827656 整库版本/作业持久化 + 状态读接口 + 生产 fail-closed 155 failure(format + migrations 计数) 是
0.1.115 7e1610da44 仅格式化四个文件 156 failure(tests-go:迁移清单写死 65) 否
0.1.116 e3db157ba8 迁移清单跟随 000066 157 success 否(等父审后部署)
0.1.117 e313ae12f2 真实差异比对(librarydiff)+ 孤儿作业回收 + 验收矩阵/台账 158 success 否
0.1.118 3ad48ff32c 版本抽屉分列测试封存/生产生效/本次预备份 159 success 否

| 0.1.119 | 12bb839d8a | 台账补记 | 160 | success | 否 | | 0.1.120 | f91359f881 | 存储管理真实化:容量门禁、依赖保护、清理预览 | 161 | success | 否 | | 0.1.121 | 7b8cc0384b | 生产发布授权(000067)+ 同步/恢复编排 + worker 接线 + 页面授权状态 | 162 | success | 否 | | 0.1.122 | 2038462dbb | Wiki 页面级差异 + 页面展示 | 163 | success | 否 |

| 0.1.123 | 67a48faf23 | 去掉 qawemail 单测的外部 DNS 依赖(run164 因此红) | 165 | success | 否 |

| 0.1.125 | 281699a431 | 生产整库真实读写/校验/恢复 + 本机真实 PG/ES 集成验证 | 167 | success | 否(未部署) |

| 0.1.126 | 8da4666e76 | 端到端编排在本机真实 PG/ES 跑通 + test-scope 声明 | 168 | success | 否(未部署) |

| 0.1.127 | 6ca8481e8e | 台账补记 | 169 | success | 否 | | 0.1.129 | 0b9dbe12cf | 资源范围精确关联 + 内容级校验 + 真实 MinIO 验收 | 170 | success | 否 | | 0.1.130 | a2d051f6b3 | 按版本恢复入口 + 失败作业续作 | 171 | success | 否 |

| 0.1.131 | ac3b395102 | 真实 WeKnora Schema 对齐 + 入口级真实服务验收 | 173 | success | 否 | | 0.1.132 | 6fea763c9b | 移除误提交二进制(含 .gitignore) | 174 | success | 否 |

| 0.1.133 | c72b71d7(CI run176 failure:格式未过,历史保留) | 预备份硬门禁 + 接管 + 五项验收 | 176 | failure(format) | 否 | | 0.1.134 | ea4cffbcaa | gofmt 修正(代码同 0.1.133) | 177 | success | 否 |

| 0.1.135 | 7a2188a0(CI run178 cancelled:被后续提交顶掉,非成功) | 台账/证据落盘 | 178 | cancelled | 否 | | 0.1.136 | e47e6d82 | 验收矩阵补 8 场景对照(最终候选) | 179 | success | 否 |

| 0.1.137 | cef25d92(证据对应 SHA) | 四类进度用 manifest 真实总量,未知保持 NULL | 181 | success | 否 | | 0.1.138 | e7ba2057 | 矩阵:V03 标架构阻塞、P02 真实计数、R01 恢复已验证 | 182 | success | 否 |

当前候选 = 0.1.138(e7ba205),证据 code_sha = cef25d9(0.1.137),其后的文档提交未改代码; 只推 main,未切运行版;运行版仍是 dc9e827/0.1.114。 验收证据的 code_sha 是 ea4cffb(0.1.134);其后的 7a2188a/e47e6d8 只改文档,未改代码。 入口级真实服务验收(8 场景,code_sha=ea4cffb): /home/zheromiku/.hermes/handoffs/kg-candidate-e2e/REPORT.md + evidence/*.json。 入口级真实服务验收证据:/home/zheromiku/.hermes/handoffs/kg-candidate-e2e/REPORT.md。 历史事实保留:0.1.120 run161、0.1.121 run162、0.1.122 run163 均 success,0.1.123 run165 success; run164 因 qawemail 依赖外网 DNS 失败,已修,不涂改。

旧记录 0.1.119 起为本台账自身补记:它只改文档,CI 结论以对应 run 为准(交付报告列出 run id 与结论), 不因"文档提交"免检。

| 0.1.162 | 1f482e4b | Wiki 贡献级差异 + 维护面板(前端) | 203 | success | 否 | | 0.1.163 | 23cc6c0a | libraryctl 支持 MinIO 源 | 204 | success | 否 | | 0.1.164 | 906c2829 | 捕获/预检共用 scope 映射 | 205 | success | 否 | | 0.1.165 | fd71ea34 | 同镜像不等于同一写入者 | 206 | completed/cancelled(被后续提交取消,不计) | 否 | | 0.1.166 | 1faf5137 | 用完整容器 ID 判定写入者归属(验收代码 SHA) | 207 | success | 否 | | 0.1.167 | f82eb073 | 矩阵四段重排 + 8088 待验收部署方案 | 208 | success | 否 |

| 0.1.169 | ee7688f2 | 矩阵改正 Wiki 检查计数(上轮交付写作 0.1.168,按 git rev-list --count v0.1.0..HEAD 实为 0.1.169,此处以台账为准) | 210 | success | 否 | | 0.1.170 | 11c52ad8 | 封存窗口接上实例级闸门/后台静默(本轮第一个代码提交) | 211 | failure(密钥扫描把"环境变量名字面量"误判为密钥;该提交之后才在下一提交改名修复) | 否 | | 0.1.171 | 37a8370f | 索引范围过滤接受未写 tenant_id 的文档 | 212 | success | 否 | | 0.1.172 | f2d6f3f6 | 封存队列作业 id 按 jobs.id 列宽拼短 | 213 | success | 否 | | 0.1.173 | 4d6ecda3 | 源对象存储端点可按宿主机地址覆盖 | 214 | success | 否 | | 0.1.174 | faaf0037 | agent 固定命令形态纳入对象存储端点 | 215 | failure(漏跑 gofmt,下一提交修) | 否 | | 0.1.175 | 84e8a0df | gofmt | 216 | success | 否 | | 0.1.176 | 7d4ffdbf | 全新目标实例的空索引按空基线 | 217 | success | 否 | | 0.1.177 | cb009080 | 同步资源行定位符换成目标桶 | 218 | completed/cancelled(被后续提交取消,不计) | 否 | | 0.1.178 | 2e39e495 | 移出一次性核对小工具 | 219 | success | 否 | | 0.1.179 | b061a968 | 资源换桶变换在校验时同用(封存闭环验收代码 SHA) | 220 | success | 否 | | 0.1.180 | a6406209 | 恢复作业 id 改成维护窗口可接受的形状 | 221 | success | 否 | | 0.1.181 | bc49b85 | 文档:封存闭环进"已完成"、补死信最小外部契约 | 222 | success | 否 | | 0.1.182 | 958292d | 文档:按实际运行的二进制记封存闭环时序 | 223 | success | 否 | | 0.1.183 | c2402947 | 死信按精确指纹解除(保留上游行、审计、指纹绑定) | 224 | success | 否 | | 0.1.184 | 1aecd9d6 | 资源定位符同时改到目标存储后端 | 225 | success | 否 | | 0.1.185 | c542a133 | 资源行 storage_backend_id 列也改到目标实例 | 226 | success | 否 | | 0.1.186 | e508abd9 | 死信解除绑定封存源实例(LIBRARY_SOURCE_INSTANCE) | 227 | success | 否 |

| 0.1.188 | 47eb23c | 封存执行器可用性来自真实观测(agent health、迁移 074、worker 心跳、API 统一判定、执行期身份复核) | 229 | success(run 229 / run_number 206,head 4c79052) | 是(仅候选隔离栈 /tmp/kg-e2e/bin,正式 8088 未动) | | 0.1.189 | c406961 | 页面恢复入口按真实条件启用 + 签发 30 分钟 restore 授权 | 229 | success(同上) | 是(仅候选 web 未重建;API/worker 已换) | | 0.1.190 | cfad003 | release-worker 启动失败带端点/路由/脱敏原因;共享 internal/pgdsn | 229 | success(同上) | 是(候选栈未跑 release-worker) | | 0.1.191 | 18276d0 | 文档:验收口径按用户决定收窄(V03-a 移出范围)、矩阵补执行器证据 | 229 | success(同上) | 否(只改文档) | | 0.1.192 | 4c79052 | 测试 DSN 拼接构造(密钥扫描误报修复,语义不变) | 229 | success(head 4c79052,必需 context build / build (push) = success) | 否(只改测试) |

| 0.1.195 | 6ed0635 | 期望执行器身份随 capture 请求送达并在执行前核对(TOCTOU) | 233 | success(head c14dd01 之前的 run 232/233 连续绿;最终以 8d2ed8e/run234 为准) | 是(候选栈) | | 0.1.196 | c14dd01 | 封存读资源失败带资源行与底层原因 | 233 | success(run 233 / run_number 210,head c14dd01,必需 context success) | 是(候选栈,clean 构建 vcs.modified=false) | | 0.1.197 | 8d2ed8e | 维护释放与服务恢复完成后才暴露作业成功(R4) | 234 | success(run 234 / run_number 211,head 8d2ed8e,必需 context success) | 是(候选栈,clean 构建 vcs.modified=false;真实封存→同步→恢复与"成功后立即恢复 202"均在该构建上跑过) |

| 0.1.198 | 691e4e0 | 台账补记 0.1.195–0.1.197 | 235 | success(run 235,head 691e4e0) | 否(文档) | | 0.1.199 | 24d2546 | 接管分类(未知/待收尾/被顶替)+ 维护释放幂等 | 236 | success(run 236,head 24d2546,必需 context success) | 是(候选栈,-ldflags 注入身份;build-info 读回 0.1.199 / 24d2546…,进程 vcs.modified=false) | 这批提交的候选栈验证:候选 api/worker/libraryagent/libraryctl 由该工作树重新构建(vcs.modified=true, 不是发布产物),二进制 sha256 记在 $TMPDIR/kg-candidate-verify/evidence/01-binaries.json; 旧二进制整目录备份在该目录下的 bin-prev-*,可一条命令回退。真实观测证据见 $TMPDIR/kg-candidate-verify/evidence/{00..10}*.json。

本轮(父审后)真实验收运行的最终代码 SHA 是 0.1.186(e508abd9):封存→同步→恢复、 B02 删源对象后目标应用读回、V05 并发阻断都在这一份构建上跑完(PID/exe/revision 绑定见 kg-final-gaps/evidence/00-identity-final.json)。0.1.181–0.1.183 是同一轮内的连续修复, 不作为最终验收 SHA。CI run 204(958292d,本轮起点)success。

封存闭环的运行时序(按实际运行的二进制记):封存 API→agent→冻结出快照在 0.1.175(84e8a0d); 首次同步成功在 0.1.179(b061a968);恢复与最终逐项读回在 0.1.180(a6406209)。 最终 HEAD 的代码提交即 0.1.180(其后 bc49b85 只改文档,CI run 222 success)。 本轮真实验收证据:/home/zheromiku/.hermes/handoffs/kg-candidate-e2e/evidence-wiki-final/, 交付报告:/home/zheromiku/.hermes/handoffs/release-wiki-final-acceptance-result.md。 正式 8088 仍是 0.1.114(dc9e827),未部署;部署方案见 docs/formal-8088-deployment-plan.md。

说明

  • 0.1.108–0.1.115 的 CI 事实是 failure/未取得通过证据,不因后续修复改写成绿; 这些版本当时部署到本机,属于"未过远端门禁即上线"的既成事实,本台账如实保留。
  • 0.1.116(run157 success)是第一个通过完整远端门禁的开发版本,但发布管理模块本身尚未完成全量验收, 因此不作为最终候选;最终候选必须同时满足"CI 全绿 + 业务验收证据",并在部署前交父会话审查。
  • 生产侧从未执行任何写入、恢复或清理;本机部署仅替换治理平台自身容器(api/worker/web), WeKnora(WKNFull-app)镜像与数据始终为原样。