From 55f378ed2ab6718ea92c2644f0e731fd25854ba2 Mon Sep 17 00:00:00 2001 From: kun002 <31429662+kun002@users.noreply.github.com> Date: Sun, 6 Sep 2026 12:30:56 +0800 Subject: [PATCH] docs: record M5.5 staged desktop verification --- .../m5-approved-terms-host-verification.md | 91 +++++++++++++++++++ docs/project-dictionary-management.md | 6 +- docs/roadmap.md | 6 +- 3 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 docs/evidence/m5-approved-terms-host-verification.md diff --git a/docs/evidence/m5-approved-terms-host-verification.md b/docs/evidence/m5-approved-terms-host-verification.md new file mode 100644 index 0000000..12b4181 --- /dev/null +++ b/docs/evidence/m5-approved-terms-host-verification.md @@ -0,0 +1,91 @@ +# M5.5 User-Approved Terms Host Verification + +## Conclusion + +The M5.5 manual-term path was exercised on the real, logged-in Windows 11 +desktop with the CI-built `0.5.4-preview` service and manager binaries +(staged, not installed). The complete management path passed: + +```text +0.5.4 manager 添加术语 (real UI click) + → bounded CIPM UPSERT_TERM + → staged 0.5.4 Context Service Project Indexer owner + → persisted term/manual record with server-owned last_seen + → manager view refresh (2 → 3 entries) +``` + +A real VS Code report-only Adapter also ingested fresh Language Server +symbols into the same staged 0.5.4 service, and both original +`language_server` records stayed byte-identical. The unrelated real project +dictionary kept its exact SHA-256 across the entire session, and the test +project was removed afterwards through the manager's confirmed whole-library +delete. + +```text +M5.5_STAGED_DESKTOP_MANAGEMENT = VERIFIED +M5.5_INSTALLED_CANDIDATE_ACCEPTANCE = REAL_WINDOWS_VERIFICATION_REQUIRED +``` + +## Fixed product and build + +| Item | Value | +|---|---| +| Product | `ContextIME 0.5.4-preview` (CI-built, staged) | +| Installer bytes | `12,299,493` | +| Installer SHA-256 | `eed498b66b00cb4932df36cd09005f559cdfafe53802a067ea57d5dee004e37b` | +| Context Service SHA-256 | `212c0ebd00a1d2a042fdf02ffc230767ecfa9b52b9eb5b5bb7eee79520e71d2e` | +| Manager SHA-256 | `b7fd0cb333d32e66ce16e941888ff0624dfd4451b2e85f90a17eafa1c2fd88ee` | +| Installer CI run | [34008448679](https://github.com/kun002/ContextIME-public/actions/runs/34008448679) | +| Weasel commit | `9cc96e20dc71b80876b12f689bb5863c76c2a7ed` | +| librime commit | `1c23358157934bd6e6d6981f0c0164f05393b497` | +| OS | Windows 11 Professional x64, build `26200` | + +All three hashes were recomputed locally from the downloaded artifact and +matched the generated manifest. The installer itself was not executed: the +elevation prompt was dismissed, so the verification ran the CI-built service +and manager binaries from a staged directory with unchanged ContextIME +identity (same pipes, mutexes, and data root). + +## Verified on the real desktop + +1. **Staged 0.5.4 service lifecycle.** After quitting the installed 0.5.3 + Context Service through its documented `--quit`, the staged 0.5.4 binary + bound `ContextIME.ContextService.v1`, `ContextIME.ProjectIndexer.v1`, and + `ContextIME.ProjectCandidate.v1` on the logged-in desktop. +2. **Real Adapter ingestion into 0.5.4.** A real VS Code window with the + isolated report-only `0.5.0` VSIX and a fresh TypeScript workspace + published `AcceptanceController` (class) and `runAcceptance` (method) + into a new project dictionary `12646ea4563df944ed5c60858d006cf7.dict` + through the staged 0.5.4 service. +3. **Manager add-term (M5.5 core).** The 0.5.4 manager listed the new + project, and a real 添加术语 click with `CeShiShuYu` produced: + - persisted record `term 1 1788666759213 manual 43655368695368755975` + (UTF-8 `CeShiShuYu`) in the project dictionary; + - both prior `language_server` records unchanged, including their + original `last_seen` values; + - manager view refreshed from `2 个词条` to `3 个词条` with the new row + showing `term / manual / 1`, and the term input cleared. +4. **M5.4 regression.** The manager's confirmed whole-library delete still + works on 0.5.4: the test project was removed after the confirmation + dialog and the dictionaries directory returned to exactly the user's + real dictionary. +5. **No disturbance to user data.** The real project dictionary + `e37d5123336bb193cf26efc9ff1a31bc.dict` kept SHA-256 + `5c9441309c389d311a300613c1234578634fc405955b31555e820dfda06da3cd` + before and after the entire session. +6. **Environment restored.** The staged service was quit, the installed + 0.5.3 Context Service restarted (all three pipes re-verified), the + staged manager closed, and the ContextIME TSF server restarted. + +## Not completed in this session + +- **Installed candidate commit.** Typing `ceshishuyu` in a real editor and + committing `CeShiShuYu 〔项目·术语〕` through the installed package remains + open. The app-smoke driver could not pass its `/nascii` Chinese-mode + handshake against the installed 0.5.3 server in this session state (the + handshake process never exited within 5 seconds), and synthetic Shift / + Ctrl+Space did not toggle IME modes for manual typing. This step needs the + installed 0.5.4 package and a controlled interactive desktop session. +- **In-place 0.5.4 upgrade.** The verified installer was not executed + because the UAC elevation prompt requires an interactive user; it can be + installed directly to close the installed acceptance. diff --git a/docs/project-dictionary-management.md b/docs/project-dictionary-management.md index 5f681a1..9f5e6db 100644 --- a/docs/project-dictionary-management.md +++ b/docs/project-dictionary-management.md @@ -120,4 +120,8 @@ M5.5 在不新增 pipe、不改变 `CIPD` Adapter 路径的前提下,把“用 - 手动术语按原始 UTF-8 前缀匹配拼音输入串;英文标识符和术语可直接前缀 命中,中文词语不会由拼音前缀命中,需要后续 pinyin 标注支持; - `UPSERT_TERM` 不能创建不存在的项目词库; -- CI 编译/单测与安装版真机验收状态见 roadmap M5.5 小节。 +- CI 编译/单测见 [`evidence/m5-approved-terms-ci.md`](evidence/m5-approved-terms-ci.md); +- `0.5.4-preview` 暂存服务与管理器已在登录桌面完成真实 Adapter 采集、 + 添加术语落盘、视图刷新、M5.4 整库删除回归和真实词库零扰动,见 + [`evidence/m5-approved-terms-host-verification.md`](evidence/m5-approved-terms-host-verification.md); + 安装版候选上屏验收仍为 `REAL_WINDOWS_VERIFICATION_REQUIRED`。 diff --git a/docs/roadmap.md b/docs/roadmap.md index 5920259..48b48be 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -302,7 +302,8 @@ M4.2 设计:[`docs/vscode-adapter.md`](vscode-adapter.md)。验证证据:[`d - [ ] 增量更新资源名和用户批准的技术术语。 - [x] 提供词库查看、删除和禁用。 - [x] M5.3 在候选窗口以 `〔项目·类型〕` 标记项目候选来源。 -- [x] M5.5 用户手动批准术语进入项目词库与候选(资源名等待后续有界 source)。 +- [x] M5.5 手动术语写入项目词库与管理入口(真机验证)。 +- [ ] M5.5 手动术语候选上屏安装版验收;资源名等待后续有界 source。 - [x] M5.2 协议不承载或保存完整源码、URI、workspace 路径、range、detail、container、Token 或环境变量值。 - [x] 大项目索引不阻塞输入。 @@ -370,7 +371,8 @@ M5.5 用户批准术语当前边界: - active-project snapshot 发布过滤器从仅 `language_server` 扩展为 `language_server + manual`,手动术语沿 M5.3 桥接进入候选并显示 `〔项目·术语〕`; - 中文词语当前不会由拼音前缀命中(需后续 pinyin 标注);`UPSERT_TERM` 不能创建不存在的项目词库; - CI 证据:见 `docs/evidence/m5-approved-terms-ci.md`(私有仓库 Actions 因账单暂停,构建与测试由 ContextIME-public 镜像 CI 完成); -- 安装版真机验收(从开始菜单管理器添加术语并在真实候选窗口提交)仍未完成,需随下一个预览包关闭。 +- `0.5.4-preview` 暂存(未安装)服务与 CI 构建管理器已在登录桌面完成:真实 Adapter 采集进 0.5.4 服务、管理器添加术语落盘 `term/manual`、视图 2→3、既有 `language_server` 记录字节不变、整库删除回归、真实词库 SHA-256 全程不变;证据见 `docs/evidence/m5-approved-terms-host-verification.md`; +- 安装版候选上屏验收(输入拼音、提交 `〔项目·术语〕` 候选)仍未完成:本次会话 app-smoke 的 `/nascii` 中文模式握手对已安装 0.5.3 服务持续超时,且 UAC 提权需交互确认;`M5.5_INSTALLED_CANDIDATE_ACCEPTANCE = REAL_WINDOWS_VERIFICATION_REQUIRED`。 ## M6:个人习惯