# [Bug] Markdown table cells clip leading/trailing characters when containing long Windows paths (backslash, no spaces)

Author: blueteethCreated Sep 1, 2026Updated Sep 1, 2026

Summary

In Hermes One (Windows desktop app), a markdown table whose cell contains a long Windows path (backslash-separated, no spaces) renders with the path clipped — characters are cut off at the start/end of the cell, and CJK text in adjacent cells wraps mid-word. Short cells render fine.

Reported on v0.7.6, Windows 11.

Screenshots

Image

What the assistant reply contains (correct markdown)

路径 状态
快捷方式指向 hermes-agent\apps\desktop\release\win-unpacked\Hermes.exe ❌ 不存在
实际安装 Programs\hermes-desktop\hermes-agent.exe ✅ 存在

What actually renders

  • hermes-agent.exemes-agent.exe (leading her clipped)
  • win-unpackedwin-unpack (trailing ed clipped)
  • CJK label 快捷方式指向 wraps mid-word → 快捷方式 / 式指向

Screenshot of the bug in the desktop app

Headless Chromium reproduction (same CSS, no Electron involved)

I extracted the exact table CSS from the app bundle and rendered the same markdown in a plain Chromium headless browser (Edge). The clipping reproduces without Electron — proving it is a CSS/layout bug in the table styles, not a model, encoding, or Electron issue.

Headless Chromium repro — long-path cells clipped

Steps to reproduce

  1. Ask the assistant (or send yourself) a reply containing a markdown table like:
markdown
|  | 路径 | 状态 |
|---|---|---|
| 快捷方式指向 | `hermes-agent\apps\desktop\release\win-unpacked\Hermes.exe` | ❌ 不存在 |
| 实际安装 | `Programs\hermes-desktop\hermes-agent.exe` | ✅ 存在 |
  1. Render it in the desktop chat view.
  2. Observe: the path cells are clipped at the edges; CJK labels wrap mid-word. Shrinking the window width makes it worse.

Expected behavior

  • Table cells should wrap long content (or the table should widen with horizontal scroll), never clip characters.
  • CJK labels should break at word boundaries, not mid-character.

Root cause (from bundle CSS)

The relevant styles in the app bundle (index-PZ0CgNKD.css):

css
.chat-bubble-agent table {
  border-collapse: collapse;
  width: 100%;        /* table forced to 100% of container */
  margin: 8px 0;
  font-size: 13px;
}
.chat-bubble-agent th, .chat-bubble-agent td {
  border: 1px solid var(--border-bright);
  text-align: left;
  padding: 6px 10px;
}
.chat-bubble-agent code {
  white-space: pre-wrap;  /* no word-break/overflow-wrap for cell content */
}

Chain: width: 100% fixes the total table width → a long unbreakable token (Windows path, no spaces) has a min-content width larger than the available column space → the browser squeezes the column → the cell content overflows and is clipped. CJK labels wrap mid-word because pre-wrap breaks anywhere.

Suggested fix

Add to the table cell styles:

css
.chat-bubble-agent th,
.chat-bubble-agent td {
  overflow-wrap: anywhere;   /* or word-break: break-all */
}

and optionally table-layout: fixed on the table for deterministic column sizing. This makes long paths wrap inside the cell instead of clipping. Verified working in the headless repro — with overflow-wrap: anywhere the same table renders fully (all characters visible, wrapped to multiple lines).

Environment

  • Hermes One desktop: v0.7.6
  • OS: Windows 11 (zh-CN locale)
  • Reproduced in: desktop chat view + plain Chromium headless (Edge 1xx)