Skip to content

[Bug]: Provider update icons look identical but do different things (copy command vs in-place update) #12886

Description

@amihos

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Closest existing checked 2026-09-21, none match:

Area

apps/web

Steps to reproduce

  1. Go to Settings / Providers / All environments / All projects
  2. Note Claude entry v2.1.273 with update glyph in left list, and same-looking glyph in detail header v2.1.273.
  3. Click the small update icon in the list/header -> toast Claude update command copied / Run it in a terminal when you are ready to update. Command /home/huso/.local/bin/claude update is only copied to clipboard, nothing runs.
  4. Click the other update affordance to open Update available / Install the update now or review provider settings. popover -> Update now button actually runs the update in place. Manual section shows same command with explicit copy icon.

Expected behavior

Same-looking update controls should do the same thing, or be visually distinguished, e.g.:

  • copy-icon + tooltip Copy update command for the copy action
  • download/run-icon + tooltip Update now for the in-place action
    Ideally the row icon opens the same Update available popover so both paths converge.

Actual behavior

Two identical-looking update icons/buttons diverge with no tooltip distinction:

  • one copies /home/huso/.local/bin/claude update (toast confirms copy only)
  • the other performs the update (Update now)
    Violates least surprise, risks missed update or unexpected update. Screenshot shows both the toast and the popover at once.

Impact

Minor bug or occasional failure

Version or commit

nightly (exact build unknown)

Environment

Ubuntu 26.04.1 LTS, T3 Code Desktop nightly, Claude 2.1.273, binary /home/huso/.local/bin/claude update

Logs or stack traces

None - UI behavior only.

# toast text observed:
# Claude update command copied
# Run it in a terminal when you are ready to update.

Screenshots, recordings, or supporting files

Image

Workaround

Use Update now in popover for real update, or paste + run copied command manually in terminal.

Activity

  1. juliusmarminge commented on Sep 21, 2026

    @juliusmarminge
    Member

    Triage

    Confirmed. This is a real UX bug in Settings → Providers, not a failed update.

    On wide layouts the providers page is a split list + editor (@min-[48rem]/providers). Both panes render ProviderInstanceCard with the same ArrowUpCircle glyph:

    • List row — copies versionAdvisory.updateCommand and toasts {name} update command copied. Tooltip is already “Copy update command”. Added in fix(web): copy provider update commands from compact rows #9888 so the compact glyph did something (it used to be inert).
    • Editor header — opens the “Update available” popover. Update now runs the in-place update (onRunUpdate is only wired in editor mode). Copy is a separate CopyIcon on the command line.

    Same icon, two actions. Easy to think the list click updated the CLI when it only copied the command. The list tooltip is easy to miss; the header glyph has no tooltip.

    Not a duplicate of #8051, #11163, #9370, #4211 (those are update/install failures or the server copy command). #12877 is device/tool versions, a different surface.

    Fix (web + desktop; no mobile UI here): have the list glyph open the same popover as the header so both paths converge. Keep copy on the explicit copy control inside the popover. Passing onRunUpdate through in list mode is enough; no contract or adapter change.

    Workaround until then: use Update now in the header popover, or paste the copied command in a terminal.

  2. added
    acceptedfeature request accepted
    bugSomething is broken or behaving incorrectly.
    via-triageFiled through npx t3 triage
    on Sep 21, 2026
  3. cestercian commented on Sep 21, 2026

    @cestercian
    Contributor

    I'd like to take this — working on making the two update affordances visually distinct.

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

    acceptedfeature request acceptedbugSomething is broken or behaving incorrectly.via-triageFiled through npx t3 triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions