2.1.290 ist am 5. Oktober um 18:12 UTC in der npm-Registry gelandet. 190 Changelog-Zeilen: 112 Korrekturen, 22 Änderungen, 15 Verbesserungen, 11 Neuerungen, dazu eigene Abschnitte für VS Code, Claude Tag, Cloud-Sessions und Code Review. Zum Vergleich: 2.1.289 zwei Tage vorher hatte 27.
Bei der Menge lohnt es, nach einem Muster zu suchen. Es gibt eines, und es betrifft die Berechtigungen.
Acht Befehle, die vorher ohne Rückfrage liefen
rg und git grep gelten als lesend und wurden darum automatisch freigegeben – auch dann, wenn die Shell deren Argumente noch als Wildcard expandiert hätte. Dasselbe Problem bei Wildcards in Optionswerten anderer Lesebefehle. Dazu kommen Befehle, deren Variablennamen zsh anders liest als bash; die rutschten durch, weil die Prüfung von bash-Semantik ausging.
ps fragt jetzt in mehr Schreibweisen nach. pyright gilt nicht länger als lesend. Eine Kurzform einer git clone-Option behielt die Sandbox-Ausnahme eines Musters wie git * aus sandbox.excludedCommands – jetzt wird sie wie die Langform behandelt. Monitor-Befehle in der Sandbox übersprangen unter Auto-Allow die Rückfrage komplett. Und im Plan-Modus konnte der Auto-Modus-Klassifizierer Connector-Tools freigeben, die nicht lesend sind und eine vom Server gesetzte Ask-Policy tragen.
Keine dieser Zeilen kündigt ein neues Feature an. Zusammen sagen sie: Die automatische Freigabe war an acht Stellen großzügiger als die Regeln, die du gesetzt hast.
Zwei Rennen um einen vertauschten Link
Zwei Korrekturen beschreiben denselben Angriff. Beim Lesen eines Bildes unter macOS und Windows konnte eine Datei zurückkommen, die gar nicht freigegeben war – weil der Link mitten im Lesevorgang getauscht wurde. Und eine @-Mention unter dem Read-Block oder --restricted konnte auf demselben Weg eine Datei außerhalb der Arbeitsverzeichnisse lesen.
Im gleichen Block: Eine CLAUDE.md, eine Regel oder eine AGENTS.md, die per Symlink nach außen zeigte, wurde trotz permissions.blockReadsOutsideWorkingDirectories geladen. Und Read-Deny-Regeln griffen nicht bei Bildpfaden, die du in den Prompt ziehst.
Ein Mod konnte das Plugin deiner Firma abschalten
Zwei Zeilen stehen fast nebeneinander und gehören zusammen: Ein selbst installierter Mod konnte ein Plugin der Organisation entladen, und ein selbst installierter Mod konnte dafür sorgen, dass ein Guard der Organisation seine Prüfung überspringt. In beiden Fällen fliegt jetzt der Mod, nicht die Vorgabe.
Dazu passt, was anderswo im Changelog steht: Claude in Chrome lässt sich nicht mehr über die Einstellungsdatei eines Projekts anschalten, und CLAUDE_CODE_DISABLE_ATTACHMENTS kann eine .claude/settings.json im Repo nicht mehr setzen. Ein fremdes Repository darf dir die Werkzeuge nicht mehr umkonfigurieren.
Das WebSearch-Budget füllt sich jetzt nach
Das WebSearch-Budget läuft nicht mehr nach 200 Aufrufen aus, sondern füllt sich nach: 100 pro Stunde, einstellbar über CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR, mit 0 abschaltbar. WebFetch hat lange still alles nach 100.000 Zeichen weggeworfen; jetzt sagt es, wie viel ungelesen blieb, und nimmt ein offset. Und /code-review meldet bei mittlerem Aufwand auch auf Opus 5.5 und Sonnet 5.5 Aufräum- und Konventionsfunde.
Neu sind außerdem claude attach <name> und claude logs <name> – ein Teil des Session-Namens genügt statt der ID.
Die Berechtigungen waren nie so streng, wie sie aussahen
Acht Auto-Freigaben zurückgedreht, drei Symlink-Rennen geschlossen, zwei Wege, über die ein Mod die Vorgaben der Firma aushebeln konnte: Das ist kein Zufallsbündel, das ist eine Durchsicht. Wer in Claude Code deny-Regeln gesetzt und sich darauf verlassen hat, hat bis gestern etwas anderes bekommen als das, was in der Datei stand. Angenehm ist daran, wie unaufgeregt es im Changelog steht. Beruhigend ist es nicht.