Layout restructure per UX feedback — the single-row-crammed layout couldn't fit state + status + controls + help on narrow windows, and byte-based truncation was clipping emoji at the right edge. New shape: ┌────────────────── width ──────────────────┐ ├ ─ ─ ─ ─ top separator ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┤ │ 🐛 DEBUG · PAUSED · status… ❓ help │ │ 🟢 (c)ontinue … 🛑 (q) terminate│ ├ ─ ─ ─ ─ bottom separator ─ ─ ─ ─ ─ ─ ─ ─ ─┤ └────────────────────────────────────────────┘ - Help has its own right-anchored slot on row 1 — it can never be squeezed off by long status messages or wide control labels. Solves the "no help visible on READY state" regression where dap's "All threads stopped" message was pushing it past the byte-truncation. - Controls get the full width of row 2 without fighting status text, centered horizontally. - If status message is too long for row 1, we truncate status first with an ellipsis — help stays put. Other fixes: - TurboDebugBarKey no longer applies underline. The descender of lowercase q crossed the underline and read as a lowercase g. Kept bold; dropped underline. - Help emoji switched back to ❓ (U+2753). It's BMP but has Emoji_Presentation=Yes by default, so Ghostty renders it as color. The previous "❓ invisible" symptom was caused by the broken-extmark underline leak; fixed in the prior commit. - Bottom tray shrunk 9 → 8 rows to preserve the 12-row total footprint of the original dapui default (8 tray + 4 bar = 12). Click zones now include a line number so we can dispatch correctly between the state row (help click) and the controls row (control clicks). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>