mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-08-04 13:51:13 +00:00
* fix(cli): align all TUI icon columns to a uniform 2-col width
Remove the extra left padding (paddingX=1) from ToolMessage and
CompactToolGroupDisplay that caused tool status icons (✓, ✗) to be
indented relative to the assistant message prefix (◆).
Reduce STATUS_INDICATOR_WIDTH from 3 to 2 so the tool status indicator
column matches the prefix width used by conversation and status
messages. Add flexShrink={0} to prefix boxes that were missing it.
Unify CompressionMessage, SummaryMessage, and MemorySavedMessage to
use the same fixed-width prefix box pattern (width=2, flexShrink=0)
instead of ad-hoc marginRight or minWidth approaches.
Restructure tool_use_summary in HistoryItemDisplay to use the
standard prefix box pattern instead of inline paddingLeft.
This ensures all icons (◆, ✓, ✗, ●, △, etc.) start at the same
column and all text content begins at a uniform offset, regardless
of whether the icon glyph is 1 or 2 terminal columns wide.
* fix(cli): address review feedback on icon alignment PR
- Remove dead COMPACT_GROUP_HORIZONTAL_PADDING constant (now 0)
and its no-op subtraction from the height estimation formula.
- Reduce TMUX_SPINNER_FRAMES from 3-char to 2-char equivalents
('. ' / '..') so they fit the narrowed 2-col indicator box
without overflowing in tmux sessions.
* fix(cli): force narrow presentation for ambiguous-width TUI icons
Append VS15 (U+FE0E, Variation Selector 15) to all East-Asian-Width
'Ambiguous' icon glyphs (◆ ● △ ○ ◎ ※ ∴ ∵ ★ ◉) via a central ICON
constant map in constants.ts. VS15 forces the terminal to render these
glyphs in their narrow (1-column) text presentation, matching
string-width's default ambiguousIsNarrow=true calculation.
Without this, CJK terminals render ambiguous glyphs as 2 columns while
Ink's layout engine allocates 1, causing a 1-column visual drift that
breaks icon/text alignment in the conversation view.
25 files updated to use ICON.XXX constants instead of raw string
literals for ambiguous icons.
* fix(cli): update test assertions for VS15 icon changes
- Fix 17 inline test assertions across 7 test files to match
VS15-appended icon output
- Fix MarkdownDisplay.tsx: use stringWidth(prefix) instead of
prefix.length to correctly measure display width of icons
that include VS15 (a zero-width code unit that .length counts
but stringWidth ignores)
* fix(cli): update CronPill/SettingsDialog for VS15 icon changes
- Fix CronPill test assertion for ◎ with VS15
- Update SettingsDialog to use ICON.CIRCLE_FILLED instead of raw ●
- Fix 10 SettingsDialog test assertions for ● with VS15
- Update SettingsDialog snapshots
* fix(cli): address maintainer review feedback on PR #7633
- Fix ToolGroupMessage width regression: split innerWidth so
ToolMessage gets full contentWidth (no longer needs -2 since
paddingX was removed) while ToolConfirmationMessage keeps -2
(it still has its own padding={1})
- Fix stale '3-char' comment in GeminiRespondingSpinner → '2-char'
- Add comment explaining minWidth vs width asymmetry in
ToolStatusIndicator (minWidth allows growth for tmux spinner
frames and test mocks)
* fix(cli): add VS15 to ◐ (U+25D0) ambiguous icon in todo components
◐ (CIRCLE WITH LEFT HALF BLACK) is East-Asian-Width Ambiguous.
Added ICON.CIRCLE_LEFT_HALF constant and updated StickyTodoList
and TodoDisplay to use it.
* fix(cli): strengthen test assertion and clarify VS15 comment
- HistoryItemDisplay test: restore spatial assertion to
toContain('◆\uFE0E Hello') instead of split checks
- constants.ts: clarify that VS15 is zero-width in string-width
but forces narrow terminal presentation
* fix(cli): update StickyTodoList test assertion for ◐ VS15
---------
Co-authored-by: 秦奇 <gary.gq@alibaba-inc.com>
|
||
|---|---|---|
| .. | ||
| src | ||
| .gitignore | ||
| index.ts | ||
| package.json | ||
| test-setup.ts | ||
| tsconfig.json | ||
| vitest.config.ts | ||