mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-02 03:35:09 +02:00
28257b7bc8
CI's "Check VERSION is not stale vs queue" job (job 73105686380) failed with: "VERSION drift: PR #1234 claims v1.15.1.0 but the queue has moved — next free slot is v1.16.1.0." PR #1233 (garrytan/browserharness) entered the queue claiming v1.16.0.0 between when this branch's prior /ship ran and when CI evaluated, so v1.15.1.0 is stale. Rebumping on top. Files updated: - VERSION 1.15.1.0 → 1.16.1.0 - package.json 1.15.1.0 → 1.16.1.0 - CHANGELOG.md heading + Before/After columns 1.15.1.0 → 1.16.1.0 - CHANGELOG removal target (consumers.json + config keys) 1.16.0.0 → 1.17.0.0 - gstack-upgrade/migrations/v1.15.1.0.sh → renamed v1.16.1.0.sh + log prefix - bin/gstack-brain-consumer "DEPRECATED in" + "removal in" 1.15.1.0/1.16.0.0 → 1.16.1.0/1.17.0.0 - bin/gstack-brain-uninstall "since vX.Y.Z.W" 1.15.1.0 → 1.16.1.0 - test/gstack-upgrade-migration-v1_15_1_0.test.ts → renamed v1_16_1_0.test.ts No behavior change. 26/26 wireup + migration tests still pass on the rename. Full bun test suite: exit 0, 0 failures. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
57 lines
2.1 KiB
Bash
Executable File
57 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Migration: v1.16.1.0 — Wire existing brain-sync repos as gbrain federated sources
|
|
#
|
|
# Pre-1.16.1.0 /setup-gbrain wrote ~/.gstack/consumers.json with a placeholder
|
|
# `status: "pending"` and an empty `ingest_url`, expecting a gbrain HTTP
|
|
# /ingest-repo endpoint that never shipped. This migration runs the real
|
|
# wireup (gbrain sources add + worktree + initial sync) for users who
|
|
# already opted into brain-sync but never got the gbrain side connected.
|
|
#
|
|
# Idempotent: safe to re-run. Skips when:
|
|
# - User never opted into brain-sync (gbrain_sync_mode = off or unset)
|
|
# - No ~/.gstack/.git (brain-init never ran)
|
|
# - The wireup helper is missing on disk (broken install — defensive)
|
|
#
|
|
# Failure mode: invokes the helper WITHOUT --strict, so a missing/old gbrain
|
|
# CLI is a benign skip rather than blocking the rest of /gstack-upgrade.
|
|
set -euo pipefail
|
|
|
|
if [ -z "${HOME:-}" ]; then
|
|
echo " [v1.16.1.0] HOME is unset or empty — skipping migration." >&2
|
|
exit 0
|
|
fi
|
|
|
|
SKILLS_DIR="${HOME}/.claude/skills"
|
|
BIN_DIR="${SKILLS_DIR}/gstack/bin"
|
|
CONFIG_BIN="${BIN_DIR}/gstack-config"
|
|
WIREUP_BIN="${BIN_DIR}/gstack-gbrain-source-wireup"
|
|
|
|
# Skip if user never opted into brain-sync.
|
|
SYNC_MODE=""
|
|
if [ -x "$CONFIG_BIN" ]; then
|
|
# Trim whitespace defensively: gstack-config can emit trailing newlines,
|
|
# which would mis-classify "off\n" as a non-empty non-off mode.
|
|
SYNC_MODE=$("$CONFIG_BIN" get gbrain_sync_mode 2>/dev/null | tr -d '[:space:]' || echo "")
|
|
fi
|
|
if [ "$SYNC_MODE" = "off" ] || [ -z "$SYNC_MODE" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
# Skip if no brain-sync git repo exists.
|
|
if [ ! -d "${HOME}/.gstack/.git" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
# Skip if helper missing (defensive — should always be present post-upgrade).
|
|
if [ ! -x "$WIREUP_BIN" ]; then
|
|
echo " [v1.16.1.0] $WIREUP_BIN missing or non-executable — skipping wireup." >&2
|
|
exit 0
|
|
fi
|
|
|
|
echo " [v1.16.1.0] Wiring brain-sync repo into gbrain (federated source + initial sync)..."
|
|
|
|
# No --strict: missing/old gbrain is a benign skip during a batch upgrade.
|
|
"$WIREUP_BIN" || {
|
|
echo " [v1.16.1.0] Wireup exited non-zero — re-run manually with: $WIREUP_BIN" >&2
|
|
}
|