Skip to content

fix(build): isolate AEC source writes and preserve binding consistency - #249

Merged
Lucas1479 merged 5 commits into
mainfrom
codex/fix-247-aec-source-build
Oct 21, 2026
Merged

Lucas1479 merged 5 commits into
mainfrom
codex/fix-247-aec-source-build

Conversation

@Lucas1479

@Lucas1479 Lucas1479 commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

Cold Linux Voice builds wrote Meson/setuptools output into the vendored source and could mix regenerated SWIG wrappers with older packaged Python proxies. Git updates can preserve those local binding changes.

Run setuptools hooks inside a disposable source copy, excluding prior build/install artifacts. Compile the committed wrapper/proxies after checking all three version headers before native work. Decode SWIG's decimal digit pairs correctly, including multi-digit version components, and fail with backup/restore guidance on mismatched or unreadable inputs. No user files are restored or deleted automatically. Preserve the Linux-only source selector and actual bundled Abseil 20240722.0 verification.

The qualifier requires Python 3.12 and uses the running interpreter for the locked install, both distribution builds, and an isolated wheel environment. Remove inherited RUST_LOG only from child environments so uv's verbose build evidence remains available. Linux CI deliberately sets RUST_LOG=warn while checking cold builds, source cleanliness, sdist/wheel contents, and the installed public native API. Provenance and upgrade documentation include the complete verified upstream patch and legacy-checkout cleanup steps.

Refs #247. The reporter completed the original Arch/system-Abseil-20260817 acceptance at 94b584c, including an independent clean-source/cache/environment retest: #247 (comment). The remaining log-filter issue from that report is addressed here. The maintainer will close #247 after merge.

Validation:

  • 207 combined AEC/profile/release, Electron smoke/launcher and Qwen packaging tests passed in a dedicated Python 3.12.10 environment after integrating main through fix(deps): qualify Pillow 13 with headless Qwen inference packaging #252. Four regression cases failed before the decimal-version/log-environment corrections and pass afterward; missing-evidence rejection remains enforced.
  • The previously added dirty-upgrade regression fails before the binding guard and passes after it. A real PEP 517 negative build also confirms that rejection occurs before native work without modifying source inputs.
  • The complete patch reproduces the modifications from the SHA256-verified official PyPI archive. Generated bindings are unchanged. Ruff, provenance and diff checks passed.
  • On integrated head dca7904c, all 16 checks across all six applicable workflows passed. The environment verifier reports all 110 core/dev packages compatible, and the existing-rule pip-audit reports no known vulnerabilities (the two existing ignored advisory aliases are unchanged).
  • Linux Voice CI passed the cold-build qualifier with inherited RUST_LOG=warn, two actual bundled-Abseil 20240722.0 confirmations, standalone wheel/native smoke, source cleanliness, and 242 contract tests. Linux/macOS Electron smoke each passed all 15 checks; Windows source and packaged smoke both passed with Startup mode saving verified. Windows full suites, the installation matrix, and source release passed. The reporter's Arch evidence remains specifically attributed to 94b584c; this is not a claim of audio-device or acoustic-quality testing.

The independent dependency update #252 is merged into main and incorporated here. These results are for the integrated head dca7904c against main 1d9e88df, rather than checks from an earlier revision.

No runtime dependency upgrade or Windows/macOS registry-source change. SWIG's version encoding is documented at https://www.swig.org/Doc4.4/Preprocessor.html.

@Lucas1479
Lucas1479 marked this pull request as ready for review October 20, 2026 15:05
@Lucas1479
Lucas1479 marked this pull request as draft October 20, 2026 15:31
@Lucas1479
Lucas1479 marked this pull request as ready for review October 20, 2026 15:47
@Lucas1479
Lucas1479 merged commit 8de4c95 into main Oct 21, 2026
16 checks passed
@Lucas1479
Lucas1479 deleted the codex/fix-247-aec-source-build branch October 21, 2026 14:17
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.

build(voice): avoid mutating vendored AEC sources during locked Linux installation

1 participant