mirror of
https://github.com/gnekt/My-Brain-Is-Full-Crew.git
synced 2026-09-07 22:36:26 +00:00
Fix updateme.sh: deprecate stale agents before rewriting manifest
The manifest was being truncated and rewritten before the deprecation loop ran, so removed core agents were no longer in the manifest and got skipped as "custom". Now: read old manifest -> deprecate -> copy new agents -> rewrite manifest.
This commit is contained in:
@@ -61,29 +61,10 @@ if [[ ! "$UPDATE_ANSWER" =~ ^[Cc]$ ]]; then
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# ── Update agents ───────────────────────────────────────────────────────────
|
||||
AGENT_COUNT=0
|
||||
: > "$VAULT_DIR/.claude/agents/.core-manifest"
|
||||
for agent in "$REPO_DIR/agents/"*.md; do
|
||||
name="$(basename "$agent")"
|
||||
basename "$agent" >> "$VAULT_DIR/.claude/agents/.core-manifest"
|
||||
if [[ -f "$VAULT_DIR/.claude/agents/$name" ]]; then
|
||||
if ! diff -q "$agent" "$VAULT_DIR/.claude/agents/$name" >/dev/null 2>&1; then
|
||||
cp "$agent" "$VAULT_DIR/.claude/agents/"
|
||||
info "Updated $name"
|
||||
AGENT_COUNT=$((AGENT_COUNT + 1))
|
||||
fi
|
||||
else
|
||||
cp "$agent" "$VAULT_DIR/.claude/agents/"
|
||||
info "Added $name (new agent)"
|
||||
AGENT_COUNT=$((AGENT_COUNT + 1))
|
||||
fi
|
||||
done
|
||||
|
||||
# ── Deprecate removed core agents ─────────────────────────────────────────
|
||||
# Only deprecate agents that were previously installed as core agents.
|
||||
# The .core-manifest file (written by launchme/updateme) records which files
|
||||
# are core. Custom agents are never in the manifest, so they're never touched.
|
||||
# Read the OLD manifest first (before rewriting it) so we know which files
|
||||
# were previously installed as core. Agents removed from the repo will still
|
||||
# be in the old manifest and can be correctly deprecated.
|
||||
MANIFEST="$VAULT_DIR/.claude/agents/.core-manifest"
|
||||
DEPRECATED_COUNT=0
|
||||
for vault_agent in "$VAULT_DIR/.claude/agents/"*.md; do
|
||||
@@ -112,6 +93,25 @@ for vault_agent in "$VAULT_DIR/.claude/agents/"*.md; do
|
||||
fi
|
||||
done
|
||||
|
||||
# ── Update agents and rewrite manifest ────────────────────────────────────
|
||||
AGENT_COUNT=0
|
||||
: > "$VAULT_DIR/.claude/agents/.core-manifest"
|
||||
for agent in "$REPO_DIR/agents/"*.md; do
|
||||
name="$(basename "$agent")"
|
||||
basename "$agent" >> "$VAULT_DIR/.claude/agents/.core-manifest"
|
||||
if [[ -f "$VAULT_DIR/.claude/agents/$name" ]]; then
|
||||
if ! diff -q "$agent" "$VAULT_DIR/.claude/agents/$name" >/dev/null 2>&1; then
|
||||
cp "$agent" "$VAULT_DIR/.claude/agents/"
|
||||
info "Updated $name"
|
||||
AGENT_COUNT=$((AGENT_COUNT + 1))
|
||||
fi
|
||||
else
|
||||
cp "$agent" "$VAULT_DIR/.claude/agents/"
|
||||
info "Added $name (new agent)"
|
||||
AGENT_COUNT=$((AGENT_COUNT + 1))
|
||||
fi
|
||||
done
|
||||
|
||||
# ── Update references ───────────────────────────────────────────────────────
|
||||
REF_COUNT=0
|
||||
mkdir -p "$VAULT_DIR/.claude/references"
|
||||
|
||||
Reference in New Issue
Block a user