Fix two docs/UX errors found during Mac install (tor-ms22)
1. 'mempalace init --yes' without a dir argument fails — 'dir' is
required. The semantics were wrong too: 'mempalace init' is
per-project (sets up mempalace.yaml + entity detection in a specific
directory), not a one-time global init. The palace itself is
created lazily on first write, so neither mempalace-session nor
mempalace-docs requires any init step.
Removed the misleading 'One-time palace init' block from README.md,
ARCHITECTURE.md, and SKILL.md. Added a clarifying note:
'mempalace init <dir>' is per-project and optional (needed only to
customize the wing name or entity detection before mempalace-docs).
2. install.sh's 'Skipping <name>: <dest> exists and is not our symlink'
warning gave no actionable guidance. On the Mac, a leftover
~/.local/bin/mempalace-docs (likely from the pre-split cli_utils
days) was blocking the new install and the user had no easy way
to know what to do about it.
Expanded the warning to:
- Show whether the blocker is a symlink (and what it points at) or
a real file.
- Print the exact 'rm && ./install.sh' fix line.
- Track skipped count separately and flag it in the closing
summary so a scrolling user doesn't miss it.
Added matching troubleshooting paragraph to the README 'Install
mempalace-toolkit' section explaining the skip behaviour and
pointing at the installer's own message for the fix.
Smoke-tested the new skip-warning code path by temporarily replacing
~/.local/bin/mempalace-docs with a foreign symlink and re-running
install.sh — output is clear, specific, and restores cleanly.
This commit is contained in:
+15
-1
@@ -76,6 +76,7 @@ install_bin() {
|
||||
mkdir -p "$BIN_DEST"
|
||||
note "Symlinking bin/ executables into $BIN_DEST"
|
||||
local count=0
|
||||
local skipped=0
|
||||
for src in "$BIN_SRC"/*; do
|
||||
[[ -x "$src" && -f "$src" ]] || continue
|
||||
local name; name=$(basename "$src")
|
||||
@@ -86,7 +87,17 @@ install_bin() {
|
||||
count=$((count+1))
|
||||
continue
|
||||
else
|
||||
warn "Skipping $name: $dest exists and is not our symlink"
|
||||
# Tell the user exactly what's in the way and how to fix it.
|
||||
local what="real file"
|
||||
if [[ -L "$dest" ]]; then
|
||||
local current_target
|
||||
current_target=$(readlink "$dest")
|
||||
what="symlink → $current_target"
|
||||
fi
|
||||
warn "Skipping $name — $dest already exists ($what)"
|
||||
printf ' If stale (e.g. an old cli_utils install), remove and re-run:\n'
|
||||
printf ' rm %q && %q/install.sh\n' "$dest" "$SCRIPT_DIR"
|
||||
skipped=$((skipped+1))
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
@@ -96,6 +107,9 @@ install_bin() {
|
||||
done
|
||||
echo
|
||||
ok "Installed $count executable(s)"
|
||||
if (( skipped > 0 )); then
|
||||
warn "$skipped executable(s) skipped — see notes above"
|
||||
fi
|
||||
}
|
||||
|
||||
install_skill() {
|
||||
|
||||
Reference in New Issue
Block a user