Skip to content

Settings' pinned roles row still shows the checking role as auditor #1719

Open

Description

@AbirAbbas

Behaviour

Since #1711, /settings → Providers calls the checking role checker on its own row, in search and in the picker. But the pinned roles text row still shows the stored id, and that word is banned on screen (CLAUDE.md design laws):

pinned roles                                                              • auditor:qwen/qwen3.8-27b
…
roles · checker
checker                                                                     qwen/qwen3.8-27b  pinned

Seen on dev df7022daa. The manual already documents it (models-and-cost.md, the role table: "a saved pin still names this role auditor"), so the manual is true. The screen still breaks the vocabulary law, and the same pin is spelled two ways four rows apart.

Replication

  1. In a fresh isolated home, run codeaf chat --no-host, then /settings → Providers.
  2. Select the checker row, press Enter, filter to any model, Enter to pin, Escape.
  3. The pinned roles row reads auditor:<model>. It still does after a relaunch.

Where

config.KeyModelRoles (pinned roles) in internal/tui3/settings.go is a text widget whose reading is the raw models.roles value. roleDisplayWord (also in settings.go) translates only the role rows. The stored id must keep its bytes, because older builds read it (#1711).

Acceptance

Pin the checker in Settings, as in the replication: the pinned roles row shows checker:<model>, and config.json still stores auditor:<model>. Typing checker:<model> into that text box saves auditor:<model>, and an older build still reads the pin.

Activity

  1. added
    bugSomething the code does that it should not
    area:chatThe v3 surface a person sits in front of (internal/tui3)
    sev:papercutA wording, a hint, a small wrongness that costs a moment
    on Oct 3, 2026
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

    area:chatThe v3 surface a person sits in front of (internal/tui3)bugSomething the code does that it should notsev:papercutA wording, a hint, a small wrongness that costs a moment

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions