100 Commits
Author SHA1 Message Date
Palash Debnath dcfddb6268 Merge pull request #2500 from debpalash/triage/cpu-arm
feat(setup): CPU-only torch for GPU-less hosts, float32 on CPU, Windows ARM64 packaging (#2365 #2436)
2026-10-01 22:35:42 +05:30
Palash Debnath 4e52f683f0 Merge remote-tracking branch 'origin/main' into chk/2500 2026-10-01 22:06:03 +05:30
Palash Debnath 008a68853c Merge pull request #2499 from debpalash/triage/backend-startup
fix(backend): slow-host startup, /health liveness, cold-load exclusion, VoxCPM2 bounds, actionable startup errors (#2394 #2430 #2440 #2445 #2462 #2465 #2490 #2491)
2026-10-01 21:52:05 +05:30
Palash Debnath fc0beb416b Merge pull request #2498 from debpalash/triage/clone-asr-llm
fix(clone): find Model Catalogue Whisper snapshots; reasoning strip, iFLYTEK provider, richer bug reports (#2442 #2428 #2420 #2421)
2026-10-01 21:51:45 +05:30
Palash Debnath 0d64c73a2c Merge pull request #2497 from debpalash/triage/text-media
fix(media): torchaudio 2.9 IO gate, ffmpeg guidance, subtitle/text/import correctness (#2378 #2404 #2405 #2434 #2449 #2450 #2469 #2471 #2473 #2475)
2026-10-01 21:51:24 +05:30
Palash Debnath 47f0afb081 Merge pull request #2496 from debpalash/triage/downloads-storage
fix(downloads): validated ranges/resume, atomic snapshots, portable filenames, disk-full guidance (#2376 #2451 #2452 #2453 #2479)
2026-10-01 21:51:04 +05:30
Palash Debnath bb98b2a135 Merge pull request #2495 from debpalash/triage/docs-misc
feat(docs): Prosody Mirror, Japanese README, license spec, Hermes/ChromeOS docs, port-bind diagnostics (#2417 #2418 #2432 #2447 #2460 #2464 #2438 #2398 #2375)
2026-10-01 21:50:44 +05:30
Palash Debnath 5b68aab6b9 Merge remote-tracking branch 'origin/triage/backend-startup' into triage/cpu-arm
# Conflicts:
#	electron/src/main/backend.ts
#	electron/src/main/runtime-project.ts
2026-10-01 21:26:07 +05:30
Palash Debnath cfb7939dc8 Merge remote-tracking branch 'origin/triage/clone-asr-llm' into triage/cpu-arm 2026-10-01 21:25:21 +05:30
Palash Debnath b264cb76f9 Merge remote-tracking branch 'origin/triage/text-media' into triage/cpu-arm 2026-10-01 21:25:21 +05:30
Palash Debnath 84d25357a1 Merge remote-tracking branch 'origin/triage/downloads-storage' into triage/cpu-arm 2026-10-01 21:25:19 +05:30
Palash Debnath ac4c2a0eb2 Merge remote-tracking branch 'origin/triage/docs-misc' into triage/cpu-arm
# Conflicts:
#	docs/install/linux.md
2026-10-01 21:25:19 +05:30
Palash Debnath 4e0575cc6c Merge pull request #2494 from debpalash/triage/data-integrity
fix(data): delete-after-commit ordering, library filter, resume plan, cache index (#2477 #2480 #2481 #2482 #2483)
2026-10-01 21:23:47 +05:30
Palash DebnathandClaude Sonnet 5.5 05a6118f01 fix: address PR #2500 review findings
CPU preset leads with Whisper small; CLIs and loaders share omnivoice.utils.dtype
(honours OMNIVOICE_CPU_DTYPE, no import cycle); the Windows-on-ARM notice and the
disk-space message are localized (setup_space takes {{gib}}: 5 for CPU installs, 9
otherwise); ARM64 payloads without a manifest fail the release check; Windows on
ARM is labelled experimental; test imports resolve at run time.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 20:52:57 +05:30
Palash DebnathandClaude Sonnet 5.5 3697ba7b10 fix(review): address bot findings on #2497
NOTE blocks stay non-speech in frontend and backend VTT parsing; audio_info
keeps declared sizes for float WAV and restores stream position; ffmpeg shim
uses absolute targets, byte-verified copies, PATH priority, no path logging;
transcription guidance is localized through failure codes in all 21 locales.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 20:52:38 +05:30
Palash DebnathandClaude Sonnet 5.5 723fb9ae57 Address review findings on #2496: owner-aware reservation pruning, per-process disk-full diagnosis, post-truncation device names, unreadable .venv, quota errnos
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 20:52:03 +05:30
Palash DebnathandClaude Sonnet 5.5 422e2e3c76 fix(review): PR #2499 bot findings - queued-load abandonment, output redaction, WinError 8, heartbeat credit
- model_manager: queued callers wait in short slices and re-check abandonment
- backend.ts/backend-gate: scrub child output (tokens, home paths) at source and at agent hand-off
- failure/error_journal: recognise OSError.winerror == 8 and [WinError 8] without English text
- subprocess_backend: generating heartbeats re-arm recv only, not model-load grace
- tests: event-based sync for voxcpm2 heartbeat test

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 20:51:28 +05:30
Palash DebnathandClaude Sonnet 5.5 97e839a7fe fix(profiles): keep lock/consent audio and rows consistent under failure and races
Install staged audio with a restorable backup before committing its row,
restore on any failure, serialize lock/unlock/consent file swaps, name the
FileNotFoundError skip (CodeQL), and drop the real-timer race in the offline
delete test.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 20:50:51 +05:30
Palash DebnathandClaude Sonnet 5.5 b2ab6e10bb fix: address bot review on #2498 (complete-snapshot check, last SAY boundary, quoted-tag count)
Require tokenizer, feature-extractor settings and all weight shards before a
cached Whisper snapshot is used, including the first main-ref hit; speak the
last line-start SAY: of unclosed reasoning; keep quoted closing tags without
disabling reasoning removal when the source also contains the tag.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 20:50:32 +05:30
Palash DebnathandClaude Sonnet 5.5 f754a9b2a7 fix: address review findings on #2495 (phase-cancelling stereo, mirrored directions in translate, cancelled Mirror, docs, test imports)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 20:50:31 +05:30
Palash DebnathandClaude Sonnet 5.5 47b622e711 test(dub): patch the audio_io torchaudio seam instead of removed dub_generate.torchaudio
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 19:18:14 +05:30
Palash DebnathandClaude Sonnet 5.5 db4043a5d2 fix(profiles): widen deletion-confirmation query key so electron typecheck passes
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 19:17:41 +05:30
Palash DebnathandClaude Sonnet 5.5 97ee973c61 feat(ci): package Windows on ARM64 (native shell, x64 Python runtime)
Adds a windows-11-arm leg to the packaging rehearsal and the release matrix
(experimental: a failed leg does not block the four established targets; the
release-asset check verifies the arm64 feed in full whenever any trace of it is
published). install.ps1 installs the native ARM64 build and falls back to x64
under emulation. README and the Windows/script docs gain a hardware table, CPU-only
and Windows-on-ARM guidance, and the external-drive recipe for #2436.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 19:06:04 +05:30
Palash DebnathandClaude Sonnet 5.5 f6792057a7 fix(tts): load the TTS model in float32 on CPU-only hosts
OmniVoice was always loaded as float16, which has no fast CPU GEMM (and is
unimplemented for some kernels), so a host without a GPU loaded the model and
then crawled. The dtype now follows the device (float16 on cuda/xpu/mps/DirectML,
float32 on cpu; OMNIVOICE_CPU_DTYPE=bfloat16 opt-in) in the in-process loader, the
sidecar and the CLIs. Setup also explains CPU-only and Windows-on-ARM hosts,
and the CPU preset curates the small Whisper model.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 19:05:34 +05:30
Palash DebnathandClaude Sonnet 5.5 4034af12b9 fix(runtime): install CPU PyTorch on hosts without an NVIDIA driver
The lock pins the +cu128 build for every Linux/Windows x64 host, so a laptop
with integrated graphics downloaded several GB of CUDA wheels (plus ~3 GB of
nvidia-* packages on Linux) it can never use, and needed 9 GiB free. Setup now
picks the torch flavour from the host (OMNIVOICE_TORCH_VARIANT=auto|cuda|cpu|rocm):
no NVIDIA driver -> frozen sync without torch/nvidia-*, then the +cpu pins. Existing
CUDA environments stay valid on inferred-CPU hosts; a CPU environment is reinstalled
when a driver later appears. Windows on ARM requests the emulated x64 interpreter
(no win_arm64 torchaudio/torchvision wheels exist) with CPU torch.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 19:05:34 +05:30
Palash DebnathandClaude Sonnet 5.5 3dccef1b0f chore: leave CHANGELOG.md to the maintainer (entries returned separately)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:58:55 +05:30
Palash DebnathandClaude Sonnet 5.5 f50de4f9dd feat(backend-gate): localized, actionable hints for blocked launch, slow start and synced folders (#2440, #2445, #2465)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:58:50 +05:30
Palash DebnathandClaude Sonnet 5.5 0d53bd6e46 fix(backend): stop declaring slow hosts failed - probe ceiling, small-host budget, output-aware wait (#2445, #2465)
The pre-launch import probe killed at 30 s and treated a timeout as a broken
runtime (false setup_required / 'environment incomplete' on slow disks and
scanner-contended hosts). It now gets 180 s and a pure timeout is inconclusive.
The default startup budget doubles on small hosts and a backend that is still
printing extends the wait (capped at 3 budgets).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:58:48 +05:30
Palash DebnathandClaude Sonnet 5.5 fe71ce5c56 fix(backend): answer /health on the event loop with a cached device label (#2490, #2491)
The liveness probe was a sync route that imported torch and queried the CUDA
driver on every probe from the shared worker pool, so a busy but healthy
backend missed its 1.5 s deadline and was reported as unresponsive.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:58:48 +05:30
Palash DebnathandClaude Sonnet 5.5 939ec45662 fix(clone): find the installed Whisper the Model Catalogue leaves at a pinned commit (#2442)
snapshot_download(repo, local_files_only=True) only resolves the main ref, which
catalogue installs never write, so cloning reported an installed speech-to-text
model as missing. The model fallback now also tries every cached snapshot of the
configured PyTorch Whisper, large-v3-turbo and large-v3, skipping truncated
ones. Adds end-to-end resolution tests (short, long, supplied, no ASR).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:52:57 +05:30
Palash DebnathandClaude Sonnet 5.5 1a30c3abb0 fix(dub): actionable transcription errors for missing ffmpeg and broken pipe (#2404, #2405)
Classify private per-chunk ASR exceptions into fixed public replies, raise a
typed MediaToolUnavailableError from the validated decoder, and expose the
resolved ffmpeg under the bare name so dependencies that exec 'ffmpeg' find
imageio-ffmpeg's renamed binary on every platform.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:52:07 +05:30
Palash DebnathandClaude Sonnet 5.5 e240580ccc fix(audio): read headers and write sandbox audio without TorchCodec (#2378)
torchaudio 2.9 removed info() and routes load/save through TorchCodec. Add
audio_io.audio_info (header-declared WAV values, soundfile fallback), move the
dub cache checks and gpu_sandbox onto the audio_io helpers, and gate the whole
class with an AST test.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:52:07 +05:30
Palash DebnathandClaude Sonnet 5.5 5c16e24ab8 Fail fast with actionable errors on full disks; retry first-run uv installer download
- model/engine installs: disk-full is non-retryable, names free space and cache, docs_topic DISK_SPACE_LOW; sidecar uv/weights steps stop blaming the network
- Electron runtime bootstrap: bounded retry for transient installer download failures

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:50:32 +05:30
Palash DebnathandClaude Sonnet 5.5 4eb3c8a5a6 docs(install): ChromeOS, iPad and browser-only devices (#2438, #2398)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:49:48 +05:30
Palash DebnathandClaude Sonnet 5.5 5d6078e3b6 test(audio-quality): cover on-demand warnings service and route (#2375)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:49:09 +05:30
Palash DebnathandClaude Sonnet 5.5 245ba3b8f2 fix(report): scrub the active ASR engine id before it enters a bug report (#2433 review)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:47:41 +05:30
Palash DebnathandClaude Sonnet 5.5 d18c2cea4c fix(backend): explain permission-denied (reserved) port binds instead of a bare exit code (#2460); document Hermes Agent MCP setup (#2464)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:47:38 +05:30
Palash DebnathandClaude Sonnet 5.5 8768f7803c fix(voxcpm2): heartbeat while generating, keep requested steps, bound max_len generously (#2435)
Review findings on #2435: the 180 s recv deadline killed valid CPU/slow-GPU
renders (no frames during generate) and the 30-step clamp silently reduced
the 32/64-step quality presets.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:47:26 +05:30
Palash Debnath 5383d10403 Merge PR #2433 (bug report arch + ASR engine) 2026-10-01 18:47:25 +05:30
Palash Debnath 07c503a5cf Merge PR #2426 (iFLYTEK Astron MaaS provider) 2026-10-01 18:46:36 +05:30
Palash DebnathandClaude Sonnet 5.5 529b4ca922 Make title-derived export/download filenames portable (Windows Errno 22 class, #2376)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:45:56 +05:30
Palash Debnath cc1858f74b Merge branch 'pr2435' into triage/backend-startup 2026-10-01 18:45:56 +05:30
Palash Debnath c44d5f98b1 Merge PR #2425 (strip prefilled reasoning) 2026-10-01 18:45:47 +05:30
Palash Debnath c13eaea9cb Merge branch 'pr2439' into triage/backend-startup
# Conflicts:
#	CHANGELOG.md
2026-10-01 18:45:45 +05:30
Palash DebnathandClaude Sonnet 5.5 217c204d39 fix(call-agent): fix the closing-tag boundary once found so quoted tags cannot re-slice streamed speech (#2431 review)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:45:40 +05:30
Palash Debnath d472f67a97 Merge branch 'pr2448' into triage/backend-startup
# Conflicts:
#	CHANGELOG.md
#	electron/src/main/backend.ts
2026-10-01 18:45:40 +05:30
Palash DebnathandClaude Sonnet 5.5 37cd8fd06b fix(data): remove history/lock/consent files only after their DB change commits
Same class as #2483: clear/delete/prune history and unlock unlinked audio
before the transaction committed; consent re-record deleted the previous
recording first; lock copied over the live locked take in place. Stage files
and swap/unlink after commit.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:45:35 +05:30
Palash DebnathandClaude Sonnet 5.5 e9319327b8 chore: leave CHANGELOG.md to the owner (entries returned in triage report)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:45:16 +05:30
Palash Debnath 8eddae1784 Merge commit 'refs/pull/2431/head' of github.com:debpalash/VoiceStudio into triage/clone-asr-llm 2026-10-01 18:44:51 +05:30
Palash DebnathandClaude Sonnet 5.5 7ab73378a1 Merge PR #2429: keep end-of-buffer clone preview loops within audio
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:44:43 +05:30
Palash DebnathandClaude Sonnet 5.5 d5f6fb2f02 chore(backend): drop duplicated comment block from startup-budget merge (#2445)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:44:40 +05:30
Palash DebnathandClaude Sonnet 5.5 6c99e18da3 Merge PR #2459: serialize MCP structured responses as JSON
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:44:34 +05:30
Palash Debnath ad99a705da Merge branch 'pr2461' into triage/backend-startup
# Conflicts:
#	CHANGELOG.md
2026-10-01 18:44:24 +05:30
Palash DebnathandClaude Sonnet 5.5 8070a81543 Merge PR #2422: interpret short subtitle timestamp fields as milliseconds
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:44:16 +05:30
Palash DebnathandClaude Sonnet 5.5 b3945a09bb Merge PR #2437: keep a WebVTT cue whose identifier is a metadata word (#2434)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:44:09 +05:30
Palash Debnath 64ae9c2244 Merge branch 'pr2466' into triage/backend-startup 2026-10-01 18:43:56 +05:30
Palash DebnathandClaude Sonnet 5.5 e59bb040ee fix(model): tie abandoned-load verdict to the timed-out worker and clear it when the loader exits (#2394)
Review findings on #2467: a late-failing abandoned load left _load_abandoned set;
a queued caller's timeout could brand another caller's live load as stuck; the
warm-path test had no assertions.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:43:56 +05:30
Palash Debnath c670fb6d3b Merge branch 'pr2417' into triage/docs-misc 2026-10-01 18:43:51 +05:30
Palash DebnathandClaude Sonnet 5.5 d3d0b76c8a docs: list README_JA in project structure
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:43:51 +05:30
Palash Debnath 328223e872 Merge branch 'pr2418' into triage/docs-misc 2026-10-01 18:43:38 +05:30
Palash Debnath 7c2a8f38c4 Merge branch 'pr2447' into triage/docs-misc 2026-10-01 18:43:29 +05:30
Palash DebnathandClaude Sonnet 5.5 f54d111895 docs(licensing): bind certificate to installation and persist a time floor (review findings on #2432)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:43:29 +05:30
Palash DebnathandClaude Sonnet 5.5 25719af27b Merge PR #2454: resolve percent-encoded EPUB member references (#2449)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:43:27 +05:30
Palash DebnathandClaude Sonnet 5.5 bd59e34830 Merge PR #2455: bind Unicode pronunciation matches to their lexicon entry (#2450)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:43:19 +05:30
Palash Debnath f706cffcca Merge branch 'pr2432' into triage/docs-misc 2026-10-01 18:43:14 +05:30
Palash DebnathandClaude Sonnet 5.5 acef6f807b Merge PR #2470: preserve literal sentence markers in user text (#2469)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:43:09 +05:30
Palash DebnathandClaude Sonnet 5.5 ebeb7d1d6e Merge PR #2472: retain known speakers when cleaning short answers (#2471)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:42:57 +05:30
Palash DebnathandClaude Sonnet 5.5 e63ecdd438 Merge PR #2474: update fallback process exit status after wait (#2473)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:42:46 +05:30
Palash DebnathandClaude Sonnet 5.5 5ce7390c4b Prune abandoned snapshot reservations so crashed writers don't leave markers forever
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:42:45 +05:30
Palash Debnath b00147a756 Merge branch 'pr2467' into triage/backend-startup 2026-10-01 18:42:41 +05:30
Palash DebnathandClaude Sonnet 5.5 ff3c3993d1 Merge PR #2476: preserve ambiguous specialized number tokens (#2475)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:42:34 +05:30
Palash Debnath 2a72aab5fc Merge PR #2484: account for partial sidecar installations 2026-10-01 18:41:57 +05:30
Palash Debnath 41cd7fe241 Merge PR #2458: reserve migration snapshot counters atomically 2026-10-01 18:41:53 +05:30
Palash DebnathandClaude Sonnet 5.5 9338e15d40 Merge PR #2457: validate partial files before trusting resume records
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:41:53 +05:30
Palash Debnath aab3563e71 Drop PR-added CHANGELOG entries (maintainer writes the release notes) 2026-10-01 18:41:50 +05:30
Palash Debnath 302ebd26c5 Merge PR #2488: commit profile deletion before removing assets 2026-10-01 18:41:48 +05:30
Palash Debnath 14630f63a1 Merge PR #2487: preserve cache bookkeeping during pruning 2026-10-01 18:41:48 +05:30
Palash Debnath b695ba8425 Merge PR #2486: retain resume checkpoint until replacement is saved 2026-10-01 18:41:45 +05:30
Palash DebnathandClaude Sonnet 5.5 ef42fd2630 Merge PR #2463 (duplicate of #2456; keep single range-validation implementation)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 18:41:43 +05:30
Palash Debnath 00c078f2ef Merge PR #2485: filter finished job types before limiting 2026-10-01 18:41:39 +05:30
Palash Debnath 5610a26f9f Merge PR #2456: validate HTTP range responses in segmented downloads 2026-10-01 18:41:35 +05:30
Palash Debnath a103104113 Merge PR #2478: reject incomplete float WAV references 2026-10-01 18:41:30 +05:30
Palash Debnath 0834c8be28 feat(studio): consolidate community fixes and composer UI (#2419)
Consolidate community engine, workflow, dictation, and setup fixes with the Electron composer, sidebar, and voice UI.

Fix review findings in engine residency, remote exports, backup cleanup, bounded compressed-audio decoding, and reference preprocessing. Preserve contributor credits in CHANGELOG.md and leave the app version unchanged.

Supersedes #2325, #2338, #2368, #2377, #2379, #2380, #2383, #2384, #2387, #2390, #2391, #2392, #2393, #2395, #2400, #2401, #2402, #2409, #2410, and #2412.
2026-09-29 21:15:25 +05:30
Palash Debnath eef0e2304b Merge pull request #2407 from debpalash/feat/workspace-polish
Complete voice quality, model-aware languages and workspace integrations
2026-09-29 06:28:38 +05:30
Palash Debnath 96134bbe36 Merge branch 'codex/llm-provider-connections' into feat/workspace-polish 2026-09-28 17:30:15 -07:00
Palash Debnath a48e2591ed Refresh SDK connection pools when network settings change 2026-09-28 17:30:10 -07:00
Palash Debnath 5a1dff1e75 Merge branch 'codex/llm-provider-connections' into feat/workspace-polish 2026-09-28 17:23:13 -07:00
Palash Debnath 7088f2fe42 Preserve remote SDK proxies while routing loopback directly 2026-09-28 17:23:09 -07:00
Palash Debnath b9a0c17f19 Merge branch 'codex/llm-provider-connections' into feat/workspace-polish 2026-09-28 17:17:37 -07:00
Palash Debnath 09382bbbec Keep SDK loopback requests direct and disable shared cookies 2026-09-28 17:17:33 -07:00
Palash Debnath 1d115dc4c1 Keep crash repair ready until a source checkout is attached 2026-09-28 17:14:06 -07:00
Palash Debnath 51b0e524f4 Merge branch 'codex/llm-provider-connections' into feat/workspace-polish 2026-09-28 17:06:17 -07:00
Palash Debnath be8938fb07 fix: route crash repair to source and restore translated agent prompts 2026-09-28 17:06:17 -07:00
Palash Debnath ff0b720413 fix: distinguish unknown providers and assert transport failure causes 2026-09-28 17:05:23 -07:00
Palash Debnath cdd8552b8b test: preserve React Query exports in the integrated Home fixture 2026-09-28 16:49:01 -07:00
Palash Debnath 81c24fb3f5 test: align Home contract with the requested open-source heading 2026-09-28 16:33:30 -07:00
Palash Debnath f37c938525 Merge branch 'fix/dub-corrupt-source' into feat/workspace-polish 2026-09-28 16:21:22 -07:00
Palash Debnath 0f0776ee73 Merge branch 'docs/audio-quality-handoff' into feat/workspace-polish 2026-09-28 16:21:22 -07:00
Palash Debnath b1814197d7 fix: finish cancelled uploads safely and isolate regression fixtures 2026-09-28 16:21:17 -07:00
Palash Debnath 9f2225ebf8 fix: reserve unique take filenames before writing or cleanup 2026-09-28 16:19:17 -07:00