## What changed
- Add `VoiceHost` to resolve the packaged voice helper, launch it with an
allowlisted environment, perform the protocol handshake, and enforce bounded
shutdown and process cleanup.
- Preserve native executable path encoding in the pipe process APIs.
- Add `third_party/voice/assemble_package.py` to create a fresh package copy
containing a target-compatible helper and a provenance manifest with file
hashes.
## Testing
- Cover installed helper lifecycle, build matching, missing and symlinked
helpers, non-UTF-8 package paths, environment filtering, package validation,
target pairing, and failure cleanup.
GitOrigin-RevId: f893074b36ae6bb9bcedc00fbe7af6bb72745f4c
## Why
Windows builds combine Cygwin build tools with native MSVC outputs. On ARM64,
Cygwin can run under x64 emulation, so inferred host details and untranslated
paths can select the wrong target or leak POSIX paths into native metadata.
## What changed
- Convert libffi source, prefix, and shell paths with `cygpath`, preserve
`USERPROFILE`, and pass explicit build and host targets.
- Configure libffi's MSVC and libtool environment to produce and install its
shared library and import library, including across recursive make calls.
- Reject libffi pkg-config output containing `/cygdrive/` paths and enable
Opus NEON support for `aarch64-pc-windows-msvc`.
- Document the additional Windows build prerequisites.
## Testing
- Extend `test_build_native.py` with Windows path conversion, x64 and ARM64
target configuration, recursive make flag propagation, pkg-config, and Opus
coverage.
GitOrigin-RevId: 12eb4ff83e141aa069abd68af4839f06e4c45b8f
## Why
The pinned voice source inputs can be prepared but do not yet provide compiled
native libraries for downstream integration.
## What changed
- Add `build_native.py` to build a shared-library prefix for the supported voice
dependencies on native x64 and ARM64 GNU/Linux, macOS, and Windows MSVC hosts.
- Require explicit toolchain inputs, isolate dependency discovery to the output
prefix, and record command logs and build state for provenance and failures.
- Expose the recipe and source inputs through `//third_party/voice:build_inputs`
and document its prerequisites, outputs, and integration boundaries.
## Testing
- `PYTHONSAFEPATH=1 python3 -m unittest discover -s third_party/voice -p 'test_build_native.py'`
GitOrigin-RevId: 132d93561a8e1bb178518f1248cf87d031060aae
## What changed
- Pin the GStreamer, codec, native library, and build-tool archives needed by
the native voice runtime, including their SHA-256 digests.
- Add lazy Bazel repositories and a manual `//third_party/voice:sources` target
for fetching and unpacking the pinned archives.
- Add an offline Python adapter that verifies archive identity and extraction
bounds, refuses existing output directories, cleans up failed preparations,
and records a completion receipt.
- Document that this stage prepares source inputs only; it does not compile or
link the libraries or enable voice.
## Testing
- Add unit coverage for digest failures, unsafe links, expansion limits,
cleanup after extraction failures, existing-output preservation, and systems
where archive links cannot be created.
GitOrigin-RevId: 42a71d7b6b91d49b3954a40932033c44f9861f04