Skip to content

Beta to master#19457

Merged
seanbudd merged 5 commits into
masterfrom
beta
Jan 18, 2026
Merged

Beta to master#19457
seanbudd merged 5 commits into
masterfrom
beta

Conversation

@seanbudd
Copy link
Copy Markdown
Member

No description provided.

actions-user and others added 5 commits January 13, 2026 04:48
…it to the 32 bit runtime (#19436)

### Link to issue number:
<!-- Use Closes/Fixes/Resolves #xxx to link this PR to the issue it is
responding to. -->
Reverts #19290

### Summary of the issue:
with the move to 64 bit, sapi4 became unusable as it only functions in a
32 bit process. PR #19290 was merged which removes sapi4. However, pr
#19432 is adding the infrastructure to run sapi4 within a 32 bit
runtime. Thus the original sapi4 should be tempoararily added back so
that pr #19432 can move it into its 32 bit location.
 
### Description of user facing changes:
None.

### Description of developer facing changes:

### Description of development approach:
This is a clean revert of pr #19290 (with only a conflict in changes.md
which was addressed).

### Testing strategy:
None - clean revert.

### Known issues with pull request:
None known.

### Code Review Checklist:

<!--
This checklist is a reminder of things commonly forgotten in a new PR.
Authors, please do a self-review of this pull-request.
Check items to confirm you have thought about the relevance of the item.
Where items are missing (eg unit / system tests), please explain in the
PR.
To check an item `- [ ]` becomes `- [x]`, note spacing.
You can also check the checkboxes after the PR is created.
A detailed explanation of this checklist is available here:

https://github.com/nvaccess/nvda/blob/master/projectDocs/dev/githubPullRequestTemplateExplanationAndExamples.md#code-review-checklist
-->

- [x] Documentation:
  - Change log entry
  - User Documentation
  - Developer / Technical Documentation
  - Context sensitive help for GUI changes
- [x] Testing:
  - Unit tests
  - System (end to end) tests
  - Manual testing
- [x] UX of all users considered:
  - Speech
  - Braille
  - Low Vision
  - Different web browsers
  - Localization in other languages / culture than English
- [x] API is compatible with existing add-ons.
- [x] Security precautions taken.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
### Summary of the issue:
Adding new languages to NVDA from Crowdin causes pre-commit to fail, as
it commits large xliff files.
Failed job:
https://github.com/nvaccess/nvda/actions/runs/20842477976/job/59879416174

### Description of user facing changes:
None
### Description of developer facing changes:
We can add new languages to NVDA via Crowdin
### Description of development approach:
update pre-commit
### Testing strategy:

Tested trying to commit a large xliff file locally

### Known issues with pull request:
n/a
@seanbudd seanbudd requested review from a team as code owners January 18, 2026 23:15
@seanbudd seanbudd merged commit c258ad5 into master Jan 18, 2026
22 of 24 checks passed
@github-actions github-actions Bot added this to the 2026.2 milestone Jan 18, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request merges changes from the beta branch to the master branch. The primary focus is the restoration of SAPI 4 (Microsoft Speech API version 4) support, which was previously removed. The PR also includes package dependency updates, MathCAT UI text improvements, and minor build configuration updates.

Changes:

  • Restored SAPI 4 synthesizer support with a complete implementation including WASAPI integration
  • Updated several Python package dependencies (filelock, identify, nodejs-wheel-binaries, tomli, virtualenv)
  • Improved MathCAT localization strings to use "Automatic" instead of "Auto" for consistency
  • Added pre-commit configuration to handle XLIFF files as large files

Reviewed changes

Copilot reviewed 10 out of 12 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
uv.lock Updated package versions for filelock, identify, nodejs-wheel-binaries, tomli, and virtualenv
user_docs/en/userGuide.md Added documentation for SAPI 4 synthesizer and WASAPI configuration option
user_docs/en/changes.md Removed mentions of SAPI 4 being removed (since it's being restored)
source/synthDrivers/sapi4.py New complete SAPI 4 driver implementation with threading, COM support, and WASAPI integration
source/synthDrivers/_sapi4.py New SAPI 4 COM interface definitions
source/mathPres/MathCAT/preferences.py Changed "Auto" to "Automatic" in decimal separator option
source/mathPres/MathCAT/localization.py Changed "Use Voice's Language (Auto)" to "Automatic (Use Voice's Language)"
source/gui/settingsDialogs.py Added UI control for WASAPI for SAPI 4 configuration option
source/config/configSpec.py Added configuration schema for useWASAPIForSAPI4 feature flag
projectDocs/design/synthesizers.md New documentation for SAPI 4 testing and setup
.pre-commit-config.yaml Added XLIFF file extension to large file exclusions

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

try:
self._ttsEngines.Next(1, byref(mode), byref(fetched))
except: # noqa: E722
log.error("can't get next engine", exc_info=True)
Copy link

Copilot AI Jan 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The error message "can't get next engine" should be capitalized to match standard error message formatting. It should be "Can't get next engine" or preferably "Cannot get next engine".

Suggested change
log.error("can't get next engine", exc_info=True)
log.error("Cannot get next engine", exc_info=True)

Copilot uses AI. Check for mistakes.
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.

5 participants