workstation: stop install_memory aborting the reconcile under set -e
install_memory (added in 44562535) ended with `[[ -d <plugin-dir> ]] && rm && log`
and guarded a chmod with a bare `[[ -f settings ]] && chmod`. When the plugin dir
or settings file is absent — the normal case for users who never had the
claude-memory plugin — those return non-zero, and under `set -euo pipefail` the
function returns non-zero and kills the whole hourly reconcile after the FIRST
user, before the rest are processed.
It never fired before because the rollout was committed but the deployed
/usr/local/bin/t3-provision-users was never updated, so install_memory had never
run. On first real run it aborted right after ancamilea, so emo (and wizard)
never got their memory hooks wired — the reason emo's sessions lost memory. Wrap
the cleanup in an if-block, guard the chmod, and end the function with return 0.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
464e0bfb97
commit
0b11a28d66
1 changed files with 5 additions and 2 deletions
|
|
@ -414,7 +414,7 @@ install_memory() {
|
|||
else
|
||||
log "WARN: memory hook wiring failed for $user (retries next reconcile)"
|
||||
fi
|
||||
[[ -f "$settings" ]] && chmod 600 "$settings"
|
||||
[[ -f "$settings" ]] && chmod 600 "$settings" || true
|
||||
|
||||
# (2b) reuse the user's existing key; warn (do NOT mint — needs an admin vault write) if absent.
|
||||
if [[ -f "$settings" ]] && ! grep -q 'MEMORY_API_KEY' "$settings"; then
|
||||
|
|
@ -425,7 +425,10 @@ install_memory() {
|
|||
if runuser -u "$user" -- bash -lc 'command -v claude >/dev/null 2>&1 && claude mcp get claude_memory >/dev/null 2>&1'; then
|
||||
runuser -u "$user" -- bash -lc 'claude mcp remove claude_memory >/dev/null 2>&1' && log "removed claude_memory MCP -> $user" || true
|
||||
fi
|
||||
[[ -d "$home/.claude/plugins/claude-memory" ]] && rm -rf "$home/.claude/plugins/claude-memory" && log "removed claude-memory plugin dir -> $user"
|
||||
if [[ -d "$home/.claude/plugins/claude-memory" ]]; then
|
||||
rm -rf "$home/.claude/plugins/claude-memory" && log "removed claude-memory plugin dir -> $user"
|
||||
fi
|
||||
return 0 # best-effort tail must never return non-zero, else set -euo pipefail aborts the whole reconcile
|
||||
}
|
||||
|
||||
[[ $EUID -eq 0 ]] || { echo "t3-provision-users: must run as root" >&2; exit 1; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue