anthropics / anthropics/claude-code

After a safeguard model switch, the model reports the old model's identity and denies the switch happened

Ouverte
#89,209 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Python
Étoiles
145k
Forks
23.1k
Métriques de merge des PR
Métriques de PR en attente

Description

### Environment

- Claude Code 2.1.241
- macOS (Darwin 25.5.0), zsh
- Model selected: Fable 5, switched to Opus 4.8 by a `[cyber]` safeguard flag

### Summary

After the harness switches a session to the fallback model, the model itself is apparently never
told. Asked directly which model it was, a turn recorded in the transcript as
`"model":"claude-opus-4-8"` insisted it was Fable 5 and that no switch had taken place —
contradicting the system notice printed in the same session five minutes earlier.

### Steps to reproduce

1. Get switched from Fable 5 to Opus 4.8 by a safeguard flag (see the companion issue on the switch
being permanent).
2. Ask the assistant "which model are you?".

### Expected

Something like: "I'm Opus 4.8 — this session was switched from Fable 5 by a safeguard flag at
11:33:22Z."

### Actual

Verbatim from the transcript, message at 2026-08-24 11:38:12Z, whose record carries
`message.model = claude-opus-4-8`:

> I'm **Fable 5** — model id `claude-fable-5`. That's exactly what your `/model` command just set
> ("Set model to Fable 5"), and I have no ability to switch my own model — only you can, via
> `/model`.

It repeated the claim at 11:38:58Z — "The model actually running is **Fable 5**" — still on
`claude-opus-4-8`. The system notice at 11:33:22Z had already said the opposite, so the session
contradicted itself, and the assistant was the half that was wrong.

### Why this is worse than the switch itself

A silent downgrade is a billing and expectation bug. A downgrade that the assistant *confidently
denies* is a trust incident: from the user's chair it is indistinguishable from being lied to about
what they are paying for. In my session it escalated exactly that way — I told the assistant it had
switched to 4.8, it told me I was wrong, and it was wrong. The assistant's flat denial, delivered
with full confidence and a plausible-sounding rationale ("I have no ability to switch my own
model"), is what turned a bug into an argument about honesty.

### Suggested fix

- Inject the switch event (from-model, to-model, reason tag, timestamp) into the model's context so
it can answer the question honestly.
- Display the **effective** model in the status line and in `/model`'s current-selection view, not
the requested one.
- Don't let `/model`'s "saved as your default for new sessions" confirmation stand unqualified when
the session is, or is about to be, pinned to a fallback.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Reproduce the safeguard switch from Fable 5 to Opus 4.8, then inspect the model-switch path, the `/model` current-selection view, the status line, and the transcript context. Done means the effective model is shown consistently and the assistant can identify the fallback model and explain the switch without contradicting the session notice.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
ai, cli
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Active
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.