用户反映更新后 API token 被清空、需要重填。根因不在安装器(它早已用 onlyifdoesntexist 且清理时保留 config.toml / config.base.toml,从不覆盖用户 配置),而在 Server 启动时的合并路径 SyncConfigWithInstalledTemplate:当 config.toml 存在、非空但解析不过(上次写入被打断留下半截文件,或 token 里混入 破坏 TOML 的字符)时,旧逻辑直接拿出厂模板覆盖,等于把用户全部配置——尤其是 凭证——清零。 配置升级本质上已经是「逐条把用户值重放到新模板」(MergeTomlIntoTemplate),因此 不另建配置操作日志,而是把「逐条重放」精准用在最难重填的凭证上,并堵掉硬重置: - ReapplyRealCredentials:合并结束时把用户填过真值的凭证逐条重放回去,有键改值、 无键则在其分节插入。覆盖 token / api_key / apikey / secret_id / secret_key / app_id / asr_app_key 及所有 per-provider 槽位(token_* / asr_token[_*] / polish_token[_*]),真值判定复用 VoiceInput::IsPlaceholderToken。这样模板漂移 漏掉某个 token 键也不会静默丢失;占位符不粘住,新默认值照常生效。 - SyncConfigWithInstalledTemplate 的 unparseable 分支:先把坏文件备份成 config.toml.corrupt-<时间戳> 留证,再逐行抢救可识别赋值重放到新模板;即便整体 抢救结果仍解析不过,也只回退到「模板 + 重放凭证」,而非纯模板。 新增回归测试:模板漏键时真 token 被写回、未填的占位符跟随新默认、损坏配置能捞回 真 token,以及读安装器真正分发的 config.default.toml 逐分节确认所有凭证键挺过升级。
Metasequoia IME for Windows
中文 README · Website · Docs · Privacy
A free and open-source Chinese and Japanese input method for Windows 10 and 11, built on TSF with no legacy IMM32 path.
This repository is the whole Windows product: the TSF text service DLL, the resident server, the conversion engine, a self-written native GUI framework, the HTML surfaces and the installer. The engine was imported from MSIME-Engine and specialized for Windows; it now lives in engine/ as a first-party component, so a plain clone builds the product. See engine/UPSTREAM.md.
This is a public beta. Expect rough edges and read the release notes before upgrading.
Install
Download the installer from Releases or the download page, run it, then switch with Win + Space.
Current builds are not code signed. SmartScreen will block them and uiAccess is unavailable, which means the candidate window cannot float above elevated applications. Verify the download with the SHA256 published on the download page.
You need the Microsoft Visual C++ 2015–2022 Redistributable (x64). The server and settings app are 64-bit; the x86 redistributable is a separate package and does not substitute for it. If you cannot switch to the IME, the server keeps exiting, or the settings window closes immediately, install that first.
What it does
- Chinese input: full pinyin, double pinyin (Xiaohe / Ziranma / Shoudao / Microsoft), Wubi 86
- Japanese input: romaji, with hiragana, katakana and dictionary candidates; also available as a temporary mode from Chinese
- Helpcode (形码) filtering on pinyin schemes: five tables, single- and double-code
- Optional cloud candidates, and AI suggestions via DeepSeek / OpenAI / SiliconFlow / Groq
- English-Chinese glosses in the vertical candidate window
- Mixed Chinese-English input, emoji and kaomoji, a dedicated English candidate mode
- Voice input with streaming recognition and optional cleanup
- Handwriting, on-screen keyboard, floating toolbar, clipboard history
- User dictionary management, candidate frequency tuning, skins with light and dark variants
Privacy
An input method sees every keystroke, so the boundaries are stated explicitly in PRIVACY.md: which features reach the network, what each one sends, what the defaults are, and how to turn each off.
Two things worth knowing up front. Cloud candidates are on by default — the composition spelling goes to Google's input-tools service, and it is the only network feature that works without you supplying a credential. API tokens are stored in plain text in config.toml, unlike macOS and Linux which use the Keychain and Secret Service.
There is no telemetry, analytics or crash reporting of any kind.
Building and contributing
CONTRIBUTING.md has the environment, the build order and what to run before opening a pull request. Contributions do not have to be code — dictionary entries, documentation, icons and compatibility testing all count, and the recruiting page lists them by area.
Note that most issues, documentation and code comments are in Chinese. English pull requests and issues are welcome.
Licence
GPL-3.0. See LICENSE and THIRD_PARTY_NOTICES.txt.