Repository navigation
Conversation
PCMan
reviewed
Oct 25, 2026
| ; CurrentMajorVersionNumber, which only Windows 10 and later write. | ||
| ; This runs after SetRegView 64 above, so the read sees the native view on | ||
| ; x64/ARM64 and the only view on 32-bit Windows. | ||
| ${IfNot} ${AtLeastWin8} |
Member
There was a problem hiding this comment.
should web windows 10, not windows 8?
Contributor
Author
There was a problem hiding this comment.
Retargeted: the gate is now ${AtLeastWin10} in .onInit, and the UCRT check is gone — Windows 10 ships the UCRT in-box and PIME ships no VC++ redistributable.
To answer the review question directly: an 8.1 floor would undo the CVE fixes in v2.0.0-beta4. Python 3.12's last Windows binary is 3.12.10 (2025-04-08) and pins OpenSSL 3.0, end of life since 2026-09-07; Go 1.20 and Rust 1.77 would freeze too, and Rust 1.77 turns the launcher into a permanent fork of upstream as it is refactored.
(Comment generated with assistance from omp / DeepSeek V4.1 Flash.)
This comment was marked as outdated.
This comment was marked as outdated.
asdf80730
force-pushed
the
pr/installer-win10-floor
branch
from
October 26, 2026 10:15
31b732d to
18ceae6
Compare
asdf80730
force-pushed
the
pr/installer-win10-floor
branch
2 times, most recently
from
October 26, 2026 10:33
57ff362 to
6851f08
Compare
asdf80730
force-pushed
the
pr/installer-win10-floor
branch
from
October 26, 2026 13:37
6851f08 to
89a5090
Compare
The installer still gated only on Vista, so Windows 8.1 and older
installed a payload they cannot run: the bundled Python 3.15 and Go 1.21
runtimes require Windows 10, stable Rust requires Windows 10, and Node 22
supports 8.1 only as experimental.
- Replace the Vista gate with ${AtLeastWin10} in .onInit, before the
pending-reboot prompt, so an unsupported system fails before an
existing installation is removed.
- Retarget the locale message to Windows 10 in English, Simplified and
Traditional Chinese.
- Drop the UCRT check: Windows 10 ships the UCRT in-box and PIME ships
no VC++ redistributable, since the launcher and the C++ DLLs are
static and the Python embed carries its own vcruntime140.dll.
- Leave the AtLeastWin8 feature gates in cheeng/hideSection alone; they
select optional components, not the support floor.
Design and decision by asdf80730. Implementation generated with AI
assistance from omp (DeepSeek V4.1 Flash).
asdf80730
force-pushed
the
pr/installer-win10-floor
branch
from
October 26, 2026 13:40
89a5090 to
fe81ffc
Compare
asdf80730
added a commit
to asdf80730/PIME
that referenced
this pull request
Oct 26, 2026
EasyIME#975 (static launcher CRT plus CI dependency gate) and EasyIME#976 (check, macro, locale strings, inetc) merged on 2026-10-24 and EasyIME#966 is closed. Record the merge commits, the now-green per-PR checks, the local makensis replay, and the one remaining gap: the Windows 10 floor is still open as EasyIME#1005. Generated with assistance from omp (DeepSeek V4.1 Flash).
asdf80730
added a commit
to asdf80730/PIME
that referenced
this pull request
Oct 26, 2026
- AGENTS.md: the minimum supported OS is Windows 8.1, with the note that master's bundled runtime and installer still target Windows 10 until the open installer and runtime PRs land. - verification.md: read the bundled Python version from the ._pth file instead of hardcoding it, and record the Rust 1.77 release-profile PDB requirement. - wine.md: describe the bundled Python's init_sys_streams abort without binding it to one version. - Mark both research notes that discuss the floor where they are now stale. PR EasyIME#1005 now accepts 8.1 and PR EasyIME#1007 lowers the runtime toolchain, so the 'keep Windows 10' floor and the version-pinned Wine notes described a plan that no longer holds. What master still ships is stated rather than silently dropped. Fully generated by omp (DeepSeek V4.1 Flash) without human intervention.
asdf80730
added a commit
to asdf80730/PIME
that referenced
this pull request
Oct 26, 2026
Two conventions were written down but nothing enforced them, and both broke in the same run: a new script shipped without its declaration (the reviewer caught it by eye) and a finished feature had no spec.md at all (the harness never looked). A reviewer catching a fixed syntactic rule is what a check is for. - check_ai_declarations.sh: every file added against origin/master carries one of AGENTS.md §4's declarations. Diff-scoped, because the tree predates the rule and its sediment must not be rewritten. - check_tracker_layout.sh: .scratch/<feature>/ has a spec.md (or a wayfinder map.md) and issues/NN-slug.md files with a Status: line. Skips where .scratch is absent, which is every CI checkout. - Both report "not applicable" as exit 125 and check_pr_scope.sh now does the same, so step() can skip them without the pr_scope wrapper that existed only to translate SKIP output. - pr_bodies accepts either half of §2's human-designed declaration: PR EasyIME#1005 says "Design and decision by", which the old prefix match rejected. Fully generated by omp (DeepSeek V4.1 Flash) without human intervention.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The installer gated only on Vista, so Windows 8.1 and older accepted a payload they cannot run: bundled Python 3.15 and Go 1.21 require Windows 10, stable Rust requires Windows 10, and Node 22 supports 8.1 only as experimental. This makes the installer refuse those systems in
.onInit, before any existing installation is removed, so an unsupported machine keeps its current PIME installation untouched.${IfNot} ${AtLeastWinVista}gate with${IfNot} ${AtLeastWin10}.AtLeastWinVista_MESSAGEtoAtLeastWin10_MESSAGEand retarget the English, Simplified Chinese and Traditional Chinese strings.vcruntime140.dll), so there is no runtime prerequisite to test.${AtLeastWin8}feature gates in thecheengsection and inhideSectionalone: they select optional components, not the support floor.Why not Windows 8.1
v2.0.0-beta4shipped as an emergency CVE release on Python 3.15.1 and Node 22.23.4. An 8.1 floor would undo that: Python 3.12's last Windows binary is 3.12.10 (2025-04-08) and pins OpenSSL 3.0, which reached end of life on 2026-09-07; Go 1.20 and Rust 1.77 would freeze too.Verification
makensis3.08 assemblesinstaller/installer.nsiin a scratch copy on Linux (Filedirectives made/nonfatalbecause the Windows build outputs are absent). This checks the script, the includes and the LogicLib block, not a shippable installer.${AtLeastWin10}exists in 3.08'sWinVer.nsh;installer.nsi:62usesRequestExecutionLevel admin, so NSIS's default manifest declares Windows 10 andWinVer.nshreports the real version.build-and-signjob in Windows CI.Design and decision by asdf80730. Implementation generated with AI assistance from omp (DeepSeek V4.1 Flash).