QwenVoice now has three maintained runtime stories:
- shared Apple-platform engine semantics in
QwenVoiceCore - macOS execution through the bundled XPC helper
- iPhone execution through the isolated engine extension process
Treat tracked surfaces in this repo as five classes:
- Repo-owned source:
Sources/, maintained docs, and active scripts underscripts/ - Product assets:
Sources/Assets.xcassets/and public docs images underdocs/ - Historical records:
docs/releases/ - Repo-owned vendored source:
third_party_patches/, where QwenVoice intentionally carries patched upstream code as maintained source
Local-only state includes build/, .worktrees/, DerivedData/, app-support data, generated screenshot diffs, Finder metadata, Python caches, coverage artifacts, and any temporary Sources/Resources/ffmpeg/ or Sources/Resources/vendor/ leftovers that appear during local experiments.
Sources/QwenVoiceCore/ is the shared engine boundary for:
- semantic request/result types
- platform-specific model variant resolution
- iPhone memory-pressure policy types
- engine-extension transport and IPC
- shared runtime helpers that do not belong to a specific UI process
Keep QwenVoiceCore free of UI-process assumptions so it can be hosted by both:
- the macOS XPC helper
- the iPhone engine extension
The shared MLX runtime stack still uses one repo-owned vendored package at:
third_party_patches/mlx-audio-swift/
That tree remains maintained source, not a generated runtime artifact.
The native package boundary currently includes:
- the local
MLXAudiopackage path inproject.yml - remote
MLXSwiftandSwiftHuggingFacepackage entries Package.resolvedpins for the package graph consumed by the macOS, iPhone, and shared-core targets
When the native backend package changes, keep the source tree, project.yml, and Package.resolved aligned, then regenerate the Xcode project before validating the build.
Maintained local packaging entrypoints:
scripts/release.shfor the macOS signed/notarized DMG pipelinescripts/create_dmg.shscripts/verify_release_bundle.shscripts/verify_packaged_dmg.shscripts/check_ios_catalog.shscripts/release_ios_testflight.sh
Maintained CI/release workflow surfaces:
.github/workflows/project-inputs.yml.github/workflows/apple-platform-validation.yml.github/workflows/macos-release.yml.github/workflows/ios-testflight.yml
scripts/check_project_inputs.shscripts/regenerate_project.sh./scripts/build_foundation_targets.sh macos./scripts/build_foundation_targets.sh iosxcodebuild -project QwenVoice.xcodeproj -scheme QwenVoice buildxcodebuild -project QwenVoice.xcodeproj -scheme VocelloiOS -destination 'generic/platform=iOS' CODE_SIGNING_ALLOWED=NO ONLY_ACTIVE_ARCH=YES build./scripts/check_ios_catalog.sh./scripts/release.sh./scripts/release_ios_testflight.sh
Visual and interaction verification still includes manual local passes after project-input checks and builds are green.