Graduierung eines Labs-Features
Die Graduierung entfernt den Labs-Schalter eines Features und macht es zu einem normalen Feature. Zwei separate Entscheidungen, die vom Eigentümer vor jeglichem Code getroffen werden:
- Labs verlassen: Das Feature erhält einen permanenten Platz (eigene Einstellungen oder Plugin-Seite) und verliert die Labs-Bezeichnung.
- Standard: Standardmäßig aktiviert oder weiterhin standardmäßig deaktiviert.
Sie sind unabhängig. #197029 hat zuerst beides versucht, dann nur das erste ausgeliefert: Advisor hat Labs verlassen, blieb aber deaktiviert. Frage, was gewünscht wird; gehe nicht davon aus, dass „Graduierung“ „standardmäßig aktiviert“ bedeutet.
Präzedenzfälle: Swarm standardmäßig aktiviert (#136514), Tool Search standardmäßig aktiviert (#154068), native Plugin-UI ohne Labs-Opt-in aktiviert (de50262a1f96), Labs-Features in die Einstellungen verschoben (#145460), Advisor hat Labs verlassen und ist weiterhin deaktiviert (#197029).
Vor dem PR
- Messe Kosten oder Risiko auf dem echten Pfad, wenn das Feature Geld oder Tokens kostet oder das Verhalten für Benutzer ändert, die nie opt-in waren. Aktuelle Zahlen aus Mocks oder Unit-Tests sind kein Beleg. #197074 hat eine Cache-Kosten-Behauptung aus einem Mock zusammengeführt, die von Live-Providern widerlegt wurde, und wurde in #197175 rückgängig gemacht. Verwende die Live-Messung, die die eigenen PRs des Features bereits etabliert haben, und füge die Zahlen in den PR-Body ein.
- Behebe zuerst bekannte Fehler. Die Graduierung von Advisor wartete auf seine Fork-Cache-Fixes (#197203, #197223, #197224, #197226), weil die standardmäßige Aktivierung jeden Benutzer mit den ungecachten Kosten belastet hätte.
- Finde den verbleibenden Aktivierungspfad. Nachdem die Labs-Zeile entfernt wurde, müssen Benutzer das Feature weiterhin über die UI aktivieren können. Ein gebündeltes Plugin verwendet Einstellungen → Plugins → → Aktivieren; ein Kern-Feature benötigt seine Einstellungsseite. Füge einen Schalter nur hinzu, wenn keiner existiert.
Die Änderung
- Standard. Ändere ihn nur, wenn der Eigentümer die standardmäßige Aktivierung gewählt hat:
enabledByDefaulteines gebündelten Plugins inopenclaw.plugin.jsonoder die Kern-Konfigurationsvorgabe. Ein bestehender expliziterfalse(oder der Opt-out-Wert des Features) muss weiterhin funktionieren, und ein bestehendertruemuss aktiviert bleiben. Füge niemals eine Migration hinzu, die gespeicherte Konfiguration überschreibt, um die Wahl eines Benutzers zu ändern. - Labs. Entferne den Eintrag aus
ui/src/pages/labs/labs-registry.tsund alles, was nur von ihm verwendet wurde:labs-page.tsx-Zeilen oder -Slots,labs-feature-state.ts-Einträge, Zeichenketten und Tests. - Dokumentation. Verschiebe den Abschnitt des Features aus
docs/concepts/experimental-features.mdauf eine eigene Referenzseite. Hinterlasse dort einen einseitigen Hinweis mit dem alten Anker, der besagt, dass es graduiert wurde, seine Standardeinstellung und wo es aktiviert werden kann. Aktualisiere die Liste „Labs umfasst ...“ und die Tabelle „Aktuell dokumentierte Flags“. - Formulierung. Entferne „Experimentell“ und „OpenClaw Labs“ aus der Manifest-Beschreibung, Paketbeschreibung, README, Plugin-Zusammenfassung und allen benutzer- oder modellbezogenen Texten wie Prompt-Präfixen.
- Generierte Dateien. Generiere neu, niemals per Hand zusammenführen:
pnpm config:docs:gen,pnpm plugins:inventory:gen. Control UI-Lokalisierungsartefakte (*.meta.json,*.tm.jsonl,catalog-fallbacks.json) bleiben gemäßui/AGENTS.mdaußerhalb des PRs; der Lokalisierungs-Refresh-Workflow aktualisiert sie.pnpm ui:i18n:verifymuss bestehen. - Upgrade-Nachweis. Nur bei einer Änderung der Standardeinstellung: Weise bei einem echten Upgrade nach, dass kein gespeicherter Eintrag die neue Standardeinstellung erhält, eine explizite Deaktivierung bleibt deaktiviert und eine explizite Aktivierung bleibt aktiviert. Eine Standardeinstellung, die gleich bleibt, benötigt keinen Upgrade-Fall; #197029 hat den Fall entfernt, den es für die standardmäßige Aktivierung gebaut hatte.
Nachweise im PR
- Control UI-Screenshots, vor dem Hochladen auf private Daten überprüft: Labs vorher und nachher, und der Aktivierungspfad funktioniert auf einem echten Gateway. Füge sie mit
gh pr comment <n> --attach '<file>#<alt text>'an. - Der Aktivierungspfad Ende-zu-Ende getestet: Der Schalter speichert die erwartete Konfiguration und wird ohne Neustart wirksam.
- Die Tests des Features und die Tests der Labs-Seite bestehen; die Testzeilen-Ratsche wächst nicht.
- Die Behauptungen in der Dokumentation stimmen mit dem Code überein. ClawSweeper hat bei Advisor die Aussage „höchstens eine Überprüfung pro
everyMinutes“ erwischt, die mit aktiviertemeveryToolCallsfalsch war.
Nach dem Merge
Der neue Ort erscheint nur in Builds, die den Merge enthalten. Teile den Benutzern den genauen Pfad mit und dass ältere Builds weiterhin den Labs-Schalter zeigen.