Skip to content

VoiceFlow v0.3.2: isolate runtime and stabilize settings - #20

Merged
qinxujunai merged 8 commits into
masterfrom
codex/settings-stability-v032
Aug 24, 2026
Merged

VoiceFlow v0.3.2: isolate runtime and stabilize settings#20
qinxujunai merged 8 commits into
masterfrom
codex/settings-stability-v032

Conversation

@qinxujunai

Copy link
Copy Markdown
Owner

结果

  • 用稳定 AppController 消除设置按钮启动竞态,热键先于模型注册
  • 将音频、流式预览和终稿识别隔离为受监管进程并持续记录心跳
  • 历史支持单条删除、撤销和确认清空;安装门禁拒绝携带 history.jsonl
  • 删除会与 F2 状态竞争的试说按钮,保留普通文本框供真实 F2 测试
  • 同步 v0.3.2 build 260825.2、README、官网文案、Release notes 和发布证据

验证

  • scripts/verify.py --release
  • 396 tests passed
  • 500 lifecycle cycles
  • 10,000 state sequences
  • 1-hour recovery coverage, 5,000 delivery faults, 50,000 safe-text fuzz cases
  • DPI/UI/motion/performance gates
  • final isolated installer smoke with both bundled models and no packaged history
  • local installed runtime ready with continuous heartbeat and empty history
  • real-browser zh/en, responsive layout, 0 console warnings/errors

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 940df3ebaf

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/main.py
Comment on lines +1437 to +1441
except Exception:
logger.exception("runtime worker restart failed")
self.controller.mark_degraded(
error_code="worker_restart_failed",
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep preview failures from disabling final dictation

When only the optional preview worker fails to restart—for example, after its process crashes or its preview assets become unavailable—this shared exception path marks the entire controller degraded, after which AppController.toggle_recording() rejects every recording even though the audio and authoritative final-ASR workers remain usable. Startup already tolerates the same preview initialization failure by setting preview_transcriber to None, so the supervisor should likewise disable preview rather than gate core dictation.

AGENTS.md reference: AGENTS.md:L74-L75

Useful? React with 👍 / 👎.

Comment thread src/overlay_webview.py
Comment on lines +784 to +789
try:
import sounddevice as sd

for index, device in enumerate(sd.query_devices()):
if int(device.get("max_input_channels", 0)) > 0:
devices.append((str(device.get("name", index)), index))

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Enumerate microphones outside the Qt process

Whenever the settings window refreshes, this imports sounddevice and calls native PortAudio device enumeration inside the Qt process; moving it to a Python thread does not provide process isolation, so a wedged enumeration leaves settings permanently refreshing and a native driver crash still terminates VoiceFlow. Route device discovery through the supervised audio worker instead of loading or calling the native audio stack here.

AGENTS.md reference: AGENTS.md:L56-L59

Useful? React with 👍 / 👎.

@qinxujunai
qinxujunai merged commit 8b360cb into master Aug 24, 2026
5 checks passed
@qinxujunai
qinxujunai deleted the codex/settings-stability-v032 branch August 24, 2026 17:21
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.

1 participant