Version 2.1.288 ist am 2. Oktober um 18:30 UTC in der npm-Registry gelandet. Der Changelog ist lang, und die Mehrzahl der Zeilen beginnt mit «Fixed». 2.1.287 vom Vortag war das Mods-Release; dieses hier räumt dahinter auf und legt drei Dinge nach, die im Alltag auffallen.
Der Prompt, den du gerade weggeworfen hast
Drücke Strg+C, der Prompt ist leer, dann Pfeil nach oben – und der Entwurf ist wieder da, samt eingefügtem Text und Bildern. Eine kleine Zeile, die wahrscheinlich mehr Leute freut als alles andere in diesem Release.
Dazu zwei weitere Bedienungszeilen: Strg+F findet eine Sitzung nach Namen, Alt+Pfeil hoch/runter springt in der Agenten-Ansicht zwischen Gruppen. Beides und auch das Umbenennen lassen sich in der keybindings.json neu belegen.
/code-review mit eigener Obergrenze
--max-findings <n>|all meldet mehr oder weniger Fundstellen als das übliche Limit. Die Wahl bleibt bestehen, bis du --max-findings default übergibst. Wer schon mal einen Review abgebrochen hat, weil die Liste bei zehn Einträgen aufhörte und die interessanten danach kamen, kennt den Grund.
Für Mod-Autoren kommt $.ui.selection() dazu: der Text, den du im Vollbildmodus zuletzt markiert hast, und bei einer Markierung innerhalb einer Transkriptzeile auch diese Zeile.
Abbrüche mitten in der Antwort
Die wichtigste Reparatur betrifft Sitzungen, die niemand beaufsichtigt. API-Zeitüberschreitungen mitten in der Antwort haben den Turn scheitern lassen; nicht-interaktive Sitzungen und Subagenten machen jetzt an der Teilantwort weiter, und reine Thinking-Antworten werden wiederholt. Dazu:
- Lange Unterhaltungen scheiterten mit «Prompt is too long», statt automatisch zu komprimieren, wenn die letzte Antwort null Token-Verbrauch gemeldet hat.
--resumehat manchmal Dateien und anderen Kontext verloren, den eine Komprimierung gerade wiederhergestellt hatte.- Eine fortgesetzte Sitzung hat gelegentlich die letzte Antwort eines Turns nicht gespeichert, sodass der nächste
--resumeden Prompt unbeantwortet zeigte. - Wer eine auf 2.1.286 oder früher begonnene Unterhaltung fortsetzt, hat das frühere Thinking des Modells verloren.
- Unbeaufsichtigte Sitzungen mit
CLAUDE_CODE_RETRY_WATCHDOGhaben nach einem Abbruch sehr langer Antwortströme stundenlang weiter versucht. Jetzt wird neu gestreamt und nach drei Zeitüberschreitungen aufgegeben.
Zwei Sicherheitszeilen, die zusammen gelesen werden wollen
Ein gefährliches rm – etwa auf / oder das Home-Verzeichnis – ist innerhalb eines bash -c- oder sh -c-Skripts ohne Rückfrage durchgelaufen, im bypassPermissions-Modus oder unter einer Shell-Allow-Regel. In 2.1.287 stand eine Zeile derselben Klasse: Dort verlor dasselbe rm seine Immer-fragen-Absicherung, wenn der Befehl zusätzlich in einen ~- oder Wildcard-Pfad umleitete.
Dazu zwei Hook-Zeilen: PreToolUse- und PermissionRequest-Hooks wurden übersprungen, wenn das Zuordnen scheiterte oder die Werkzeug-Eingabe nicht als JSON serialisierbar war – der Aufruf wird jetzt geblockt statt durchgelassen. Und die Berechtigungsprüfung des Bash-Werkzeugs fragt jetzt vor einer BASHPID-Zuweisung nach, deren Wert die Shell als Arithmetik auswerten würde.
Für Plugin- und Mod-Autoren
Sieben Zeilen betreffen Plugins. Ein tool.call-Hook eines Plugins hat Bash scheitern lassen und Dateisuchen im falschen Ordner suchen lassen, wenn der Subagent in einem Worktree lief. git-subdir-Installationen scheiterten auf älterem Git vor 2.39, also etwa auf Ubuntu 22.04. Plugin-LSP-Server bekamen in initializationOptions und settings wörtliche ${user_config.*}- und ${CLAUDE_PLUGIN_ROOT}-Platzhalter statt der eingesetzten Werte. Und Hintergrundsitzungen endeten, wenn ein Plugin neu geladen oder abgeschaltet wurde, während einer seiner Timer noch lief.
Ein Release, das die Mods-Woche aufräumt
Interessant ist die Verteilung. Ein Feature-Release am 1. Oktober, und einen Tag später vier Dutzend Fehlerbehebungen, von denen viele die Mod- und Plugin-Schnittstelle betreffen, die am Vortag erst aufgegangen ist. Das ist der Preis dafür, eine Erweiterungsschnittstelle so tief anzusetzen: Jede Stelle, an der ein Mod eingreifen darf, ist auch eine Stelle, an der etwas brechen kann.
Die beiden rm-Zeilen an zwei aufeinanderfolgenden Tagen sagen dasselbe von der anderen Seite. Die Absicherung existiert, und sie hing an der genauen Form des Befehls. Wer bypassPermissions benutzt, sollte das als Erinnerung lesen, dass dieser Modus heißt, was er heißt.
Quellen: