W3-a 可验证报告离线核对页认 schema.drift:事件清单写「表结构变化」

复核 L4:schema.drift 写在正式运行的封存范围里(和 catalog.drift 一样在发起时追加),可验证报告离线核对页的
EVENT_LABEL 里却没有它,事件清单直接显示原文「schema.drift」。照总方案 X10 的叫法(结构变化,和「数据目录变化」
分开)补上「表结构变化」。

复核顺带提的 ledger.matched 没加:它追加在封存之后、不在封存范围内,导出只带 seq ≤ manifest_seq 的事件
(bundle/build.py),离线核对页上不会出现它。

测试:test_schema_changes 加一条静态检查,读 verifier.js 的 EVENT_LABEL,catalog.drift、schema.drift 都有中文说法。
This commit is contained in:
ThearchyHelios
2026-10-16 18:37:51 +08:00
parent c08b2d0d52
commit 695f63f7ba
2 changed files with 15 additions and 1 deletions
+2 -1
View File
@@ -64,7 +64,8 @@
'agent.step.end': 'Agent 步骤结束', 'agent.route.start': '调度决策开始', 'agent.route.end': '调度决策结束',
'human.requested': '请求人工审批', 'human.resolved': '人工审批结果', 'approval.inquiry': '审批质询',
'issuance': '出具判定', 'caliber.upgrade': '口径卡升版处置', 'catalog.drift': '数据目录变化',
'report.checked': '报告自查', 'evidence.judged': '按需裁判', 'file.extracted': '读入附件', 'log': '日志', 'usage': '用量',
'schema.drift': '表结构变化', 'report.checked': '报告自查', 'evidence.judged': '按需裁判', 'file.extracted': '读入附件',
'log': '日志', 'usage': '用量',
}
const T = {
allPass: '全部通过',
+13
View File
@@ -261,3 +261,16 @@ async def test_first_introspect_after_upgrade_only_builds_a_baseline(client, sho
orders = (await session.execute(select(SourceObject).where(
SourceObject.source_id == sid, SourceObject.name == "orders"))).scalar_one()
assert orders.struct_version == 1
def test_the_offline_verifier_names_the_publish_drift_events():
"""可验证报告的离线核对页:schema.drift 和 catalog.drift 一样写在正式运行的封存范围里,事件清单要给中文说法(叫法照
总方案 X10:结构变化,和「数据目录变化」分开),不显示原文 schema.drift。"""
import re
script = (Path(__file__).resolve().parents[1] / "app" / "bundle" / "verifier.js").read_text(encoding="utf-8")
block = re.search(r"const EVENT_LABEL = \{(.*?)\n \}", script, re.S)
assert block, "verifier.js 里找不到 EVENT_LABEL"
labels = dict(re.findall(r"'([a-z_.]+)': '([^']+)'", block.group(1)))
assert labels.get("catalog.drift") == "数据目录变化"
assert labels.get("schema.drift") == "表结构变化"