## 当前范围 · 2026-10-03 源码迁移已经完成并随当前主线通过:固定旧源码生成的真实 PostgreSQL/v4 备份覆盖账项与签署 receipt 原字节、sequence、余额/总量、历史引用、并发启动,以及每个迁移阶段中断后的完整回滚和原库重试。无需继续把这些实现写成未完成。 本 issue 只保留实际旧库是否仍适用及该快照的隔离验收。下一步是只读盘点 legacy escrow 和保留旧快照;有对象才做经批准的隔离守恒/回滚演练。若当前部署和保留数据已无此类旧库,本项应按不再计划关闭,而不是永久要求不存在的现场快照。 ## 剩余完成条件 - [ ] 先做经授权只读存量盘点:部署schema/版本、legacy_escrow_identities以及是否有仍需迁移的旧快照;公开只写数量/摘要,不公开行值或备份。 - [ ] 若确有旧数据,取得保护manifest/来源/冻结时间后,仅在全新隔离PG验证该快照守恒与失败回滚;若没有适用旧库或保留快照,可将此现场专项按not_planned关闭并保留源码兼容回归。 本轮依据当前主线 `105c2cf716c1179d49bc79224f10f44a3b031163`、[已完成 CI](https://github.com/TokenNotIncluded/msg/actions/runs/37121402550) 和只读部署盘点更新范围。没有执行新的生产迁移、删除、Root/CA 变更或资金操作。旧的全章/全客户端人工矩阵不再作为本项永久门槛。 <!-- msg-issue-triage-20261003-65-scope --> <details> <summary>历史需求与旧验收记录(保留供查阅;当前待办以上述范围为准)</summary> ## 2026-09-28 核验:迁移代码与旧版本 fixture 已有证据;真实存量库验收 blocked 当前核查 main `13c562ea05d273e618b1ea06b9e452da79d4439f`、CI `36384948145` success;四分片完整回归证据见 #83。代码级修复不能替代生产清单、受保护备份或现场迁移/回滚批准。 ## 已完成,不能重做或回退 - [x] #87 的 PostgreSQL LedgerAccount/旧 escrow Subject 分阶段迁移:检查直接列与有类型 JSON 身份引用,未知权威引用/未知相关表 fail closed;在既有事务/advisory lock 中完成。 - [x] 使用真实固定旧代码 `ac083b3666b1b5268d90115129e2cc4e0dd11521` 生成数据库和 v4 备份,非当前 schema 伪造旧库;原 28 项定向证据按原提交保留。 - [x] 既有回归覆盖重复/并发初始化、故障注入和完全回滚、账项/receipt 原字节、sequence、余额/总量、订单/bounty/claim/history 及不可变约束;后续主线的有类型 settlement 引用分类必须保留。 ## 剩余验收 - [ ] 经授权取得真实生产版本、schema/主体/账户/引用清单与受保护备份 manifest,记录数据时间点与来源。 - [ ] 在全新隔离目录/空 PostgreSQL 上恢复真实快照,先 preflight;比对所有账项字段、精确签名 receipt、sequence、总量、各主体余额、订单/托管/悬赏与历史引用。 - [ ] 使用该快照执行中断/回滚/重试/并发启动演练,确认无悬空引用、负余额、系统账户被身份/凭据/恢复激活;未知来源继续拒绝。 - [ ] 对照新市场 schema 验证引用分类,无财务及签署历史重写;隔离恢复不能激活外发、写入或旧授权。与 #69 的 quarantine/replay 及 #84 现场验收联合核对。 ## 任务 A 主责存量迁移、备份与 preflight;`storage/ledger_migration.py` 的身份引用约束由 A 维护,任务 B 的新增市场引用通过窄补丁/明确表语义接入,禁止放宽 unknown-table 拒绝。公共 PostgreSQL DDL 接线按 #83 由 C 串行整合。 目前未取得真实生产快照/清单,也未执行生产迁移或回滚。缺少授权/材料时保持 open/blocked,交付安全的可复现实验和材料清单,不用测试 fixture 冒充真实快照、不上传任何生产备份或秘密。操作与字段边界见 `docs/LEDGER_MIGRATION.md`;原第 05/09/11/15 章验收范围不变。 </details>
Activity
Validate semantic escrow references and real legacy backup migration (#…
Reject unsafe credential journals without blocking or leaking descrip…
LIghtJUNction commentedon Sep 28, 2026
Refs #65 — #116 的A增量增加只读preflight,保留现有隔离旧LedgerAccount迁移/回滚工具,不改公共DDL/初始化接线。head c97a528。
admin/preflight.inspect_database复用_escrow_sources/_validate_identity_references/_validate_ledger,有界游标摘要原始账项文本,不重写历史receipt/签名、不把历史金融引用当用户权限;空库不建表,legacy未迁移明确blocked,未知权威引用不放宽。新增真实PG只读/no-sequence-change回归通过。B跨组复核仅针对#103@9dc0d3d源码:purchase_escrow保持LedgerAccount而非Subject;money_purchases.escrow_account非空FK;market迁移和旧账本迁移在同一初始化事务;store_order_events.actor属于身份引用而receipt_refs属于历史财务引用。没有把尚未合入B的DDL全文件覆盖进A。
真实生产旧库清单、受保护快照来源/摘要、用该快照完成的隔离迁移/失败回滚/守恒证据仍未提供,不能由本地fixture或当前CI代替;本issue现场验收继续open/blocked。#116新head完整四分片会运行仓库既有真实PG/固定旧源码迁移测试,结果另在PR记录。无生产恢复/删除或部署。
Merge #118: integrate recovery safety without weakening current autho…
Merge PR #185: Python 3.15 quality and verified deployment artifacts
LIghtJUNction commentedon Sep 29, 2026
2026-09-29 当前接续(#185 已合并)
main
5cdaeba2b7b191a27684093cce7b5a153c99c88d/ tree3ad68f2012896310abfa9bcaf800c9ab05f6c886已实际读回,等于最终PR通过的树。18个PR工作流全部success;8份ZIP摘要/JUnit node-ID独立核验 2531 core + 8 conformance,零失败/错误/跳过。精确来源和产物摘要见 #185证据,更新索引见#83。合并后main push是独立运行,正在核验,不预记成功。旧版本固定源码生成快照的迁移/保全/回滚回归随最终头重新通过,SQLite fixture 的连接泄漏已修复,不改变原始签署事实或迁移拒绝规则。仍缺真实存量库的合法来源、保护manifest、冻结时间及该快照的隔离迁移/回滚材料;fixture不是现场库。
各条款源码入口与独立现场材料见
docs/RELEASE_ACCEPTANCE.md。本评论更新证据归属,不降低原验收范围或扩大现场权限。Verify installed-package concurrency, crash recovery and full restore…
LIghtJUNction commentedon Oct 3, 2026
源码迁移已经完成并随当前主线通过:固定旧源码生成的真实 PostgreSQL/v4 备份覆盖账项与签署 receipt 原字节、sequence、余额/总量、历史引用、并发启动,以及每个迁移阶段中断后的完整回滚和原库重试。无需继续把这些实现写成未完成。
本 issue 只保留实际旧库是否仍适用及该快照的隔离验收。下一步是只读盘点 legacy escrow 和保留旧快照;有对象才做经批准的隔离守恒/回滚演练。若当前部署和保留数据已无此类旧库,本项应按不再计划关闭,而不是永久要求不存在的现场快照。
[-][P0] 真实旧库快照验证 LedgerAccount/escrow 迁移与回滚[/-][+]确认旧 LedgerAccount/escrow 存量是否仍适用;适用时验证隔离迁移[/+]