Skip to content

Make on-demand Whisper installer reachable on first-run (#36) - #37

Merged
DozaVisuals merged 2 commits into
mainfrom
fix/whisper-install-onboarding
Jun 5, 2026
Merged

DozaVisuals merged 2 commits into
mainfrom
fix/whisper-install-onboarding

Conversation

@DozaVisuals

Copy link
Copy Markdown
Owner

Problem

Issue #36: a user picks a non-English language (German), transcribes for the first time, and gets a dead-end message saying it "needs Whisper which is not installed" — with no way to install it.

The backend already had a complete on-demand installer (`/api/install-whisper` + polling) and the `/transcribe` route already returns a `needs_whisper_install` flag. But the only UI that surfaced the installer lived in the Retranscribe modal, which doesn't exist until after a successful transcription. The initial transcribe handler ignored the flag and just toasted the raw error text — a dead end for a first-time non-English user.

Fix (frontend only — backend was already correct)

  • First-run installer: the initial-transcribe error now detects `needs_whisper_install` and renders an "Install non-English support" button in the transcribe card, then auto-retries once the engine is ready.
  • One shared code path: refactored the modal's `startWhisperInstall()` into `runWhisperInstall(container, onDone)`, now used by both the first-run error and the Retranscribe modal.
  • Safer default: `updateWhisperBanner` now assumes Whisper is missing if the engine probe fails (shows the idempotent install prompt instead of silently failing later).
  • Dashboard hint: note under the language picker that non-English downloads the Whisper engine (~200 MB) on first use.

Verification

  • `node --check` on both templates.
  • Created a real German `uploaded` project on a throwaway server: first-run banner + button render in served HTML.
  • Exercised `runWhisperInstall` end-to-end against the real backend (POST → poll → done → onDone), plus the Retranscribe gating/re-enable.
  • Dashboard hint toggles correctly (hidden for English, shown for German/Auto).

Closes #36

DozaVisuals and others added 2 commits June 5, 2026 09:33
…#36)

Picking a non-English language (e.g. German) and transcribing for the
first time returned a dead-end error -- the backend sent the
needs_whisper_install flag but the initial-transcribe handler ignored it
and just toasted the raw error text, leaving the user with no way to
install the engine. The on-demand installer only existed behind the
Retranscribe modal, which doesn't appear until after a successful
transcription.

- project.html: the first-run transcribe error now detects
  needs_whisper_install and renders an 'Install non-English support'
  button in the transcribe card, then auto-retries once the engine is
  ready.
- Refactor the modal's startWhisperInstall() into a shared
  runWhisperInstall(container, onDone) used by both the first-run error
  and the Retranscribe modal -- one install/polling code path.
- updateWhisperBanner now assumes Whisper is missing if the engine probe
  fails, so it shows the (idempotent) install prompt instead of letting a
  non-English transcription fail later with no recourse.
- dashboard.html: hint under the language picker that non-English
  downloads the Whisper engine (~200MB) on first use.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
❌ Deployment failed
View logs
doza-assist 042136c Jun 05 2026, 01:34 PM

@DozaVisuals
DozaVisuals merged commit 3566f1e into main Jun 5, 2026
1 of 2 checks passed
@DozaVisuals
DozaVisuals deleted the fix/whisper-install-onboarding branch June 5, 2026 13:34
DozaVisuals added a commit that referenced this pull request Jun 5, 2026
Surface the on-demand Whisper installer from the initial transcribe
handler, not just the Retranscribe modal: when /transcribe returns
needs_whisper_install, render an "Install non-English support" button
that installs Whisper once and auto-retries. Refactor startWhisperInstall
-> runWhisperInstall(container, onDone) so both entry points share it.
Add a language hint on the dashboard. Frontend-only; backend endpoints
already present.

Ports OSS doza-assist v3.5.8 (PR #37) to the direct release core.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Needs Whisper for German transcription

1 participant