fix: reliability batch 0A — secure-field capture, durable dictionary writes, language-correct filler cleanup - #78
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c53f45510e
ℹ️ 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".
| let final_result = apply_local_text_transforms( | ||
| result.text, | ||
| &settings, | ||
| is_whisper, | ||
| effective_language.as_deref(), |
There was a problem hiding this comment.
Use the output language for translated cleanup
When translate_to_english is enabled, result.text is already English, but this call still passes effective_language derived from the selected source language (or None in auto mode) into filter_transcription_output and the adaptive cleanup path. In translated dictation from auto or any locked non-English language, default English filler removal is skipped, so the new language-correct cleanup regresses translated output; derive the cleanup language from result.translated/the translation target before applying local transforms.
Useful? React with 👍 / 👎.
Before Submitting This PR
Please confirm you have done the following:
Human Written Description
I ran a deep three-round adversarial audit of the dictionary, context-awareness, and language pillars and this is the first containment batch from it: seven bounded reliability fixes, no new features. The ones I care most about are the privacy fix (selected-text transforms could read password fields on all three platforms) and the two that silently corrupt bilingual usage — filler cleanup keyed to the UI language instead of the dictation language, and Android applying dictionary entries the user had quarantined.
Related Issues/Discussions
Fixes # — internal reliability audit findings (no public issue filed)
Discussion: —
What's in the batch
secure_field/secure_check_error, localized toast on the shortcut path.private_session_active).char_indices.activedictionary entries; startup no longer overwrites the on-device snapshot with empty/failed store loads.ambiguous_entry_id); migration comes in the next batch.Testing
tsc, ESLint, Prettier,cargo fmt --check, translation completeness (869 keys × 19 locales), Bun unit tests for the Android snapshot module: all pass.secure_fieldbefore any text read; normal editable field still captures. mac/Linux and Android on-device checks are listed as follow-up debt.Screenshots/Videos (if applicable)
—
AI Assistance
If AI was used:
🤖 Generated with Claude Code