-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Description
Environment
• OS: macOS (Darwin)
• Shell: zsh with oh-my-zsh
• Theme: powerlevel10k/powerlevel10k
• Terminal: ghostty
Issue Description
The Powerlevel10k prompt suffix character ─╯ (UTF-8 bytes: e2 94 80 e2 95 af) appears to bleed into terminal output under certain conditions, causing data corruption when that
output is captured or used programmatically.
Specific manifestation:
• Running git config --global user.email (without arguments) to read the current value
• The output visually shows or somehow captures the prompt suffix character ─╯
• This corrupted output can then accidentally be written back to .gitconfig through copy-paste or command mishaps
• Result: .gitconfig file contains email = ─╯ instead of actual email address
Configuration
The prompt character is defined in .p10k.zsh:149:
POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%240F─╯'
Evidence from .zsh_history
Hex Dump of Corrupted .gitconfig
00000000 5b 75 73 65 72 5d 0a 09 65 6d 61 69 6c 20 3d 20 |[user]..email = |
00000010 e2 94 80 e2 95 af 0a 09 6e 61 6d 65 20 3d 20 53 |........name = S|
Bytes e2 94 80 e2 95 af = ─╯
Reproduction
Unable to reliably reproduce - appears to be a race condition or timing issue between:
• Command output rendering
• Prompt rendering
• Terminal buffer state
Workaround
Explicitly resetting the config value fixes the corruption:
git config --global --unset user.email
git config --global user.email "[email protected]"
Impact
High - Can silently corrupt configuration files or any captured command output, leading to:
• Broken git configuration
• Failed authentication
• Data integrity issues in scripts that capture command output
Additional Context
The instant prompt is enabled in .zshrc:
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi