Skip to content

Model names truncated in narrow terminal - accessibility issue #822

Description

@PabloJustDevelops

Summary

When the terminal window is small/minimized, the model picker truncates model display names at ~14 chars, losing version disambiguation. Example: Claude Fable 5.1 -> Claude Fable 5., GPT-6 Astra -> GPT-6 Astr, Muse Spark 1.2 -> Muse Spark 1.. This makes it impossible to distinguish models (e.g. 1.2 vs 1.3, 5 vs 5.1) and is an accessibility failure. Affects workflow when using a tiled/minimized terminal on Niri/Wayland.

Expected Behavior

Full model identifiers should remain accessible even in a narrow terminal. Either:

  • Responsive layout (wrap / two lines), or
  • Truncate with … + show full name on focus/selection/tooltip, or
  • Horizontal scroll, or
  • Show full id (claude-fable-5-1, gpt-6-astra, muse-spark-1.3) in detail pane
    No information loss at any width. WCAG 1.4.10 Reflow compliance.

Actual Behavior

Names are hard-truncated without ellipsis at the column boundary. The CLI commandcode --list-models shows full ids correctly (68 models), but the interactive TUI does not. In a 60-80 column terminal:

  • Claude Fable 5.1 renders as Claude Fable 5.
  • GPT-6 Astra renders as GPT-6 Astr
  • Muse Spark 1. / Muse Spark 1.3 ambiguous
    User initially thought models were mislabeled.
Image

Steps to reproduce the issue

  1. Open a terminal with narrow width (~60-80 cols) or minimize/tile the window on Niri
  2. Run commandcode (v1.50.1) and open model selector (--model or /model)
  3. Observe truncated names in the list
  4. Maximize terminal -> names render correctly -> confirms width-dependent truncation

Command Code Version

1.50.1

Operating System

Linux

Terminal/IDE

Unknown

Shell

fish

Session file (optional)

No response

Fix prompt (optional)

In command-code TUI model picker (likely dist/cli.mjs / source src/ui/modelPicker.tsx):

  • Replace fixed-width slice(0,14) truncation with responsive rendering: if termColumns < 100, either wrap name to second line or truncate with … and expose full displayName + id on focused row.
  • Ensure the focused/selected row always shows the full model id (claude-fable-5-1) in the help/footer line, not just the truncated display name.
  • Verify by: stty cols 70; commandcode --list-models vs TUI at 70 cols -> TUI should still allow disambiguation. Add test: render picker at 60, 80, 120 cols and assert no two distinct models share the same truncated string.

Additional context

  • commandcode --list-models output is correct (full ids).
  • Issue is purely presentational/a11y, not data. High impact for keyboard-only and low-vision users who rely on narrow tiled terminals.
  • Screenshots: truncated list shows trailing . where version digit is cut.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions