Commit Graph
2823 Commits
Author SHA1 Message Date
Palash Debnath 9dc41252c1 Merge pull request #2174 from paranoyouz-collab/fix/kokoro-supported-language-list
fix(tts): name every Kokoro language from the installed table
2026-09-17 10:15:40 -07:00
Palash Debnath 082d7260d5 docs: credit Kokoro fix author alongside the bug reporter 2026-09-17 22:23:44 +05:30
Palash Debnath eed4632933 Merge remote-tracking branch 'origin/main' into fix/review-2174 2026-09-17 21:57:28 +05:30
Palash Debnath 1fd321d145 Merge pull request #2173 from shivsin25/fix/2163-gated-install-token
fix(setup): send the HF token when installing a gated model
2026-09-17 09:27:20 -07:00
Palash Debnath 2b6fd847ce fix(kokoro): accept every advertised installed language label 2026-09-17 21:52:05 +05:30
Palash Debnath 50a71fd176 Merge remote-tracking branch 'origin/main' into fix/review-2173 2026-09-17 21:32:02 +05:30
Palash Debnath 750e81bcf7 Merge pull request #2179 from debpalash/fix/runtime-validation-2176
fix(electron): validate reused runtimes before startup
2026-09-17 09:01:54 -07:00
Palash Debnath 8a7ab51784 fix(electron): isolate runtime probes and reuse healthy fallback 2026-09-17 21:06:12 +05:30
Palash Debnath 7ed58cb5b7 Merge remote-tracking branch 'origin/main' into fix/runtime-validation-2176
# Conflicts:
#	CHANGELOG.md
2026-09-17 20:42:36 +05:30
Palash Debnath 20f7329f59 Merge pull request #2172 from debpalash/fix/voice-conversion-capability-2147
fix(electron): check cloning capability before voice conversion
2026-09-17 08:12:07 -07:00
Palash Debnath c52441188e fix(electron): retain fresh custom runtime destinations 2026-09-17 20:36:10 +05:30
Palash Debnath 49f9fe3b06 docs: explain recovery from gated installer token failures 2026-09-17 20:31:30 +05:30
Palash Debnath f6d1e0c2df fix(kokoro): resolve the advertised British English label 2026-09-17 20:30:40 +05:30
Palash Debnath d217553e2e fix(electron): preserve unowned roots without project folders 2026-09-17 20:30:38 +05:30
Palash Debnath d6efb14849 fix(electron): preserve selected runtime ownership during repair 2026-09-17 20:23:05 +05:30
Palash Debnath 86c37c8d04 style: format engine retry guidance 2026-09-17 20:14:09 +05:30
Palash Debnath a4ffd5229b Merge remote-tracking branch 'origin/main' into fix/review-2174 2026-09-17 20:13:54 +05:30
Palash Debnath 4b3e998de3 test(setup): validate file lists and isolate token fixtures 2026-09-17 20:13:38 +05:30
Palash Debnath 8b2ec7ba51 Merge remote-tracking branch 'origin/main' into fix/voice-conversion-capability-2147
# Conflicts:
#	CHANGELOG.md
2026-09-17 20:13:37 +05:30
Palash Debnath af8810be53 fix(electron): offer retry when engine capability lookup fails 2026-09-17 20:13:18 +05:30
Palash Debnath 1ef42a6b21 Merge remote-tracking branch 'origin/main' into fix/review-2173 2026-09-17 20:12:15 +05:30
Palash Debnath 31baa43650 Merge remote-tracking branch 'origin/main' into fix/runtime-validation-2176
# Conflicts:
#	CHANGELOG.md
2026-09-17 20:12:01 +05:30
Palash Debnath 834b305c05 fix(electron): validate reused Python runtimes before startup 2026-09-17 20:11:38 +05:30
Palash Debnath 418b1b271d Merge pull request #2171 from debpalash/fix/signal-diagnostic-ci
test(lifecycle): handle both valid SIGKILL diagnostics
2026-09-17 07:41:16 -07:00
Claude 743f4918cb test(tts): document the Kokoro label tests
Raises docstring coverage on the changed files past the threshold the PR
check enforces; the reasoning each test carried in a leading comment now
lives where the checker and a reader both find it.
2026-09-17 11:43:08 +00:00
shivsin25 543f0f6f18 Merge branch 'main' into fix/2163-gated-install-token 2026-09-17 17:08:59 +05:30
paranoyouz-collab ec3e12cd6e fix(tts): name every Kokoro language from the installed table
resolve_kokoro_lang_code validates against mlx-audio's own LANG_CODES —
its docstring is explicit that the vendored table is the only source of
truth — but built the "Kokoro supports: …" list in the rejection message
from the hardcoded _KOKORO_ISO_BY_FULL_NAME instead.

That map exists to translate full names into Kokoro's codes, and it has
no entry that produces "b". British English is reachable as en-gb, and
the existing test asserts resolve("en-gb") == "b", yet the message never
mentioned it: the installed table lists nine languages and the message
named eight. Any language a later mlx-audio adds would be dropped the
same way, telling a user to switch engines when they need not.

Derives the labels from ALIASES and LANG_CODES instead, preferring the
full name a caller can actually pass and falling back to the table's own
description for codes no full name reaches.

The derivation takes the tables as arguments, so its tests run on every
platform. The resolution tests around it need the Apple-Silicon-only
package and skip on every CI runner, which is why a message drifting
from the table it documents went unnoticed.

Fixes #2156
2026-09-17 11:22:09 +00:00
Shivendra-CoherentandClaude Opus 5 37b498c891 fix(setup): send the HF token when installing a gated model
Installing a gated model failed the fast download path with "401
Unauthorized" even with a valid token and the licence accepted, then fell
back to snapshot_download and logged a 401 that reads like the token or
the licence grant is at fault when it is neither (#2163).

`token_resolver.resolve()` returns a ResolvedToken record, not the bearer
string. Two call sites handed that record straight to consumers typed
`token: str | None`, and both fail silently rather than loudly:

- `_segmented_snapshot` passes it to HfApi, get_hf_file_metadata and our
  own segmented_download. huggingface_hub's build_hf_headers ignores a
  non-str token and falls back to its own ambient discovery, so a token
  held only in VoiceStudio's Settings produces NO Authorization header
  and every gated file 401s. segmented_download instead interpolates it
  into `f"Bearer {token}"`, sending a malformed header that also inlines
  the raw secret into the request.
- `_step_fetch_weights` passes it to snapshot_download, so gated engine
  weights 401 the same way.

Every other resolve() caller already unwraps `.token`; these two were the
outliers. Both now unwrap once, at the seam.

The existing weights tests all stubbed resolve() to return None, so no
test ever exercised a resolved token — which is why this went unnoticed.
The new tests drive a real ResolvedToken through both seams and assert a
`str` reaches every consumer, plus an integration test that installs the
pyannote diarisation pipeline end to end: a weightless config_only repo
validates, both dependency repos are fetched, and every call carries the
bearer string.

Two catalogue invariants keep the rest of #2163 from returning by edit:
dependency repos must be revision-pinned (revision_for raises otherwise,
so an unpinned one ships an always-failing install), and a config_only
entry must declare config_required_files (without them the completeness
check can never pass and the error lists no files at all — the shape the
report hit on 0.5.2).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 16:50:16 +05:30
Palash Debnath e6e8f16f55 fix: guard voice conversion with active model cloning capability 2026-09-17 16:29:51 +05:30
Palash Debnath b1f900c996 test: accept startup and supervisor SIGKILL diagnostics 2026-09-17 16:28:42 +05:30
Palash Debnath a8581f899e Merge pull request #2170 from debpalash/fix/community-integration
fix(runtime): integrate reviewed engine, transcription, and import reliability fixes
2026-09-17 03:40:31 -07:00
Palash Debnath eda99113ec docs(dubbing): deduplicate merged stream guidance 2026-09-17 15:41:15 +05:30
Palash Debnath d2e2d6073a Merge branch 'fix/review-2138' into fix/community-integration
# Conflicts:
#	docs/dubbing/translation-engines.md
2026-09-17 15:40:36 +05:30
Palash Debnath 80a1f22175 Merge branch 'fix/review-2165' into fix/community-integration 2026-09-17 15:40:36 +05:30
Palash Debnath 0f13d49363 fix(dubbing): guard diarization lifetime and task stream delivery 2026-09-17 15:40:23 +05:30
Palash Debnath a5ebdebf5d test(worker): observe artifact cleanup completion directly 2026-09-17 15:39:56 +05:30
Palash Debnath fa745366ab Merge branch 'fix/review-2165' into fix/community-integration 2026-09-17 15:18:05 +05:30
Palash Debnath c1bc91fe5b test(worker): await acknowledged artifact cleanup 2026-09-17 15:17:57 +05:30
Palash Debnath 5b01b65d1e Merge branch 'fix/review-2107' into fix/community-integration 2026-09-17 15:14:01 +05:30
Palash Debnath fecde7fca5 fix(media): require successful tool version probes 2026-09-17 15:13:49 +05:30
Palash Debnath c7883c107c Merge branch 'fix/media-error-diagnostics' into fix/community-integration 2026-09-17 15:03:56 +05:30
Palash Debnath 17c0894a85 Merge branch 'fix/review-2073' into fix/community-integration 2026-09-17 15:03:56 +05:30
Palash Debnath 39cdd4b4db Merge branch 'fix/review-2106' into fix/community-integration 2026-09-17 15:03:56 +05:30
Palash Debnath 8d903eed8e Merge branch 'fix/review-2107' into fix/community-integration 2026-09-17 15:03:56 +05:30
Palash Debnath e477251b35 Merge branch 'fix/review-2138' into fix/community-integration 2026-09-17 15:03:56 +05:30
Palash Debnath 57501ef8ef Merge branch 'fix/review-2109' into fix/community-integration 2026-09-17 15:03:56 +05:30
Palash Debnath 8b1b1e9b51 Merge branch 'fix/review-2165' into fix/community-integration 2026-09-17 15:03:56 +05:30
Palash Debnath 863d304cd5 Merge branch 'fix/review-2083' into fix/community-integration 2026-09-17 15:03:56 +05:30
Palash Debnath 11b3b87b02 test(media): resolve diagnostics module at runtime 2026-09-17 15:03:30 +05:30
Palash Debnath 80e7de7e96 test(import): restore application state after text imports 2026-09-17 15:03:26 +05:30