docs(plan): close the confirmation-pass findings on the higgsfield plan

This commit is contained in:
bastien
2026-09-30 16:00:32 +02:00
parent 1f4bd4a75a
commit 65045f6abd
5 changed files with 56 additions and 36 deletions
@@ -45,9 +45,12 @@ higgsfield_sync_skills() {
local dest="$1/skills-external" stage count=0
mkdir -p "$dest" || return 1
stage="$(mktemp -d "$dest/.higgsfield-stage.XXXXXX")" || return 1
# No credential prompt: a private or deleted upstream must fail, not hang.
if GIT_TERMINAL_PROMPT=0 git clone --quiet --depth 1 \
"$HIGGSFIELD_SKILLS_URL" "$stage/src" >/dev/null 2>&1; then
# No credential prompt of any kind: a private or deleted upstream must
# fail at once, not wait on a terminal, an askpass program (an editor's
# terminal exports one) or a credential helper.
if GIT_TERMINAL_PROMPT=0 GIT_ASKPASS='' SSH_ASKPASS='' \
git -c credential.helper= -c core.askPass= clone --quiet --depth 1 \
"$HIGGSFIELD_SKILLS_URL" "$stage/src" </dev/null >/dev/null 2>&1; then
count="$(_higgsfield_adopt "$stage/src" "$dest")"
fi
rm -rf "${stage:?}"
@@ -1,18 +1,21 @@
--- a/lib/tests/higgsfield.test.sh
+++ b/lib/tests/higgsfield.test.sh
@@ -336,5 +336,16 @@
@@ -336,5 +336,19 @@
"$(yn test "$(count install-plugins.sh '[ -t 0 ]')" -ge 3)" yes
verdict INSTALL_WIRING
+# update-all.sh: refresh before the 21st block and before the pins re-apply,
+# and the updated CLI is proven by the probe.
+# and the updated CLI is proven by the probe, after the npm call.
+# shellcheck disable=SC2016 # a literal to grep for, not an expansion
+NPM_UP='npm install -g "$HF_PKG"'
+sync_ln="$(ln_last update-all.sh 'higgsfield_sync_skills')"
+expect before-21st "$(yn test "$sync_ln" -lt \
+ "$(ln_first update-all.sh '7.4. Update the 21st.dev')")" yes
+expect before-pins "$(yn test "$sync_ln" -lt \
+ "$(ln_last update-all.sh "$PINS")")" yes
+expect probe-after-npm \
+ "$(yn test "$(count update-all.sh 'if higgsfield_cli_ok')" -ge 1)" yes
+expect probe-after-npm "$(yn test \
+ "$(ln_first update-all.sh 'higgsfield_cli_ok')" -gt \
+ "$(ln_last update-all.sh "$NPM_UP")")" yes
+verdict UPDATE_WIRING
+
# ── tally ───────────────────────────────────────────────────
@@ -1,6 +1,6 @@
--- a/update-all.sh
+++ b/update-all.sh
@@ -465,6 +465,45 @@
@@ -465,6 +465,48 @@
fi
fi
@@ -28,13 +28,16 @@
+ HF_PKG="@higgsfield/cli@latest"
+ [ -n "$HF_VER" ] && [ "$HF_VER" != "latest" ] \
+ && HF_PKG="@higgsfield/cli@${HF_VER}"
+ npm install -g "$HF_PKG" 2>/dev/null || true
+ # The probe, not npm's exit status: an update that skips the package's
+ # postinstall script leaves the shim on PATH with no binary behind it.
+ if higgsfield_cli_ok; then
+ HF_NPM_OK=true
+ npm install -g "$HF_PKG" 2>/dev/null || HF_NPM_OK=false
+ # The probe first, then npm's status: an update that skips the package's
+ # postinstall script exits 0 and leaves the shim with no binary behind it.
+ if ! higgsfield_cli_ok; then
+ warn "Higgsfield CLI does not answer after the update — run: npm install -g --allow-scripts=@higgsfield/cli @higgsfield/cli"
+ elif [ "$HF_NPM_OK" = true ]; then
+ ok "Higgsfield CLI updated (${HF_VER:-latest})"
+ else
+ warn "Higgsfield CLI does not answer after the update — run: npm install -g --allow-scripts=@higgsfield/cli @higgsfield/cli"
+ warn "Higgsfield CLI update failed — existing binary kept"
+ fi
+ if HF_N=$(higgsfield_sync_skills "$REPO"); then
+ ok "Higgsfield skill pack refreshed ($HF_N skills)"
@@ -9,14 +9,15 @@
echo ""
echo "═══ claude-config doctor (v${VERSION}) ═══"
@@ -246,6 +248,22 @@
@@ -246,6 +248,23 @@
info "Graphifyy not installed (optional — codebase knowledge graph: pipx install graphifyy)"
fi
+# Higgsfield is optional and off by default: info level, never a warning.
+# The probe, not `command -v`: the npm shim can outlive its binary.
+if higgsfield_cli_ok; then
+ HF_VERSION="$(higgsfield version 2>/dev/null | awk 'NR==1 {print $2}')"
+ HF_VERSION="$(higgsfield version </dev/null 2>/dev/null \
+ | awk 'NR==1 {print $2}' || true)"
+ pass "Higgsfield CLI installed (${HF_VERSION:-version unknown})"
+ if higgsfield_signed_in; then
+ pass "Higgsfield session active"