Dokumentation durchsuchen

update-check

npm fragen, ob es ein neueres BMAD+-Release gibt und ob deine Richtlinie es zuließe, ohne etwas zu ändern: Optionen, Status, Gründe, JSON-Felder, Cache und Offline-Verhalten.

Auf dieser Seite
  1. Syntax
  2. Was gelesen und geschrieben wird
  3. Status und Gründe
  4. Exit-Codes
  5. Ausgabe
  6. Fehler und was zu tun ist
  7. Beispiele

update-check sagt dir, wo dein Projekt gegenüber dem neuesten veröffentlichten Release steht. Es vergleicht drei Dinge: die im Projekt installierte Version, die Version des laufenden Pakets und die neueste auf deinem Update-Kanal. Es berichtet nur. Nichts wird heruntergeladen, installiert oder geschrieben, außer einer kleinen Cache-Datei. Assistenten führen es einmal pro Sitzung aus, weil die erzeugten Anweisungsdateien es verlangen.

Syntax

Im Terminal deines Projekts
npx bmad-plus update-check [-d <path>] [--refresh] [--offline] [--json]

Optionen von update-check
OptionWas sie tut
-d, --directory <path>Zu prüfendes Projekt (Standard: aktueller Ordner).
--refreshDen 24-Stunden-Cache und die einstündige Wartezeit nach einem Fehler ignorieren und npm jetzt fragen.
--offlineKeine Netzwerkanfrage stellen; nur den lokalen Stand melden (Status unknown, Grund offline, oder das veraltete Cache-Ziel).
--jsonEine JSON-Zeile statt zwei Textzeilen ausgeben.

Was gelesen und geschrieben wird

  • Liest _bmad/.bmad-plus-install.json (installierte Version), _bmad/update-policy.json (Modus, Kanal, Bereich) und für das Bereitschaftsurteil das Besitzinventar.
  • Kontaktiert npm nur, wenn der Richtlinienmodus nicht off ist, du nicht --offline bist und kein frischer Cache vorliegt. Die Abfrage führt npm view bmad-plus@<channel> version engines --json gegen die offizielle Registry https://registry.npmjs.org/ aus, mit 4 Sekunden Timeout, ohne Wiederholungen und einer Obergrenze von 6 Sekunden.
  • Schreibt .bmad/update-check.json: das gesehene Release samt Zeit (24 Stunden gültig) oder die Zeit des letzten Fehlers (danach wartet es eine Stunde, außer bei --refresh).
  • Es ist der einzige BMAD+-Befehl, der dafür da ist, npm zu fragen (update --latest fragt ebenfalls npm und lädt das Ziel dann über npm exec). Um die Abfragen ganz abzustellen: update-policy --mode off.

Status und Gründe

Die Textausgabe besteht aus zwei Zeilen. Die erste lautet Installed: <v>; running: <v>; channel <name>: <target>, mit unknown für einen fehlenden Wert. Die zweite ist <status>: <reason>, gefolgt von (cached result is stale), wenn das Ziel aus einem abgelaufenen Cache stammt.

Status
StatusBedeutung
update-availableDer Kanal führt eine neuere Version als die installierte. Der Grund sagt, ob sie angewandt werden darf (siehe unten).
currentInstallierte Version entspricht der Kanalversion (Grund installed-matches-channel).
aheadDie installierte Version ist neuer als der Kanal (Grund installed-ahead-of-channel).
offDer Richtlinienmodus ist off (Grund updates-disabled). npm wurde nicht kontaktiert.
unknownKeine Antwort: offline, registry-retry-backoff (jüngster Fehler) oder registry-unavailable.
invalid-runtime, invalid-installation, invalid-policyLaufende Version oder Uhr unbrauchbar; kein gültiges Manifest; die Richtliniendatei ist ungültig. Exit-Code 1.

Bei update-available erklärt der Grund, was zwischen dir und dem Update steht. ready-for-authorized-update heißt: Die Richtlinie erlaubt es und die Dateien sind unverändert, canAutoApply ist wahr. Weitere Gründe: approval-required (Modus notify, ein Mensch muss freigeben), outside-allowed-range, prerelease-not-allowed, incompatible-node-version, Complete file ownership inventory is required. (Altinstallation), Local changes or an active update require manual review., ownership-readiness-failed.

Die JSON-Zeile enthält: schemaVersion, installedVersion, runningVersion, latestVersion (nur auf dem Kanal latest), targetVersion, channel, status, checkedAt, source (registry, cache, stale-cache oder none), stale, updateAvailable, releaseEligible, versionEligible, canAutoApply, engineCompatible, engines und reason.

Exit-Codes

Exit-Codes von update-check
CodeBedeutung
0Jeder andere Status, auch unknown und off: npm nicht erreichen zu können ist kein Fehler.
1Der Status beginnt mit invalid-.

Ausgabe

Die Abnahmeläufe haben diesen Befehl nicht ausgeführt; diese Mitschriften sind daher aus den Ausgabevorlagen des Codes zusammengesetzt (Versionen sind Platzhalter) und als simuliert gekennzeichnet.

Ein neueres Release, das die Richtlinie nicht selbst anwendetSimuliert
npx bmad-plus update-check
Installed: <old>; running: <old>; channel latest: <new>
update-available: approval-required

Beispielhafter Ablauf, nicht bei einem echten Lauf aufgezeichnet. Quelle: tools/cli/commands/update-check.js Zeilen 32-37; tools/cli/lib/update-check.js Zeilen 209-231

OfflineSimuliert
npx bmad-plus update-check --offline --json
{"schemaVersion":1,"installedVersion":"<old>","runningVersion":"<old>","latestVersion":null,"targetVersion":null,"channel":"latest","status":"unknown","checkedAt":null,"source":"none","stale":false,"updateAvailable":null,"releaseEligible":false,"versionEligible":false,"canAutoApply":false,"engineCompatible":null,"engines":{},"reason":"offline"}
Exit-Code 0. Ein Assistent versteht das als „Aufgabe fortsetzen“ und behauptet nie, die Version sei aktuell.

Beispielhafter Ablauf, nicht bei einem echten Lauf aufgezeichnet. Quelle: tools/cli/lib/update-check.js Zeilen 161-163

Fehler und was zu tun ist

Meldungen von update-check
Meldung oder GrundUrsacheWas tun
No BMAD+ installation found in <dir> (missing _bmad/.bmad-plus-install.json). (auf dem Fehlerstrom)Falscher Ordner oder nicht installiert; der Status ist invalid-installation.Aus dem Projekt starten oder --directory angeben.
unknown: registry-unavailablenpm war innerhalb der Frist nicht erreichbar.Später erneut versuchen oder --refresh. Offline-Rechner können es ignorieren.
unknown: registry-retry-backoffVor weniger als einer Stunde wurde ein Fehler vermerkt.Mit --refresh jetzt erneut fragen.
invalid-policy: unreadable-or-invalid-update-policy_bmad/update-policy.json ist ungültig.Datei korrigieren oder löschen oder mit update-policy neu schreiben.
update-available: incompatible-node-versionDas neue Release braucht ein neueres Node.js als deins.Node.js aktualisieren, dann erneut prüfen.

Beispiele

Für ein Skript: nur handeln, wenn ein automatisches Update erlaubt ist
npx bmad-plus update-check --json --refresh

Siehe auch