2842 Commits
Author SHA1 Message Date
Palash Debnath b67aed2794 Resolve GPU stability review privacy, localization and test isolation findings 2026-09-17 01:40:58 +05:30
Palash Debnath 8804ddac9a Own telemetry probes through shutdown and localize Electron metrics 2026-09-17 01:40:58 +05:30
Palash Debnath 2faaafa9fc Merge remote-tracking branch 'origin/main' into review/gpu-2149 2026-09-17 01:39:08 +05:30
Palash Debnath 002601072e Merge branch 'review/readme-2153' into fix/linux-electron-setup-sidebar
# Conflicts:
#	CHANGELOG.md
2026-09-17 01:36:38 +05:30
Palash Debnath 3709517bf6 Credit the README transition contribution 2026-09-17 01:36:22 +05:30
Palash Debnath 8b5b44d5ea Validate manual Tauri draft assets without premature publication 2026-09-17 01:34:52 +05:30
Palash Debnath 016670c6ad Scope legacy launcher checks to Tauri and protect Electron backend reuse 2026-09-17 01:33:33 +05:30
Palash Debnath 39d66d5299 Prepare v0.5.3 for Electron and the final Tauri update 2026-09-17 01:30:17 +05:30
Palash Debnath 18e54e2352 Sequence the Electron transition after the final Tauri draft 2026-09-17 01:29:01 +05:30
Palash Debnath 1616f9dcab Verify compact README catalogs remain linked and complete 2026-09-17 01:24:47 +05:30
Palash Debnath 623d00eebf Document the integrated Electron transition and CI repairs 2026-09-17 01:24:31 +05:30
Palash Debnath 867cd3c4ac Merge branch 'fix/dubbing-demo-editor' into fix/linux-electron-setup-sidebar 2026-09-17 01:23:57 +05:30
Palash Debnath 0a556e78ba Cover pause and sample-switch playhead continuity 2026-09-17 01:23:53 +05:30
velixio 719ef8a698 fix(workers): harden remote telemetry 2026-09-17 01:23:37 +05:30
Palash Debnath d3f2d06a26 Merge branch 'fix/macos-sidebar-titlebar' into fix/linux-electron-setup-sidebar 2026-09-17 01:22:42 +05:30
Palash Debnath cab5766d28 Merge branch 'review/readme-2153' into fix/linux-electron-setup-sidebar
# Conflicts:
#	README.md
2026-09-17 01:22:42 +05:30
Palash Debnath 7098c3f809 Test offline notification state without hiding desktop updates 2026-09-17 01:22:23 +05:30
Palash Debnath ba954645b3 Clarify Electron transition without blocking desktop contributions 2026-09-17 01:22:06 +05:30
Palash Debnath 9af0fcbd89 Merge branch 'fix/macos-sidebar-titlebar' into fix/linux-electron-setup-sidebar
# Conflicts:
#	CHANGELOG.md
2026-09-17 01:21:38 +05:30
Palash Debnath fc2d94d266 Merge main and resolve sidebar and disabled notification review findings 2026-09-17 01:21:27 +05:30
Palash Debnath a06ef166aa Merge branch 'fix/dubbing-demo-editor' into fix/linux-electron-setup-sidebar
# Conflicts:
#	CHANGELOG.md
2026-09-17 01:21:27 +05:30
Palash Debnath 1f978ef3ee Merge main and preserve A/B playback position when switching samples 2026-09-17 01:20:22 +05:30
Palash Debnath 853331f3ec Merge branch 'feat/tauri-native-parity' into fix/linux-electron-setup-sidebar
# Conflicts:
#	frontend/src-tauri/src/watch_folder_core.rs
#	frontend/src-tauri/src/wayland_shortcut_core.rs
2026-09-17 01:19:59 +05:30
Palash Debnath fe35bf6737 Merge main and resolve native bridge review findings 2026-09-17 01:19:40 +05:30
Palash Debnath 22637a7954 Align CI fixtures with safe dubbing and compact Electron documentation 2026-09-17 01:18:48 +05:30
Palash Debnath 2b0e43da05 Refresh and brand VoiceStudio installable agent skills 2026-09-17 01:10:37 +05:30
velixio 10d086359c feat(workers): show remote telemetry 2026-09-17 01:08:38 +05:30
LMG XENON be1be89a69 Merge branch 'main' into fix/apple-silicon-metal-docs-ci-2105 2026-09-16 19:36:08 +01:00
LMG XENON 15ef5da87d Merge branch 'debpalash:main' into fix/sidecar-recv-timeouts-2103 2026-09-16 19:34:58 +01:00
Palash Debnath fd9a9aa3df Improve VoiceStudio Original dark theme accent contrast 2026-09-16 22:17:00 +05:30
Palash Debnath 5af8fe6967 Make Electron the default desktop and refresh setup documentation 2026-09-16 22:11:59 +05:30
Palash Debnath 559f3fc0c1 Respect Electron matrix architecture for macOS packaging 2026-09-16 21:47:27 +05:30
Palash Debnath 4ce42decdd Keep Linux Electron installer names consistent with updater feeds 2026-09-16 21:45:15 +05:30
Palash Debnath 7af1181fc2 fix(desktop): complete shared native bridge contracts 2026-09-16 21:36:14 +05:30
cyberspace-cs 30cda178de docs: add Electron rewrite status note to README
Clarify that the desktop shell is being rebuilt and desktop-app-related
issues/PRs should be avoided until the rewrite ships.
2026-09-17 00:04:58 +08:00
Palash Debnath 3470f5b2d8 Make runtime tests honor macOS paths and CUDA availability 2026-09-16 21:32:11 +05:30
Palash Debnath 28d29f7c71 Handle detached navigation failures in integration and support screens 2026-09-16 21:28:15 +05:30
Palash Debnath 0b8de98783 Prepare Electron desktop releases and final Tauri sunset workflow 2026-09-16 21:24:27 +05:30
rollroyces e59bd03150 test(dub): cover remaining argos_lang_code aliases and empty input
Extends the existing parametrized test on top of #2143 to cover every
new normalization branch the function introduces (Chinese Traditional,
Mandarin, zho, in→id, iw→he, fil→tl), and adds a parametrized
ValueError check for empty and whitespace-only input.

This addresses the CodeRabbit quick-win nit on #2143 so its coverage
matches the production branches. All 47 dub_translate tests pass.
2026-09-16 23:40:12 +08:00
Shivendra-CoherentandClaude Opus 5 34b5eaabf1 fix(subtitles): keep cue lines that are only a number
An imported or pasted subtitle whose line is just a number — a year, a
score, a street number, a "3 / 2 / 1" countdown — was silently deleted,
and when that line was the cue's only text the whole cue disappeared.

Cue bodies are sliced from a timing line up to the next one, which
swallows the next cue's index. The parser clawed that back by popping
every trailing digit-only line, a rule that cannot tell an index from
numeric dialogue. Three shapes fell out of it:

- the last cue of a file has no next index to pop, so a closing "1999"
  was taken for one and the cue was dropped as empty;
- an index-less export has no indices at all, yet still lost its
  closing numeric line — and lost it without counting a skip, so the
  import reported itself lossless while dropping a line;
- the `while` loop popped digit lines until it hit a non-digit, eating
  a multi-line countdown cue whole.

Give back exactly the one line that was swallowed: a single line, only
when a next cue exists to own it, and only in a file that indexes its
cues at all — decided once from the preamble before the first timing
line, since a body of "42" is indistinguishable from an index on its
own. Index detection is ASCII-only, because `str.isdigit()` is also
true for Arabic-Indic and Devanagari numerals, which in a 646-language
dubbing app are dialogue rather than SubRip indices.

Affects both subtitle entry points: POST /dub/import-srt/{job_id} and
POST /dub/parse-subtitle-text.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 18:10:51 +05:30
Palash Debnath 8a1e6eb058 Merge remote-tracking branch 'origin/main' into fix/linux-electron-setup-sidebar
# Conflicts:
#	README.md
2026-09-16 17:27:32 +05:30
Palash Debnath f21fab4e03 Polish Electron navigation and theme, refresh README and agent skills 2026-09-16 17:25:00 +05:30
Palash Debnath ae82468ec3 Update README.md 2026-09-16 17:23:24 +05:30
Shivendra-CoherentandClaude Opus 5 64f74e0dd2 fix: keep the backend alive on pre-Ampere NVIDIA GPUs (#2135)
On a Tesla T4 the backend exited during the first /generate with no
traceback and no HTTP response, leaving the client with
RemoteDisconnected and every later call with ConnectionRefused. Three
separate defects combined, which is why none of the reporter's
workarounds helped.

1. torch.compile(mode="reduce-overhead") captures CUDA graphs. T4
   (sm_75) passed the existing arch gate, so capture was attempted and
   aborted the process from inside the native CUDA library — below the
   interpreter, where neither the #278 eager-fallback wrapper nor any
   except clause can see it. The compile mode is now resolved per GPU:
   Ampere (sm_80) and newer keep the cudagraph mode, older cards drop to
   the non-cudagraph "default" mode and keep their compiled Inductor
   kernels. Fails open on any probe error, so no GPU that works today
   loses the optimization. OMNIVOICE_FORCE_CUDAGRAPH=1 restores it.

2. should_torch_compile() never read TORCH_COMPILE_DISABLE. main.py sets
   it on win32, build_engine_env injected it into subprocesses, and
   docs/install/windows.md tells users to export it — but the in-process
   gate ignored it, so the reporter exported the documented variable and
   still got "torch.compile applied". The gate now honours
   TORCH_COMPILE_DISABLE / TORCHDYNAMO_DISABLE / TORCHINDUCTOR_DISABLE on
   every platform, and an env opt-out on the parent propagates to engine
   subprocesses. The settings DB path is logged alongside the toggle:
   the reporter had three omnivoice.db files and edited one the backend
   never opened.

3. Settings -> Performance -> "Disable torch.compile" was rendered
   disabled outside Windows in both the Tauri and Electron UIs, so the
   one control that would have stopped this was unreachable for the
   affected Linux user. The toggle is now live on every platform, and
   build_engine_env honours it everywhere rather than only on win32.

Also arms faulthandler before torch is imported, so a fatal native
signal writes the faulting thread's Python stack to backend_err.log
instead of the process vanishing silently. This does not prevent a
crash; it makes one diagnosable. OMNIVOICE_DISABLE_FAULTHANDLER=1 skips
it.

Tests fail before / pass after, verified by stashing the source and
running the new tests against unfixed code. The crash test kills a real
child interpreter with a real SIGSEGV and requires a named Python frame
in the output. test_torch_compile_path_gate's fixture now clears the
compile-disable env vars: main.py setdefaults them on win32, so on a
Windows runner they leaked into os.environ and decided those tests.

Not verified on real hardware — no Turing GPU available. The sm_80 floor
is inferred from the crash report and from docs/hardware-notes-tesla-t4.md,
which already flagged cudagraphs on T4 as attempted by default and never
evaluated.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 17:20:09 +05:30
Palash Debnath a966ae20b6 docs: restore trending badge 2026-09-16 13:15:18 +05:30
Palash Debnath 3f1f9bf9d0 docs: refresh Electron showcase and packaging prep 2026-09-16 13:09:32 +05:30
Palash Debnath 1d5d3d873e feat: refresh support and integrations experience 2026-09-16 12:38:16 +05:30
Gyanu Mayank b6c4640b7d fix: Argos language names and BCP-47 tags map to ISO 639-1
Argos Translate ships pairs as zh, not Chinese. Passing the UI
label or a tag like cmn-Hans made get_translation_from_codes
return None and every subtitle stayed in the source language.

Fixes #2140
2026-09-16 08:42:35 +05:30
denemon d6b1326aae fix(dub): observe late _ping_while failures and fix locale log labels
- _ping_while retrieves failures that occur after the consumer disconnects,
  preventing "exception was never retrieved" at GC; the early-exit test
  covers this case
- stream_cut_backend_alive_local now builds the Settings → Logs → Backend
  path from each locale's actual UI labels (`settings.title`,
  `settings.logs`, `common.backend`)
- Fix incorrect section names in 15 locales, including ru, de, and zh-TW

Addresses CodeRabbit review on #2138
2026-09-16 02:38:55 +09:00
denemon 052eb1050b fix(dub): cancel wrapped work when the transcribe stream closes early
`_ping_while` runs awaited work as its own task, so a client disconnect
previously cancelled only the ping loop. Reference-text refinement could
continue running while `run_transcribe_guarded` skipped its abandon path
and the stream finalizer unloaded the ASR model underneath it.

Cancel unfinished work on early exit, matching the cancellation behavior
of the bare `await` it replaced. Do not await it in `finally`, which can
also run under `GeneratorExit`.

- **dub_core**: `_ping_while` cancels an unfinished future in `finally`,
  covering all seven call sites
- **test**: verify that `_ping_while` cancels work on `aclose()` while
  leaving completed work untouched (fail-before / pass-after)
- **CHANGELOG**: add a Highlights entry for the user-visible fix; keep
  Fixed entries under `### Fixed` per `CLAUDE.md`

Addresses Greptile P1/P2 on #2138
2026-09-16 02:30:16 +09:00