Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 91 additions & 0 deletions docs/evidence/m5-approved-terms-host-verification.md
Original file line number Diff line number Diff line change
@@ -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.
6 changes: 5 additions & 1 deletion docs/project-dictionary-management.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`。
6 changes: 4 additions & 2 deletions docs/roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -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] 大项目索引不阻塞输入。

Expand Down Expand Up @@ -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:个人习惯

Expand Down
Loading