RELEASE NOTES / 发布说明

v0.2.0-alpha.2

GitHub 原版发布说明的本站副本,下载包与原版 SHA-256 一致。
A local copy of the published notes. Downloads match the original SHA-256.

下载 / Downloads
# v0.2.0-alpha.2 Preview Notes / 预览版说明

**Status / 状态:** Preview release dated 2026-10-18. Release archives are generated separately by the release workflow. / 预览版,日期为 2026-10-18。发布压缩包由独立的发布工作流生成。

## Changes / 更新内容

**中文:** 新增本地账号目录元数据清单和密钥环元数据查看;`init` 仅做元数据检查与配置写入,配置目标已存在时返回 `CONFIG_EXISTS`,显式 `--force` 才原子替换。新增 `whoami`/状态检查身份、稀疏本地历史诊断、全会话分文件导出、九工具 MCP 接口,以及捕获错配诊断和更清楚的进度输出。只有经所选数据库 HMAC 验证的密钥才可保存;仅当其他本地账号两个核心数据库首页在不同盐下通过 HMAC,且所选账号连续 10 秒没有有效匹配时,才报告 `KEY_ACCOUNT_MISMATCH`。候选 AES 验证失败本身不代表账号错配。

**English:** Adds local account-directory and protected-keyring metadata listings; `init` performs metadata checks and config writing only, returns `CONFIG_EXISTS` for an existing target, and atomically replaces it only with explicit `--force`. Also adds `whoami`/status identity inspection, sparse-local-history diagnostics, separate per-session exports, a nine-tool MCP interface, and clearer capture mismatch/progress reporting. Only keys HMAC-verified against the selected database may be saved. `KEY_ACCOUNT_MISMATCH` requires HMAC-valid first pages from two core databases in another local account under distinct salts, while the selected account has no valid match for 10 seconds; failed AES-candidate checks alone do not indicate a mismatch.

## Validation evidence / 验证证据

**中文:** 本机 Windows `go test -count=1 ./...` 和 `go vet ./...` 通过,包括 `TestInitDoesNotOpenOrLockDatabaseFiles` 与合成调试器错误清理测试。GPT-6 Luna 独立合成 MCP 冒烟覆盖四个协议版本、九个工具,以及隔离合成配置中的批量导出清单、SHA-256 和九条 2026 年 9 月消息。提交 `f174842` 的三系统 CI 通过完整启动、Go 测试/vet、Linux race 和独立 Python stdio 四协议/九工具冒烟([运行记录](https://github.com/axiomzero-qed/WxMori/actions/runs/39072189240))。另一次真实本机 MCP 调用使用已有配置/受保护密钥;状态 ready,inspect 确认本人 contact 匹配、2 个会话/5 条消息并返回 `SPARSE_LOCAL_HISTORY`。两个 WAL 校验通过并排除旧代次尾帧,当前代次提交帧为 0。此试用未运行捕获、重新登录、调试器或导出,不能证明 alpha2 真实捕获或真实已提交帧回放有效。

**English:** On Windows, local `go test -count=1 ./...` and `go vet ./...` pass, including `TestInitDoesNotOpenOrLockDatabaseFiles` and synthetic debugger-error cleanup. An independent GPT-6 Luna synthetic MCP smoke covered four protocol versions, all nine tools, and a batch-export manifest, SHA-256, and nine September 2026 messages in an isolated synthetic profile. Commit `f174842` passed three-system CI for startup, Go tests/vet, Linux race checks, and independent Python stdio smoke across four protocols and nine tools ([run](https://github.com/axiomzero-qed/WxMori/actions/runs/39072189240)). A separate live local MCP call used an existing config/protected keyring: status was ready; inspect verified the self-contact match, found two sessions/five messages, and returned `SPARSE_LOCAL_HISTORY`. Both WALs validated and stale-generation tails were excluded; current-generation committed frames were zero. This trial did not run capture, re-login, the debugger, or exports, so it does not establish real alpha2 capture or committed-WAL replay.

**中文:** 本次 alpha2 实际集成只覆盖已有密钥、一个 Windows 环境及上述宿主/协议,没有采集新密钥。alpha2 真实登录捕获和真实已提交帧 WAL 回放尚未验证。不得将 alpha1 的 CLI 试验当作 alpha2 证据。

**English:** This alpha2 live integration covered only existing keys, one Windows environment, and the host/protocol noted above; it captured no new keys. Real alpha2 login capture and a real committed-frame WAL test remain unverified. Do not treat the alpha1 CLI trial as alpha2 evidence.

## Distribution verification / 发行包核验

**中文:** [六平台打包发布](https://github.com/axiomzero-qed/WxMori/actions/runs/39072704930)通过。GPT-6 Luna 下载全部六个平台压缩包,SHA-256 全部匹配,并检查归档路径、文档、许可证和程序文件。实际 Windows AMD64 发行程序报告版本 `0.2.0-alpha.2`,通过四个 MCP 协议版本、九个工具的合成调用测试。其余五个平台未在本机运行;这项包验收未读取真实聊天。

**English:** [Six-platform packaging and publication](https://github.com/axiomzero-qed/WxMori/actions/runs/39072704930) passed. GPT-6 Luna downloaded all six platform archives, matched every SHA-256, and checked archive paths, documentation, licenses, and binaries. The actual Windows AMD64 release binary reported `0.2.0-alpha.2` and passed synthetic calls across four MCP protocol versions and nine tools. The other five platform packages were not executed locally; this package verification did not read real chats.

**中文:** [原标签 CI](https://github.com/axiomzero-qed/WxMori/actions/runs/39072704932) 的 Windows 测试失败:合成调试器测试把 Go 后台新增线程的句柄计入泄漏。纯测试修复 `c87c035` 固定测试线程与调度环境、直接调用 Windows 计数接口,并将十二轮检查改成对固定基线不允许增长。本机重复运行 400 轮通过,[修复后的三系统 CI](https://github.com/axiomzero-qed/WxMori/actions/runs/39073336931)通过。程序源码、已发布标签和发行包均未因此更改;不将原标签 CI 记为通过。

**English:** The [original tag CI](https://github.com/axiomzero-qed/WxMori/actions/runs/39072704932) failed its Windows test because the synthetic debugger test counted handles from newly created Go runtime threads as leaks. Test-only fix `c87c035` pins the test thread, controls scheduler workers, calls the Windows count API directly, and checks twelve cycles against a fixed baseline with no growth allowance. It passed 400 local repetitions and [three-system CI after the test fix](https://github.com/axiomzero-qed/WxMori/actions/runs/39073336931). Runtime sources, the published tag, and release assets were not changed by this fix; the original tag CI is not recorded as passed.

## Integration notes and documentation corrections / 集成说明与文档更正

**中文:** 升级时保留原配置及其同目录 `.wxmori-keys`,把 MCP 启动命令指向新程序,`--config` 保持原路径,并重启该 MCP 服务。压缩包内 `docs/mcp.md` 的参数表有两处错误:`list_accounts` 的可选输入是 `limit`、`offset`,不接受 `root`;`export_all_chats` 的可选输入是 `months`、`from`、`to`、`format`,`files_preview` 是返回字段,不能作为输入。以工具发现 `tools/list` 与[在线 MCP 指引](https://github.com/axiomzero-qed/WxMori/blob/main/docs/mcp.md)为准。文档中不支持自动捕获或非空加密 WAL 的早期版本是 `v0.1.0-alpha.1`;`v0.2.0-alpha.1` 已支持这两项,真实已提交 WAL 帧回放仍未实测。

**English:** Keep the existing config and its adjacent `.wxmori-keys` when upgrading. Point the MCP command to the new binary, retain the existing `--config` path, and restart that MCP service. The parameter table in the archived `docs/mcp.md` has two errors: `list_accounts` accepts optional `limit` and `offset`, not `root`; `export_all_chats` accepts optional `months`, `from`, `to`, and `format`, while `files_preview` is an output field, not an input. Follow tool discovery through `tools/list` and the [online MCP guide](https://github.com/axiomzero-qed/WxMori/blob/main/docs/mcp.md). The early release without automatic capture or non-empty encrypted-WAL support was `v0.1.0-alpha.1`; `v0.2.0-alpha.1` already supports both, although real committed-WAL replay remains untested.
GitHub 原始发布页 / Original release