返回 DeepSeek-Reasonix
session-archive-upgrade-validation.md
根目录 / docs / session-archive-upgrade-validation.md
1 # Archive integration qualification / 归档集成验收
2
3 Base: `main-v2@a4b83056a99ff1da1700a585e8b9da71fb872838`.
4 Desktop protocol 10; registry schema 2; canonical codec and Serve unchanged.
5 The earlier archive-v2.5 build is not evidence for this integration.
6
7 基线如上,本地协议 10、注册表 schema 2,正文 codec 及 Serve 不变。
8 旧 archive-v2.5 测试包不作为本次集成的验证证据。
9
10 ## Current evidence / 当前证据
11
12 All data tests use disposable fixtures, not personal history. These counts do
13 not claim that a user's existing data has already been repaired.
14 全部数据测试使用一次性夹具,不操作个人历史,不宣称已经修复用户的真实数据。
15
16 | Gate / 门禁 | Status / 状态 |
17 | --- | --- |
18 | Root Go full suite / 根模块全量 | Passed after the recovery-close repair, including generated inventory / 恢复关闭修复后全量通过,包括生成物检查 |
19 | Desktop full suite / Desktop 全量 | Passed after the migration/catalog checkpoint and source diagnostic fixes (415 seconds) / 迁移与目录索引校验、来源诊断修复后全量通过(415 秒) |
20 | Frontend / 前端 | 379 suites passed; production build and typecheck passed / 379 套件及生产构建、类型检查通过 |
21 | Race / 竞态 | Desktop registry/runtime/migration and session purge race checks passed. Recovery-close deterministic interleavings and related cancellation race tests passed ten repetitions / Desktop 身份、注册表、迁移及删除竞态检查通过;恢复关闭确定性交错和取消竞态回归重复十次通过 |
22 | Fault tests / 故障测试 | Content-publication interruption, receipt replay, pending purge visibility, external writer exclusion, symlink/staging refusal / 正文发布中断、回执重放、删除未完成入口、外部写锁、符号链接及暂存冲突 |
23 | Production package / 生产包 | Earlier smoke results are not final qualification: asynchronous Playwright predicates advanced before durable completion. The corrected harness awaits actual RPC conditions and captures registry checkpoints; use the final PR review's exact SHA and package receipt / 早期脚本的异步 Playwright 谓词提前推进,结果不作为最终验收;修正后等待真实 RPC 条件并记录注册表检查点,交付以 PR 最终评审的 SHA 和包回执为准 |
24 | Windows/Linux / 跨平台 | Native runs unavailable on this macOS host; no native success claim / 本机未原生运行,不标记为通过 |
25
26 ## Review repairs / 评审修复
27
28 - Preserve upstream multi-head migration and durable submission receipts;
29 quarantine changed adopted sources without overwriting continued targets.
30 - Stamp command generation while holding the registry writer lock and reject
31 intervening lifecycle changes again at child-operation admission.
32 - Publish proven legacy trash through an explicit archive-import commit;
33 preserve its recorded timestamp or leave time unknown.
34 - Retain originals in the legacy purge RPC; canonical tombstones suppress
35 repeated adoption. Reject unowned purge staging directories.
36 - Report malformed source manifests in the ledger while migrating healthy
37 sources; replay failure does not suppress independent discovery.
38 - Compare durable migration inputs when catalog repair rewrites identical
39 source bytes or disposable metadata; retain unknown metadata in the digest
40 and reject changes to content, ancestry or workspace identity.
41 - Keep recovery terminal fanout and watchdog publication under controller
42 resource ownership until both finish. The deterministic close interleaving
43 failed before the repair; CI's temporary-directory cleanup failure was not
44 addressed by disabling the race job or retrying cleanup.
45 - Retire unbound canonical navigation caches on archive and purge. A released
46 client can leave a 60-second cached writer, which must not be confused with
47 an active client. Bound or executing runtimes still reject retirement.
48 - Poll asynchronous smoke RPC conditions outside Playwright's synchronous
49 truthiness loop; verify false, timeout and rejection behavior. Earlier runs
50 could stop the process during purge and observe pending recovery on restart.
51
52 - 保留上游多 head 迁移与持久提交回执;已采用来源变化进入待校验,不覆盖后续正文。
53 - 注册表写锁内写入准确 generation,子事务再次拒绝过期生命周期意图。
54 - 明确的旧回收站记录使用专用归档导入提交,保留已有时间或显示未知。
55 - 旧 purge RPC 同样保留原件;canonical 墓碑阻止再次采用,拒绝无归属的删除暂存。
56 - 损坏 manifest 记录失败且不影响健康来源,重放失败不阻断独立发现。
57 - 目录索引修复重写相同正文或派生元数据时比较持久输入;摘要保留未知元数据,正文、谱系及工作区变化仍拒绝采用。
58 - 恢复末尾事件分发和 watchdog 发布完成前保留控制器资源所有权;确定性交错测试在修复前失败,未通过关闭 race 检查或重试目录清理掩盖问题。
59 - 归档及删除回收无客户端的 canonical 导航缓存,避免将解绑后保留 60 秒的 writer 当成活动会话;仍被绑定或正在执行的运行时继续拒绝回收。
60 - 异步验收 RPC 使用真正等待结果的轮询,覆盖 false、超时及拒绝;此前脚本可能在删除中途退出,重启时看到待完成恢复。
61
62 ## CI assessment / CI 核查
63
64 The root Windows smoke selector excludes the separately owned agent, boot and
65 control groups. Full memory profiling is applicable because this change touches
66 the bridge and lifecycle owners. The earlier memory run was cancelled, not an
67 assertion failure or an exhausted 90-minute timeout; cancellation alone does not
68 justify deleting the guard. No CI budgets or required checks were weakened.
69 The build-contract guard now tests unchanged, changed, added, removed and failed
70 generation behavior instead of requiring a specific `git diff` spelling; an
71 uncommitted but correctly generated local contract may be packaged.
72 Current-head terminal checks and package receipts are recorded on
73 [PR #10396](https://github.com/esengine/DeepSeek-Reasonix/pull/10396), rather than
74 claiming that an older run qualifies a later commit.
75
76 Windows smoke 已排除单独执行的 agent、boot 和 control 分组。本次涉及桥接和生命周期,
77 完整内存检查适用。此前内存任务是被取消,并非断言失败或耗尽 90 分钟超时;仅凭取消不能
78 删掉门禁。本次未放宽预算或必需检查。构建契约检查改为验证无变化、修改、新增、删除及
79 生成失败的行为,不再硬编码要求某种 `git diff` 写法;尚未提交但生成正确的本地契约可打包。
80 当前提交的最终 CI 和打包证据记录在 PR #10396,
81 不以旧提交的通过结果替代新提交验收。
82
83 ## Remaining qualification / 尚待验收
84
85 No release qualification is claimed until the integrated package, current-head
86 CI and final owner checks are recorded. Large-history list latency, real disk
87 exhaustion/power loss and native Windows/Linux locks remain separate gates;
88 cross-compilation and simulated failures are not substitutes.
89
90 集成包、当前提交 CI 和最终模块检查记录前,不宣称达到发布条件。大规模列表延迟、
91 真实磁盘满/断电、Windows/Linux 原生文件锁需单独验证;交叉编译或模拟失败不能替代。
92
93 See [compatibility guide](session-archive-upgrade.md) for source retention,
94 rollback and format handling. 降级、原件保留与格式矩阵见兼容文档。
95
95 lines MARKDOWN