fix(aiui): bundle demo/aiui in self-update and ISO builds so updates never wipe it
Every OTA self-update and every ISO capture was implicitly relying on /opt/archipelago/web-ui/aiui/ already being present on disk. Any node that had its web-ui directory atomically swapped (for example by a manual deployment shipping only neode-ui dist output) lost aiui entirely and the AI Assistant tab fell through to the "needs to be enabled" placeholder. self-update.sh: drop the rsync --exclude aiui preservation trick and instead stage demo/aiui into the freshly-built dist tree before rsync. demo/aiui in the repo is now the source of truth; every update overwrites the on-disk copy with a matching version rather than carrying forward whatever stale bundle happened to survive. build-auto-installer-iso.sh: prepend demo/aiui to the AIUI search list so ISO builds from a fresh repo clone pick it up automatically, without requiring a side-checkout of the AIUI project or a live dev server. This matches create-release-manifest.sh which already bakes demo/aiui into the release tarball (lines 86-89).
This commit is contained in:
parent
8034d382ee
commit
84c2c2880a
@ -1222,8 +1222,12 @@ fi
|
|||||||
|
|
||||||
# Include AIUI web app (Claude chat interface)
|
# Include AIUI web app (Claude chat interface)
|
||||||
AIUI_INCLUDED=0
|
AIUI_INCLUDED=0
|
||||||
# Search multiple locations for a pre-built AIUI app
|
# Search multiple locations for a pre-built AIUI app.
|
||||||
|
# demo/aiui is the canonical AIUI bundle checked into the repo and is
|
||||||
|
# tried first so ISO builds on a fresh clone work without needing any
|
||||||
|
# external AIUI checkout.
|
||||||
for AIUI_DIR in \
|
for AIUI_DIR in \
|
||||||
|
"$SCRIPT_DIR/../demo/aiui" \
|
||||||
"$SCRIPT_DIR/../../AIUI/packages/app/dist" \
|
"$SCRIPT_DIR/../../AIUI/packages/app/dist" \
|
||||||
"$HOME/AIUI/packages/app/dist" \
|
"$HOME/AIUI/packages/app/dist" \
|
||||||
"/home/archipelago/AIUI/packages/app/dist" \
|
"/home/archipelago/AIUI/packages/app/dist" \
|
||||||
@ -1246,7 +1250,7 @@ done
|
|||||||
if [ "$AIUI_INCLUDED" = "0" ]; then
|
if [ "$AIUI_INCLUDED" = "0" ]; then
|
||||||
echo " ⚠️ AIUI not found — build it first:"
|
echo " ⚠️ AIUI not found — build it first:"
|
||||||
echo " cd ~/AIUI/packages/app && VITE_BASE_PATH=/aiui/ npx vite build"
|
echo " cd ~/AIUI/packages/app && VITE_BASE_PATH=/aiui/ npx vite build"
|
||||||
echo " Searched: ~/AIUI, /home/archipelago/AIUI, /opt/archipelago/web-ui/aiui"
|
echo " Searched: demo/aiui, ~/AIUI, /home/archipelago/AIUI, /opt/archipelago/web-ui/aiui"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Copy app manifests
|
# Copy app manifests
|
||||||
|
|||||||
@ -157,12 +157,23 @@ else
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install frontend (preserve aiui and claude-login.html)
|
# Install frontend (always ship fresh AIUI from demo/aiui; preserve claude-login.html)
|
||||||
BUILT_WEB="$REPO_DIR/web/dist/neode-ui"
|
BUILT_WEB="$REPO_DIR/web/dist/neode-ui"
|
||||||
if [ -d "$BUILT_WEB" ]; then
|
if [ -d "$BUILT_WEB" ]; then
|
||||||
# Sync new files, preserving aiui/ and claude-login.html
|
# Bake AIUI into the built tree so rsync --delete does not wipe it.
|
||||||
|
# demo/aiui is the canonical AIUI bundle checked into the repo; copying
|
||||||
|
# it here means every self-update ships a matching AIUI version instead
|
||||||
|
# of preserving whatever stale copy happened to be on disk (which is
|
||||||
|
# empty on nodes where an earlier ad-hoc deploy blew it away).
|
||||||
|
if [ -d "$REPO_DIR/demo/aiui" ] && [ -f "$REPO_DIR/demo/aiui/index.html" ]; then
|
||||||
|
log "Staging AIUI bundle from demo/aiui into frontend dist..."
|
||||||
|
rm -rf "$BUILT_WEB/aiui"
|
||||||
|
cp -r "$REPO_DIR/demo/aiui" "$BUILT_WEB/aiui"
|
||||||
|
else
|
||||||
|
warn "demo/aiui not found in repo; existing /opt/archipelago/web-ui/aiui will be wiped by rsync --delete"
|
||||||
|
fi
|
||||||
|
# Sync new files, preserving claude-login.html (per-node admin bookmark)
|
||||||
sudo rsync -a --delete \
|
sudo rsync -a --delete \
|
||||||
--exclude 'aiui' \
|
|
||||||
--exclude 'claude-login.html' \
|
--exclude 'claude-login.html' \
|
||||||
"$BUILT_WEB/" "$INSTALL_WEB/"
|
"$BUILT_WEB/" "$INSTALL_WEB/"
|
||||||
ok "Frontend installed"
|
ok "Frontend installed"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user