Skip to content

fix: render halfwidth katakana voiced marks - #2256

Closed
kazunari-kamata wants to merge 1 commit into
herdrdev:masterfrom
kazunari-kamata:agent/fix-halfwidth-katakana-rendering
Closed

fix: render halfwidth katakana voiced marks#2256
kazunari-kamata wants to merge 1 commit into
herdrdev:masterfrom
kazunari-kamata:agent/fix-halfwidth-katakana-rendering

Conversation

@kazunari-kamata

Copy link
Copy Markdown

Summary

Fix rendering for halfwidth katakana graphemes that use halfwidth voiced or semi-voiced marks, such as ガギグゲゴ and パピプペポ.

Root Cause

Ghostty reports halfwidth katakana plus U+FF9E/U+FF9F as a wide cell with a spacer tail. Herdr previously normalized the grapheme through unicode-width, which reports these strings as width 1, so the pane renderer could replace them with blanks.

After preserving the grapheme, the ANSI blitter still treated it as width 1 and could draw the tail cell afterward, overwriting the voiced kana on the host terminal.

Changes

  • Preserve halfwidth katakana + halfwidth voiced/semi-voiced mark graphemes when Ghostty reports them as wide cells.
  • Keep Ghostty spacer-tail cells as empty symbols instead of converting them to spaces.
  • Treat these graphemes as width 2 in the terminal ANSI blitter so full and diff redraws skip covered tail cells correctly.
  • Add regression tests for pane rendering, retained dirty patches, and ANSI full/diff redraw behavior.

Validation

  • cargo fmt --check
  • cargo test halfwidth_katakana_voiced -- --nocapture
  • cargo test halfwidth_voiced_kana -- --nocapture

@kangal-bot kangal-bot added the ai-review Trigger automated AI reviews for pull requests admitted by the PR gate label Aug 4, 2026
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 5d6b1df5-7d34-4534-b87e-be73650be0cd

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@kazunari-kamata

Copy link
Copy Markdown
Author

Replaced by #2257 to use a branch name without the agent/ prefix and a scoped commit/PR title matching the project convention.

@kazunari-kamata
kazunari-kamata deleted the agent/fix-halfwidth-katakana-rendering branch August 4, 2026 01:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-review Trigger automated AI reviews for pull requests admitted by the PR gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants