0.66.0
2026-08-24- Hinzugefügt**`nxf next` liest sich wie eine Liste, die ein Mensch überfliegen kann — und lässt sich kürzen, ohne darüber zu schweigen.** Auf einem echten Terminal steht der Ticket-Titel fett: das Einzige, wonach man wirklich sucht, und bisher genauso schwer wie die Id davor. Id und `↳`-Epic-Zeile sind gedämpft, und die Priorität ist entlang einer einzigen Rampe eingefärbt, von Deep Ember über Ember und Flame hinunter zu Graphit — die Gewichtung ist damit sichtbar, ohne das Label zu lesen. Die Rampe bildet auf den kanonischen ORDINALWERT der Priorität ab, nicht auf ihren Namen; sie stimmt deshalb genauso unter einem Plugin, das seine Stufen jetzt/bald/später nennt. `nxf next --limit <n>` zeigt nur den Kopf der Liste und kürzt nie stillschweigend: über einer gekürzten Liste steht `showing 15 of 180`, und unter `--json` verpackt die Option die Datensätze als `{"items": [...], "total": 180}`, damit ein Konsument die echte Gesamtzahl liest, statt sie aus der Länge des Arrays zu erschließen. Das Limit greift zuletzt, nach `--sort` und nach `--label` — eine gefilterte Liste weist also aus, wie viel Ihres Filters Sie sehen. Ohne `--limit` ist der Befehl unverändert vollständig, und seine `--json`-Ausgabe bleibt dasselbe blanke Array. Sonst ändert sich nichts: `--json`, eine Pipe, CI und der `prime`-Kontext eines Agenten bekommen weiterhin dasselbe schlichte ASCII, Byte für Byte, ohne jede Escape-Sequenz, und `NO_COLOR` / `TERM=dumb` behalten das Gewicht und lassen die Farbe weg.
- Hinzugefügt**`nxm guide` — der Speicher hat jetzt eine Dokumentation.** Fünf Anleitungen, auf Deutsch und Englisch, in der Binary mitgeliefert und auf der Doku-Seite veröffentlicht: eine Einführung, die Grundbegriffe (Schlüssel und Auto-Schlüssel, Kategorie/Reichweite/Verweise, die Abrufregel, die entscheidet, wo eine Erinnerung gelesen wird, die Lesereihenfolge, der umkehrbare Grabstein), die vollständige Befehlsreferenz mit jeder `--json`-Form, die `memory_*`-MCP-Werkzeuge samt dem, was `nxs prime` beisteuert, und wie man einen bestehenden Claude-Speicher übernimmt. Bisher hatte `nxm` `--help` und sonst nichts.
- Hinzugefügt**`Engine::withdraw`** — eine einbettende Anwendung kann eine Beauftragung zurücknehmen, die noch hinter der Arbeitskopie geparkt ist; derselbe enge Fall, den `nxc withdraw` abdeckt. Die Naht gab auf einer Sende-Quittung längst `queue_position`/`queued_behind` heraus („nicht gestartet, 3. in der Reihe"), ohne einen Aufruf, der darauf antwortet. Das ist damit geschlossen.
- Geändert**Eine Sitzung kann nicht mehr enden, ohne die geschuldete Antwort zu geben und ohne dass es jemandem auffällt.** Wer ohne Antwort auf seinen Faden endet, bekommt den Zug zurück und wird erinnert — einmal, mit dem konkreten Faden, beiden Arten einen Zug zu beenden, und jeder von ihm beauftragten Runde, die noch offen ist —, bevor der Sidecar in seinem Namen etwas postet. Die meisten antworten dann. Wer erinnert wurde und erneut stumm endet, wird als Eskalation zurückgegeben; `escalated: true` in `nxc status` sagt dem Aufrufer damit, dass es kein Ergebnis gibt und jemand entscheiden muss. Eine Eskalation ist jetzt in dem Text erkennbar, den die empfangende Sitzung ZUERST liest — auf allen drei Wegen, die sie nehmen kann (Kanal-Durchreichung, 1:1-Wiederaufnahme, Quorum-Weckruf): was es ist, dass die Arbeitskopie währenddessen gehalten wird, und was erwartet wird. Das Kennzeichen allein half nicht, denn ein Agent liest die Nachricht, die ihn geweckt hat, nicht `nxc status`. Und jede Sitzung, die eine Antwort schuldet, erfährt in ihrem Systemprompt, dass ihr Zug auf genau eine von zwei Arten enden muss: `nxc reply --thread <id> "<Ergebnis>"` oder `nxc reply --thread <id> --escalate "<was im Weg steht>"`. Diese Pflicht erreicht auch eine Persona, die `prime: false` deklariert — eine Deklaration kann die eine Regel, auf die sich die Maschinerie verlässt, also nicht weglassen.
- Geändert**Das Board sagt, worauf es wartet.** `nxc status` bekommt zwei Kennzeichen am Vorgang: `needs_decision` (irgendwo unter dieser Wurzel wurde eine Aufgabe zurückgegeben und niemand hat sie aufgenommen — neben `awaiting_human` zu lesen, das genauso aussieht und das Gegenteil bedeutet) und `holds_working_tree` (irgendwo darunter wird die Arbeitskopie gehalten, Sie wissen also, ob Sie überhaupt nachsehen müssen). `nxc tick` unterscheidet jetzt eine erledigte Runde, deren einziger verbleibender Blocker eine lebende Sitzung ist, und meldet `waiting_for_a_session` statt `not_due` — der Unterschied zählt, denn genau das prüft keine Uhr nach, und dieses Verb ist der Weg heraus. Und eine Runde, deren sämtliche Beauftragungen zurückgenommen wurden, zählt nicht mehr als offener Vorgang: `nxc withdraw` entlastet jetzt auch den genannten Faden, statt ihn auf einen Betreuer warten zu lassen, dem man gerade die Runde weggenommen hat.
- Behoben**Ein Schritt, der die Arbeitskopie exklusiv beansprucht, endet jetzt mit dem Prozess seiner Sitzung, nicht mit dem Eintreffen seiner Antwort.** Ein Mitglied eines `flow: sequential`-Kanals, das geantwortet hat und weiterarbeitet, ließ bisher den nächsten Schritt in dieselbe Arbeitskopie starten: in einem echten Lauf gemessen, antwortete ein Coder um 00:16:33 und editierte bis 00:34:27 weiter, während der nächste Schritt seit 00:16:36 lief. Sitzungen melden ihr Ende jetzt selbst — `nxc session ended`, aufgerufen vom Abbau des Agent-Sidecars, und `Engine::session_ended` für einen Wirt mit eigener Laufzeitumgebung —, und wo diese Meldung nie eintrifft, antwortet die Prozessprüfung des Workers beim nächsten Mal, wenn überhaupt jemand fragt. **Keine Uhr prüft das nach:** das deklarierte `timeout:` eines Kanals ist eine Frist für eine *Antwort*, und wer geantwortet hat, hat geantwortet. Geht die Meldung verloren (ein vor dem Abbau getöteter Sidecar, ein älteres `nxc`, eine Wirtslaufzeit, die `Engine::session_ended` nie verdrahtet), wartet die Runde, bis jemand `nxc tick --thread <id>` ausführt — was jetzt genau das sagt, statt „nichts zu tun". Dieser Abbau ist selbst zeitlich begrenzt: eine Erinnerungsrunde von fünf Minuten und ein Zeitlimit von dreißig Sekunden auf jeden `nxc`-Aufruf, den er macht. Denn er läuft in genau dem Prozess, auf dessen Ende ein exklusiver Kanal wartet — ein Aufruf, der nie zurückkommt, hält eine Arbeitskopie und nicht bloß einen Prozess. Kanäle ohne exklusiven Anspruch auf die Arbeitskopie sind unverändert.
- Geändert**Für alle, die nexus-flow als Rust-Bibliothek einbetten: dieser Sprung ist rein additiv — neuen Tag pinnen, sonst nichts ändern.** Über die ganze Spanne haben die drei konsumierten Oberflächen (`nexus-flow-facade`, `nexus-chat`, `nexus-memory`) nur hinzugewonnen: `Engine::withdraw` nimmt eine Beauftragung zurück, die noch hinter der Arbeitskopie geparkt ist; `Engine::session_ended` lässt einen Wirt mit eigener Agent-Laufzeit das Ende einer Sitzung melden, mit `Worker::session_is_running` als Rückfallantwort, wo diese Meldung ausbleibt; `StatusOperation` trägt die zwei neuen Kennzeichen am Vorgang; und die Leseschicht von flow bekam `truncate_next` samt seinem Ergebnis `NextPage` — der eine Mechanismus hinter `nxf next --limit` und der Kürzung in `prime`. Nichts wurde entfernt, umbenannt oder umtypisiert; `cargo-semver-checks` bestätigt das gegen v0.63.0 für alle drei Pakete. Das eine, was Sie bei der Gelegenheit verdrahten sollten, ist `Engine::session_ended`: ohne es fällt ein Kanalschritt mit exklusivem Anspruch auf die Arbeitskopie auf die Prozessprüfung zurück und wartet darauf, dass jemand `nxc tick` ausführt. Die genaue Form jedes einzelnen Schritts steht in den Einträgen je Version auf der Releases-Seite.