Skip to content

fix(vn): qualify macOS Tk/ImageTk and document interpreter migration - #253

Merged
Lucas1479 merged 3 commits into
mainfrom
codex/fix-223-macos-tk
Oct 21, 2026
Merged

Lucas1479 merged 3 commits into
mainfrom
codex/fix-223-macos-tk

Conversation

@Lucas1479

@Lucas1479 Lucas1479 commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Old uv-managed macOS Python builds can pass the package verifier but fail VN portrait startup at Tk initialization or Pillow ImageTk transfer. Document uv-managed CPython 3.12.14 and a reversible existing-.venv migration, and qualify the actual native image boundary in macOS CI.

  • Add a standalone, asset-free probe that creates/withdraws a Tk root, transfers a generated RGBA image through ImageTk, verifies dimensions/pixels/transparency, and destroys the root. Failures return nonzero with the failing stage and migration guidance.
  • Make the macOS voice/desktop job explicitly create its application environment with uv-managed 3.12.14, retaining setup-python only to bootstrap uv. Run the native probe against the current locked Pillow 13.0.0. Keep ordinary package/profile checks usable without a display.
  • Give both English and Chinese READMEs separate Windows/macOS environment-creation commands, with the macOS interpreter and existing-environment migration guidance before creation. Add the native-portrait-only graphical-session check to the macOS preflight checklist and document the probe in the maintenance tool index. Preserve the existing renderer and dependency lock.

Refs #223. Keep the issue open for the reporter's complete macOS VN Start acceptance; this PR does not close it automatically.

Validation:

  • 97 related tests passed with the existing development environment (UV_OFFLINE=1 python -X utf8 -m pytest -q tests/test_vn_portrait_environment.py tests/test_python_environment_verifier.py tests/test_profile_contract.py tests/test_core_install_tiers.py tests/test_vn_portrait_shared.py tests/test_vn_overlay_window_contract.py tests/test_vn_overlay_continuity.py).
  • Native probe passed on Windows AMD64 / CPython 3.12.10 / Tcl/Tk 8.6.15 with both Pillow 12.3.0 and 13.0.0; the six new diagnostic tests also passed in the isolated Pillow 13.0.0 environment.
  • Repository Ruff, architecture views, generated README overview, and diff whitespace checks passed.
  • macOS CI passed on fa27de77: Darwin arm64, uv-managed CPython 3.12.14 (Clang 22.1.3), Pillow 13.0.0, Tcl/Tk 9.0.4. The real native RGBA probe passed; 281 contract tests passed (2 skipped), and Electron build and model-less desktop smoke passed.
  • All 15 PR checks passed on fa27de77c23bce07766d4d679c564613bb8dd495, including the three complete Python-suite partitions, Windows source/packaged desktop smoke, Linux and macOS desktop checks, and all installation profiles. Full game/OCR/audio acceptance remains with VN portrait fails to start on macOS with uv-managed Python 3.12.10 #223.
  • Documentation-only follow-up b160d8ab: generated README overview and diff whitespace checks passed; both language entry points and the conditional preflight command were reviewed for consistency. Runtime, probe, tests and CI configuration are unchanged from the qualified commit above.
  • CI history for b160d8ab: the first Windows partition 2 run failed in the unchanged test_pi_cancel_cleanup.py error-publication case while decoding an empty finally.json. Three local runs of that file produced two complete passes, then a different permission-event startup timeout (8 passed / 1 failed overall); they did not reproduce the empty-JSON failure. No Pi code or assertions were changed. The single same-commit rerun passed the full partition, including all three Pi cancellation tests. All 15 checks are now successful on b160d8abb22fedfe788faded237efe721e700b78. The cause of the intermittent Pi integration-test results remains unestablished; this PR does not claim to fix it.

@Lucas1479
Lucas1479 merged commit 879a8fb into main Oct 21, 2026
19 of 21 checks passed
@Lucas1479
Lucas1479 deleted the codex/fix-223-macos-tk branch October 21, 2026 16:39
Lucas1479 added a commit that referenced this pull request Oct 21, 2026
…#250)

Preserve the full Japanese pronunciation source as an independently versioned optional resource with validated corrections, explicit runtime deferrals, and install/update/rollback support. Fix personal dictionary precedence and normalization, base-case handling, numeric-hyphen boundaries, and large personal-dictionary startup scaling.

Integrates main 879a8fb after #253 without conflicts; Japanese implementation remains identical to qualified 518475d. Validation: 154 related local tests and all 17 fresh CI checks passed on 3e06932. Prior four 26,552-record production profiles retain their evidence because the implementation is unchanged.

The full rc2 resource and data history remain local and unpublished; this code merge does not publish or install the optional resource.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant