Anthropic hat gestern Abend um 17:01 UTC Claude Code 2.1.281 veröffentlicht, keine 24 Stunden nach 2.1.280. Das Changelog ist eins der längsten der letzten Wochen, und ganz oben in der Fix-Liste steht etwas, das man sich merken sollte.
Der Löschbefehl, bei dem die Rückfrage ausblieb
Ein rekursives Löschen, dessen Ziel nur aus einer Befehlsersetzung kommt — rm -rf "$(pwd)" ist das Musterbeispiel —, lief im Auto-Modus und unter --dangerously-skip-permissions ohne Rückfrage durch. Claude Code fragt jetzt auch dann, wenn eine Bash-Allow-Regel greift. Wer das alte Verhalten braucht, setzt CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1.
Zwei weitere Fixes derselben Klasse: Eine Berechtigungsregel mit einem NUL-Byte wurde zu einem Platzhalter aufgeblasen und passte damit auf alles; sie passt jetzt auf nichts. Und Berechtigungsdialoge lasen Pfade unter macOS-Sonderverzeichnissen wie /.vol, /.nofollow oder /.resolve schon vor der Freigabe — was bis auf ein Netzlaufwerk reichen kann.
Dazu kommt: claude --bg startete eine Hintergrundsitzung samt Projekt-Hooks in einem Verzeichnis, das die Workspace-Trust-Abfrage nie durchlaufen hatte. Jetzt fragt es vorher oder bricht ab, wenn es nicht interaktiv läuft.
Das Gateway wird ernsthaft unternehmenstauglich
Der zweite Block dreht sich um das Claude Apps Gateway. Bedrock-Upstreams können jetzt assume_role tragen: Das Gateway ruft Bedrock als IAM-Rolle auf, die es sich über STS holt, bei Bedarf in einem anderen AWS-Konto, wahlweise mit einer eigenen Sitzung pro Entwickler. Dazu kommt guardrail: {id, version}, mit dem ein Amazon-Bedrock-Guardrail auf jede Anfrage durch diesen Upstream angewendet wird. Entweder für alle Bedrock-Upstreams oder für keinen.
telemetry.resource_attributes hängt feste Labels an die Telemetrie von Claude Desktop und /login-Sitzungen. Und die desktop-Policy-Blöcke verstehen neuere Desktop-Schlüssel, darunter blockReadsOutsideWorkingDirectories und disableBypassPermissionsMode.
Kleinigkeiten, die im Alltag auffallen
"attribution": false in der settings.json schaltet sämtliche Commit- und PR-Signaturen ab. Ein Hinweis für geteilte Konfigurationen: Ältere CLI-Versionen überspringen eine Settings-Datei, die diesen Schlüssel enthält — in solchen Dateien also besser die Objektform behalten.
/insights schätzt jetzt, wie viele Berechtigungsabfragen der Auto-Modus in deinen letzten Sitzungen hätte übernehmen können. MCP-Server können über URL-Mode-Elicitation einen browserbasierten Ablauf anstoßen, ohne dass ein Wartedialog stehen bleibt, wenn der Server keine Rückmeldung geben kann. Und claude plugin validate prüft jetzt auch MCP: Es meldet .mcp.json-Einträge, die beim Laden stillschweigend fallengelassen würden, nicht deklarierte ${user_config.*}-Verweise und unsichere URLs.
Der Rest ist ein Release über lange Sitzungen
Zählt man die Fixes durch, geht es überwiegend um eine Sache: Sitzungen, die wieder aufgenommen werden, und um den Prompt-Cache, der dabei kaputtging. Wiederaufgenommene Sitzungen schickten frühere Züge in veränderter Form zurück, wodurch die API das vorherige Reasoning verwerfen konnte. Sehr große Sitzungen stellten manchmal nur die letzten Nachrichten wieder her. Eine Sitzung, die während eines Tool-Aufrufs endete, ließ Claude im Unklaren darüber, was aus dem Aufruf geworden war. Ein Neustart mitten in einer offenen Berechtigungsabfrage zerstörte den Cache ab diesem Punkt.
Dazu ein ganzer Block über Proxys und Gateways: abgeschnittene Antworten, die als vollständig angezeigt wurden, doppelt ausgeführte Tool-Aufrufe durch duplizierte Stream-Ereignisse, verlorene Stop-Gründe, Content block not found bei weggefallenen Stream-Ereignissen.
Das liest sich unspektakulär, trifft aber genau die Arbeitsweise, die Anthropic mit Opus 5.5 gerade bewirbt: Agenten, die stundenlang durchlaufen. Eine Sitzung, die nach achtzehn Stunden beim Fortsetzen ihre eigene Vorgeschichte verliert, macht das Modell darunter unwichtig.