Commit Graph
240 Commits
Author SHA1 Message Date
Evan Hu 06bba15d4f fix(server): keep settings I/O off UI thread and bound dictionary rendering 2026-09-06 03:31:40 +09:00
Evan Hu b5d07f11eb fix(server): reduce WebView message and first-paint overhead 2026-09-06 03:05:36 +09:00
Evan Hu 05036a763d docs: describe one repository instead of six
The product README was under windows/ after the move, but it was never a component readme: it is the download page, the feature guide and the contribution guide for the whole product, so it goes back to the root and windows/ gets a real component readme.

AGENTS.md at the root now carries the repository map, the component boundaries that used to be cross-repository rules, and the release process, since the scripts that process drives live at the root. The component files keep what is genuinely theirs and say which paths they are relative to. References that named sibling repositories now name sibling directories, and the lock documentation records that Server, the pages, the GUI framework and the installer are no longer inputs to pin.
2026-09-06 02:40:51 +09:00
Evan Hu 32e722c176 ci: build every component from the one checkout
The product lock existed because five repositories had to be pinned to reproduce one product. Four of them are directories now, so a commit of this repository already pins them and there is nothing left for the lock to say about them. What it still records is what the product consumes from outside: the engine submodule, the helpcodes and the dictionary release.

CI gains a job per component instead of a reusable workflow that checked out locked commits and rebuilt them. The release workflow no longer stages five sibling checkouts under historical names and no longer carries a second sparse checkout for its own scripts; Prepare-PackageFiles.ps1 already took the source directory names as parameters, so it is told the new ones, plus where the product-wide notice now lives.

Two checks the removed cross-repository pins used to provide are replaced in kind: the pages are verified against the engine submodule's web contract in CI rather than by locking UiHtml and Engine together, and the engine bump triage that Server carried moves here and now also says so when a bump leaves the lock behind.
2026-09-06 02:35:49 +09:00
Evan Hu 373f8d1473 refactor: collapse the duplicated submodules into one vendor/ directory
Windows, Server and UiHtml each carried their own gitlink to MSIME-Engine, all three pinned to the same commit, and Server carried a gitlink to MSIME-UI that is now the ui/ component. Git only reads the root .gitmodules, so the nested ones had to go regardless.

The engine and the two third-party dependencies now live once at vendor/MetasequoiaImeEngine, vendor/opencc and vendor/cpp-pinyin. Server reaches them through MSIME_VENDOR_DIR and builds ui/ as an out-of-tree subdirectory; the Windows tip's relative contract includes gained the extra level; the ui-html contract sync and the Server env/table generators follow the engine to its new location.
2026-09-06 02:27:52 +09:00
Evan Hu f31084162a chore(deps): pin verified partial-composition flush semantics 2026-09-06 01:34:33 +09:00
Evan Hu c0866292fd chore(deps): pin the shared portable composition contract 2026-09-06 01:30:07 +09:00
Evan Hu 7a91c1d20d fix(contracts): allow the tenth mouse candidate and pin shared format contracts 2026-09-06 00:47:05 +09:00
Evan Hu ea9e8797a0 chore: remove the orphaned Sciter resources
sciter/ held two HTML files and a .gitkeep for a rendering backend that no longer exists. Nothing selects them: appearance.ui_backend in MSIME-Server accepts only "d2d" and "webview2", no source file in any repository of the organisation mentions Sciter, and Prepare-PackageFiles.ps1 never packaged the directory, so the files did not reach an installation either.

The README described the directory as the old backend's resources while calling WebView2 the current default, which reads as though Sciter were still selectable. It is not, so the row goes with the files.

The history keeps the markup if the old candidate window layout is ever wanted as a reference.
2026-09-05 23:43:30 +09:00
Evan Hu 059957a491 feat(protocol): use pinned typed messages across WebView pages 2026-09-05 23:09:37 +09:00
Evan eafa4c6ca6 Merge pull request #2 from metasequoiaime/dependabot/npm_and_yarn/webview2/settings/ime-settings/npm-cb03e01d6e
chore(deps): bump the npm group in /webview2/settings/ime-settings with 4 updates
2026-09-05 21:53:38 +09:00
Evan 330cdd0cc8 fix(settings): point the About and Feedback links at MSIME-Windows (#3)
The releases link in the About page and both the href and the visible link
text in the Feedback page still pointed at MetasequoiaImeTsf, which only
resolves through GitHub's rename redirect. These are links users click from
inside the settings window, and the visible text showed the old repository
name back to them.

The TSF frontend has been MSIME-Windows for a while; every other cross-repo
reference in the organization already uses that name.
2026-09-05 21:16:08 +09:00
dependabot[bot] 9bd33c8f61 chore(deps): bump the npm group
Bumps the npm group in /webview2/settings/ime-settings with 4 updates: [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [typescript](https://github.com/microsoft/TypeScript) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `@types/chrome` from 0.1.29 to 0.2.8
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

Updates `@types/node` from 24.10.1 to 26.4.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `typescript` from 5.9.3 to 7.0.2
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.3...v7.0.2)

Updates `vite` from 7.2.2 to 8.2.2
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.2.2/packages/vite)

---
updated-dependencies:
- dependency-name: "@types/chrome"
  dependency-version: 0.2.8
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm
- dependency-name: "@types/node"
  dependency-version: 26.4.1
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: npm
- dependency-name: typescript
  dependency-version: 7.0.2
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: npm
- dependency-name: vite
  dependency-version: 8.2.2
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: npm
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-05 10:51:59 +00:00
Evan Hu e11d69c754 ci: build the settings page on every change, and unbreak pnpm 11
This repository had no CI and no dependabot, while the settings page under
webview2/settings/ime-settings is a Vite and TypeScript project that the Windows release workflow
builds. Until now pnpm build only ever ran while cutting a release, so a break here surfaced at
the worst possible moment.

pnpm-workspace.yaml declared only onlyBuiltDependencies. pnpm 10 honours that key, which is why
releases worked, but pnpm 11 reads allowBuilds instead: it refuses to run esbuild's postinstall,
exits 1, and rewrites the file with a "set this to true or false" placeholder. So pnpm install
--frozen-lockfile fails outright for anyone on a current pnpm. Declaring allowBuilds alongside the
existing key satisfies both, verified against 10.34.5 and 11.25.0.

packageManager pins the pnpm version so a local checkout and CI agree through corepack.

dependabot now covers npm as well as actions. The template used across the other repositories only
declares github-actions and gitsubmodule, so the settings page dependencies were unwatched: they
sit one to two majors behind, with typescript at 5.9 against 7.0 and vite at 7.2 against 8.2.
Those bumps are left to dependabot rather than done here.

The README described only the symlink debug trick, through one developer's absolute paths, and
never mentioned that the settings page has to be built at all.
2026-09-05 17:39:12 +09:00
fanlusky 1709735ddd Revert the WebView2 changes and temporarily make it switchable between rendering backends. 2026-09-04 01:42:38 +08:00
fanlusky e82c5ce633 Add translations for Korean and German. 2026-09-03 00:49:13 +08:00
fanlusky db2efbaa0d Add an option for [ / ] page turning. 2026-09-02 21:13:13 +08:00
fanlusky 3d0dfd1aef Add a setting to always use Chinese/English punctuation. 2026-09-02 20:54:25 +08:00
fanlusky 30f2446cee Preview external skins from TOML color tokens instead of cand.css
Generate settings candidate previews from [candidate.dark]/[candidate.light]
and document skin.toml. Candidate HTML remains for the settings mockup;
the runtime window is no longer WebView2.
2026-09-02 15:30:29 +08:00
fanlusky a38989f52e Add candidate window follow-cursor setting and pointer diagnostics 2026-09-01 00:47:36 +08:00
fanlusky 6486e9ec4c Fix the regression issue introduced after the previous fix for slow candidate window response during high CPU usage: candidate window flickering and candidates being highlighted without mouse hover movement. 2026-08-30 17:54:14 +08:00
fanlusky 27c388dffc Add support for the DeepLX translation service. 2026-08-30 15:39:16 +08:00
fanlusky a81940faac Adjust some styles. 2026-08-29 23:39:56 +08:00
fanlusky bcd5ebe8f7 Optimize niya skin. 2026-08-29 22:52:46 +08:00
fanlusky 799e6d3d04 Optimize settings cold start speed. 2026-08-29 22:33:22 +08:00
fanlusky ba1922e33f Adjust some styles. 2026-08-29 21:48:17 +08:00
fanlusky 10aaa42626 Add support for a skin system. 2026-08-29 19:36:42 +08:00
fanlusky b22990c95f Optimize the logging on both the TSF and Server sides to facilitate issue diagnosis. 2026-08-25 13:54:13 +08:00
fanlusky b8f0e91103 Add multilingual candidate translation. 2026-08-25 12:40:34 +08:00
fanlusky 7895d3a9cc Further standardize the issue of batch importing dictionaries. 2026-08-25 11:58:54 +08:00
fanlusky 20779511b0 Add some logs. 2026-08-23 18:11:03 +08:00
fanlusky 4088cc213f Add log switch. 2026-08-22 18:33:46 +08:00
fanlusky 4b95102501 Attempt to fix the flickering issue with Microsoft Shuangpin. Add an R mode for temporary Japanese input. 2026-08-22 16:54:51 +08:00
fanlusky edcd29d4bb Provide an entry for setting the Tencent Cloud Translation API key. 2026-08-22 13:38:42 +08:00
fanlusky 79b5f6dad2 There should also be a corresponding status indicator when the keyboard Caps Lock is turned on. 2026-08-21 23:09:15 +08:00
fanlusky cb925e4600 Adjust ftb font style. 2026-08-21 22:19:33 +08:00
fanlusky 19d41a007b Keep the Chinese/English/Japanese status icons in the plain-text toolbar in a non-selectable state. 2026-08-21 22:11:09 +08:00
fanlusky ccc20fb623 Optimize the tray icon of the language bar and the Japanese icon of the toolbar. 2026-08-21 22:06:29 +08:00
fanlusky b3cac70a00 Fix the issue where Chinese-Japanese switching fails after the settings window has been idle for a long time. 2026-08-21 17:52:17 +08:00
fanlusky 65d5508f64 Add dynamic switching of Japanese icons. 2026-08-21 17:33:54 +08:00
fanlusky cf67568bd9 Add preliminary support for Japanese input. 2026-08-21 16:56:08 +08:00
fanlusky 96040385bc Add Chinese-English translation functionality during typing. 2026-08-21 14:44:10 +08:00
fanlusky 14c5467fc6 Adjust the style of dropdown boxes to make them clearly distinguishable from the background. 2026-08-21 13:06:10 +08:00
fanlusky 5d9c3799e9 Provide more slots for custom prompts. 2026-08-21 12:58:56 +08:00
fanlusky 44f9dde883 Enable AI prediction to support more vendors. 2026-08-21 01:54:48 +08:00
fanlusky 7bfdf6de03 Add several custom options for Doubao ASR. 2026-08-21 01:29:10 +08:00
fanlusky 6e77c23e65 Enable voice input to support multiple vendors. 2026-08-20 21:18:07 +08:00
fanlusky 914063f963 Make the preedit in the candidate window preview of settings follow the preedit settings of the window. 2026-08-19 21:13:44 +08:00
fanlusky e9c8387614 Support batch import of quick phrases. 2026-08-19 20:26:30 +08:00
fanlusky 3ae623ab29 Add the Y mode feature, which provides temporary English input functionality. 2026-08-19 19:40:28 +08:00