Skip to content

Commit 74099d8

Browse files
committed
Fix smoke test: platform-specific config paths + consolidated skill name
- Set APPDATA/LOCALAPPDATA env vars for Windows so cbm_app_config_dir() and cbm_app_local_dir() resolve to FAKE_HOME paths - Add Windows (*.exe) branches for Zed, KiloCode, VSCode config checks - Add macOS branch for KiloCode (was hardcoded to .config/ on all platforms) - Create platform-correct detection dirs (AppData on Windows, Library on macOS, .config on Linux) so agent detection + install paths match - Update skill check from old 4-skill names to consolidated codebase-memory (old dirs are cleaned up during install since skill consolidation)
1 parent 6e1b3b2 commit 74099d8

File tree

1 file changed

+41
-19
lines changed

1 file changed

+41
-19
lines changed

scripts/smoke-test.sh

Lines changed: 41 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -497,12 +497,16 @@ mkdir -p "$FAKE_HOME/.config/opencode"
497497
if [ "$(uname -s)" = "Darwin" ]; then
498498
mkdir -p "$FAKE_HOME/Library/Application Support/Zed"
499499
mkdir -p "$FAKE_HOME/Library/Application Support/Code/User"
500+
mkdir -p "$FAKE_HOME/Library/Application Support/Code/User/globalStorage/kilocode.kilo-code/settings"
501+
elif [[ "${BINARY:-}" == *.exe ]]; then
502+
mkdir -p "$FAKE_HOME/AppData/Local/Zed"
503+
mkdir -p "$FAKE_HOME/AppData/Roaming/Code/User"
504+
mkdir -p "$FAKE_HOME/AppData/Roaming/Code/User/globalStorage/kilocode.kilo-code/settings"
500505
else
501506
mkdir -p "$FAKE_HOME/.config/zed"
502507
mkdir -p "$FAKE_HOME/.config/Code/User"
508+
mkdir -p "$FAKE_HOME/.config/Code/User/globalStorage/kilocode.kilo-code/settings"
503509
fi
504-
# KiloCode detection always uses ~/.config/ path (even on macOS)
505-
mkdir -p "$FAKE_HOME/.config/Code/User/globalStorage/kilocode.kilo-code/settings"
506510
mkdir -p "$FAKE_HOME/.local/bin"
507511
# Copy binary with correct name for platform
508512
if [[ "$BINARY" == *.exe ]]; then
@@ -520,9 +524,14 @@ echo '{"existingKey": true}' > "$FAKE_HOME/.claude.json"
520524
echo '{"existingKey": true}' > "$FAKE_HOME/.gemini/settings.json"
521525
printf '[existing_section]\nline_from_user = true\n' > "$FAKE_HOME/.codex/config.toml"
522526

523-
# Run install — set XDG_CONFIG_HOME explicitly so cbm_app_config_dir() resolves
524-
# to FAKE_HOME/.config even on minimal systems (Alpine musl, no NSS).
525-
HOME="$FAKE_HOME" XDG_CONFIG_HOME="$FAKE_HOME/.config" PATH="$FAKE_HOME/.local/bin:$PATH" "$BINARY" install -y 2>&1 || true
527+
# Run install — override platform config dirs so cbm_app_config_dir() and
528+
# cbm_app_local_dir() resolve to FAKE_HOME paths on all platforms.
529+
HOME="$FAKE_HOME" \
530+
XDG_CONFIG_HOME="$FAKE_HOME/.config" \
531+
APPDATA="$FAKE_HOME/AppData/Roaming" \
532+
LOCALAPPDATA="$FAKE_HOME/AppData/Local" \
533+
PATH="$FAKE_HOME/.local/bin:$PATH" \
534+
"$BINARY" install -y 2>&1 || true
526535

527536
# Helper for JSON validation (pipe file to python — avoids MSYS2 path translation issues)
528537
json_get() { cat "$1" 2>/dev/null | python3 -c "import json,sys; d=json.load(sys.stdin); print($2)" 2>/dev/null || echo ""; }
@@ -634,6 +643,8 @@ echo "OK 8m: Gemini instructions"
634643
# 8n: Zed MCP
635644
if [ "$(uname -s)" = "Darwin" ]; then
636645
ZED_CFG="$FAKE_HOME/Library/Application Support/Zed/settings.json"
646+
elif [[ "$BINARY" == *.exe ]]; then
647+
ZED_CFG="$FAKE_HOME/AppData/Local/Zed/settings.json"
637648
else
638649
ZED_CFG="$FAKE_HOME/.config/zed/settings.json"
639650
fi
@@ -690,8 +701,14 @@ else
690701
echo "SKIP 8s: Aider not detected (binary not on PATH)"
691702
fi
692703

693-
# 8t: KiloCode MCP (detection + install both use ~/.config/ on all platforms)
694-
KILO_CFG="$FAKE_HOME/.config/Code/User/globalStorage/kilocode.kilo-code/settings/mcp_settings.json"
704+
# 8t: KiloCode MCP
705+
if [ "$(uname -s)" = "Darwin" ]; then
706+
KILO_CFG="$FAKE_HOME/Library/Application Support/Code/User/globalStorage/kilocode.kilo-code/settings/mcp_settings.json"
707+
elif [[ "$BINARY" == *.exe ]]; then
708+
KILO_CFG="$FAKE_HOME/AppData/Roaming/Code/User/globalStorage/kilocode.kilo-code/settings/mcp_settings.json"
709+
else
710+
KILO_CFG="$FAKE_HOME/.config/Code/User/globalStorage/kilocode.kilo-code/settings/mcp_settings.json"
711+
fi
695712
CMD=$(json_get "$KILO_CFG" "d['mcpServers']['codebase-memory-mcp']['command']")
696713
if ! path_match "$CMD" "$SELF_PATH"; then
697714
echo "FAIL 8t: KiloCode command='$CMD'"
@@ -709,6 +726,8 @@ echo "OK 8u: KiloCode instructions"
709726
# 8v: VS Code MCP
710727
if [ "$(uname -s)" = "Darwin" ]; then
711728
VSCODE_CFG="$FAKE_HOME/Library/Application Support/Code/User/mcp.json"
729+
elif [[ "$BINARY" == *.exe ]]; then
730+
VSCODE_CFG="$FAKE_HOME/AppData/Roaming/Code/User/mcp.json"
712731
else
713732
VSCODE_CFG="$FAKE_HOME/.config/Code/User/mcp.json"
714733
fi
@@ -727,21 +746,24 @@ if ! path_match "$CMD" "$SELF_PATH"; then
727746
fi
728747
echo "OK 8w: OpenClaw MCP"
729748

730-
# 8x-y: Skills
731-
for SKILL_NAME in codebase-memory-exploring codebase-memory-tracing codebase-memory-quality codebase-memory-reference; do
732-
SKILL_FILE="$FAKE_HOME/.claude/skills/$SKILL_NAME/SKILL.md"
733-
if [ ! -s "$SKILL_FILE" ]; then
734-
echo "FAIL 8x: skill $SKILL_NAME missing or empty"
735-
exit 1
736-
fi
737-
done
738-
echo "OK 8x-y: all 4 skills installed"
749+
# 8x: Consolidated skill (old 4-skill dirs cleaned up, replaced by 1)
750+
SKILL_FILE="$FAKE_HOME/.claude/skills/codebase-memory/SKILL.md"
751+
if [ ! -s "$SKILL_FILE" ]; then
752+
echo "FAIL 8x: skill codebase-memory missing or empty"
753+
exit 1
754+
fi
755+
echo "OK 8x: skill installed"
739756

740757
echo ""
741758
echo "=== Phase 9: agent config uninstall E2E ==="
742759

743760
# Run uninstall (same FAKE_HOME with all configs present)
744-
HOME="$FAKE_HOME" XDG_CONFIG_HOME="$FAKE_HOME/.config" PATH="$FAKE_HOME/.local/bin:$PATH" "$BINARY" uninstall -y -n 2>&1 || true
761+
HOME="$FAKE_HOME" \
762+
XDG_CONFIG_HOME="$FAKE_HOME/.config" \
763+
APPDATA="$FAKE_HOME/AppData/Roaming" \
764+
LOCALAPPDATA="$FAKE_HOME/AppData/Local" \
765+
PATH="$FAKE_HOME/.local/bin:$PATH" \
766+
"$BINARY" uninstall -y -n 2>&1 || true
745767

746768
# 9a-b: Claude Code MCP removed but existing keys preserved
747769
if cat "$FAKE_HOME/.claude.json" 2>/dev/null | python3 -c "
@@ -836,8 +858,8 @@ else
836858
exit 1
837859
fi
838860

839-
# 9l: Skills removed
840-
if [ -d "$FAKE_HOME/.claude/skills/codebase-memory-exploring" ]; then
861+
# 9l: Skills removed (consolidated skill dir)
862+
if [ -d "$FAKE_HOME/.claude/skills/codebase-memory" ]; then
841863
echo "FAIL 9l: skills not removed"
842864
exit 1
843865
fi

0 commit comments

Comments
 (0)