Panic when using Option + <- to navigate (related to en-dash?)

Resolved 💬 2 comments Opened Sep 14, 2025 by smehmood Closed Jan 13, 2026

What version of Codex is running?

codex-cli 0.34.0

Which model were you using?

gpt-5 high

What platform is your computer?

Darwin 24.5.0 arm64 arm

What steps can reproduce the bug?

Using ghostty on macOS, run

COLORBT_SHOW_HIDDEN=1 RUST_BACKTRACE=full codex

Type:

Look at 'Screenshot 2025-09-14 at 1.37.16 PM.png

Then hit Option + <–

Ghostty version:

ghostty --version

Ghostty 1.1.3

Version

  • version: 1.1.3
  • channel: stable

Build Config

  • Zig version: 0.13.0
  • build mode : builtin.OptimizeMode.ReleaseFast
  • app runtime: apprt.Runtime.none
  • font engine: font.main.Backend.coretext
  • renderer : renderer.Metal
  • libxev : main.Backend.kqueue

What is the expected behavior?

Cursor moves to the single-quote ' character.

What do you see instead?

Observe a panic

▌Look at 'Screenshot 2025-09-14 at 1.37.16 PM.pngThe application panicked (crashed).
Message: byte index 42 is not a char boundary; it is inside '\u{202f}' (bytes 41..44) of Look at 'Screenshot 2025-09-14 at 1.37.16 PM.png
Location: tui/src/bottom_pane/textarea.rs:144

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
2: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
3: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
4: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
5: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
6: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
7: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
8: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
9: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
10: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
11: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
12: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
13: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
14: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
15: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
16: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
17: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
18: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>
19: __mh_execute_header<unknown>
at <unknown source file>:<unknown line>

Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering.

Additional information

There's a secondary strangeness here where when I added RUST_BACKTRACE=full to the codex command, the message telling me to add it disappeared (as I'd expect), but it's not clear adding COLORBT_SHOW_HIDDEN=1 did anything, since the output looks unchanged and still asks me to include the env var.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗