Skip to content

Withdrawn#500

Closed
Cooper-X-Oak wants to merge 1 commit into
Open-Less:betafrom
Cooper-X-Oak:codex/onboarding-guidance-clean
Closed

Withdrawn#500
Cooper-X-Oak wants to merge 1 commit into
Open-Less:betafrom
Cooper-X-Oak:codex/onboarding-guidance-clean

Conversation

@Cooper-X-Oak
Copy link
Copy Markdown
Contributor

@Cooper-X-Oak Cooper-X-Oak commented May 19, 2026

Closed intentionally. This PR is withdrawn.

@github-actions
Copy link
Copy Markdown

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
🧪 PR contains tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Stale ASR config

The ASR step treats any existing Volcengine credential bundle as “ready”, but the onboarding flow only rewrites volcengine.resource_id when the user explicitly saves this form. Upgraded installs that already have APP ID and Access Token stored can therefore finish onboarding without ever updating the old volc.bigasr.sauc.duration value, which leaves Volcengine transcription broken until the user manually re-saves the credentials.

const asrReady = Boolean(credentials?.volcengineConfigured || asrSaveState === 'saved');
const asrHasInput = Boolean(asrForm.appKey.trim() || asrForm.accessKey.trim());
const asrFormValid = Boolean(asrForm.appKey.trim() && asrForm.accessKey.trim());
Listener leak

On Tauri, the microphone test registers the microphone:level listener before starting the native monitor. If startMicrophoneLevelMonitor() throws, the catch block only stops the monitor and never unregisters that listener, so the subscription can stay active and keep updating state until the user retries or leaves the page.

  if (isTauri) {
    const { listen } = await import('@tauri-apps/api/event');
    const unlisten = await listen<{ level: number }>('microphone:level', event => {
      const level = Math.max(0, Math.min(1, event.payload.level ?? 0));
      setMicLevel(level);
      if (level > 0.08) {
        setMicTestState('heard');
      }
    });
    micUnlistenRef.current = unlisten;
    await startMicrophoneLevelMonitor(prefs?.microphoneDeviceName ?? '');
  } else {
    micMockTimerRef.current = window.setInterval(() => {
      const level = 0.2 + Math.random() * 0.5;
      setMicLevel(level);
      setMicTestState('heard');
    }, 120);
  }
} catch (error) {
  console.warn('[onboarding] microphone test failed', error);
  setMicMonitoring(false);
  setMicTestState('error');
  setMicTestError(error instanceof Error ? error.message : String(error));
  void stopMicrophoneLevelMonitor();
}

@Cooper-X-Oak Cooper-X-Oak deleted the codex/onboarding-guidance-clean branch May 19, 2026 05:19
@Cooper-X-Oak Cooper-X-Oak restored the codex/onboarding-guidance-clean branch May 19, 2026 05:21
@Cooper-X-Oak Cooper-X-Oak changed the title feat(onboarding): guide first-run ASR setup Withdrawn May 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant