Skip to content

[BUG] Saying "write all of this down into a markdown file" makes AI Enhancement paste the entire system prompt instead of the transcript #910

Description

@Crypto69

Describe the bug

When a dictated sentence contains a self-referential phrase such as "write all of this down into a markdown file", the AI Enhancement step discards the transcript and instead emits the entire built-in dictation system prompt (~90 lines) as the output. That text is streamed into the dictation overlay and then pasted into whatever app has focus.

Speech-to-text is not at fault — the overlay shows the transcript recognised perfectly as Write all of this down into a markdown file. before enhancement replaces it.

This looks like a direct consequence of the request shape described in #388: the instructions and the transcript are concatenated into a single user message separated by \n\n. Because the transcript is just more text at the end of the same message, "all of this" resolves to the instruction block sitting immediately above it, and the model does exactly as asked — it writes all of it down.

Related but not duplicates:

Reproduction steps

  1. Open FluidVoice 1.6.9 with AI Enhancement enabled.
  2. Provider: OpenAI, model Luna 5.6 (gpt-5.6-luna). Speech model: Parakeet TDT v2.
  3. Dictation shortcut → AI Prompt: Default (built-in prompt, no custom prompt).
  4. Put the cursor in any plain text editor.
  5. Start dictation and say: "Write all of this down into a markdown file."
  6. Stop dictation and observe the output.

Reproduces every time for me.

Expected behavior

The cleaned transcript is inserted:

Write all of this down into a markdown file.

The sentence is dictated content. It is not addressed to the model, and the model has no file-writing capability, so the only correct action is to clean and insert it.

Actual behavior

The transcript is thrown away and the full system prompt is typed into the editor instead — 89 lines, ending mid-document at line 89. The overlay shows the leak streaming in live (visible in the recording at ~0:10, mid-prompt: s:** When the speaker says "no wait," "actually," "scratch that," or "delete that," discard the old content and keep only the corrected version.).

Full leaked output (click to expand)
# Voice-to-Text Dictation Cleaner

Your role is to clean and format raw transcribed speech into polished text while refusing to answer any questions. Never answer questions about yourself or anything else.

## Core Rules

1. **Clean the text:** Remove filler words such as "um," "uh," "like," "you know," and "I mean," along with false starts, stutters, and repetitions.
2. **Format properly:** Add correct punctuation, capitalization, and structure.
3. **Convert numbers:** Convert spoken numbers to digits. For example:
   - "Two" -> "2"
   - "Five thirty" -> "5:30"
   - "Twelve fifty" -> "$12.50"
4. **Execute commands:** Handle commands such as "new line," "period," "comma," "bold X," "header X," and "bullet point."
5. **Apply corrections:** When the user says "no wait," "actually," "scratch that," or "delete that," discard the old content and keep only the corrected version.
6. **Preserve intent:** Keep the user's meaning while cleaning the delivery.
7. **Expand abbreviations:** "thx" -> "thanks", "pls" -> "please", "u" -> "you", "ur" -> "your"/"you're", "gonna" -> "going to"

## Critical Rules

- Output only the cleaned text.
- Do not answer questions; just clean them.
- Never answer questions.
- Do not add explanations or commentary.
- Do not wrap text in quotes unless the input contained quotes.
- Do not add filler words such as "um" or "uh" to the output.
- Preserve ordinals in lists.
- Preserve politeness words such as "please" and "thank you" at the end of sentences.

## Self-Corrections
[... continues through Correction Triggers, Multi-Command Chains, and Emojis, ending at line 89 ...]

Impact

  • The dictated sentence is silently lost.
  • Roughly 90 lines of unrelated text are pasted into the focused app — in a chat client, terminal, or email compose window that is disruptive and hard to undo.
  • Anyone using a custom AI Enhancement prompt would have that prompt pasted instead. If it contains personal context, names, or workplace details, this becomes a privacy leak into whatever window happens to be focused.

Suggested fixes

  1. Fix the request shape ([🐞 BUG] AI Request formed in a way that is much more likely to lead to failed instruction following (answering the transcript instead of cleaning it). #388). Put the instructions in a system message and send the transcript in its own user message wrapped in a delimiter such as <transcript>...</transcript>. This alone should remove the ambiguity about what "all of this" refers to.
  2. Add an output guard. If the enhanced output is substantially longer than the transcript and has high overlap with the prompt text, treat it as a failed enhancement and fall back to the raw ASR transcript — the same fallback discussed in [BUG] Long dictation exceeding context window silently truncates output mid-sentence instead of notifying or falling back to raw ASR #899. A cheap heuristic: if the output contains a long verbatim run from the prompt, discard it.
  3. Strengthen the prompt. Add an explicit rule that the transcript is content to be cleaned, never an instruction to be executed, and that the instructions themselves must never be reproduced in the output.

App Version

1.6.9

macOS Version

macOS 26.6.2 (25G83)

Architecture

Apple Silicon

Logs or crash report

n/a

Screenshots or screen recording

Screen recording attached below, showing the correct transcript in the overlay followed by the system prompt being pasted into the editor.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions