From 2e921ac80670fca83aa2e3801a12b56a1cec13ee Mon Sep 17 00:00:00 2001 From: Stephen <939775+thecodeassassin@users.noreply.github.com> Date: Mon, 22 Jun 2026 23:33:02 +0000 Subject: [PATCH] fix: link ExitBox-managed skills into Pi's skills dir --- static/build/docker-entrypoint | 8 ++++++++ static/build/docker-entrypoint_test.sh | 24 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/static/build/docker-entrypoint b/static/build/docker-entrypoint index ee0c040..2ff7751 100755 --- a/static/build/docker-entrypoint +++ b/static/build/docker-entrypoint @@ -520,6 +520,14 @@ link_skills() { [[ -d "$real_dir" ]] && _link_skills_into "$real_dir/skills" _link_skills_into "$HOME/.agents/skills" ;; + pi) + # Pi discovers skills (dirs with SKILL.md) in ~/.pi/agent/skills and + # ~/.agents/skills. ~/.pi is symlinked to the persistent workspace dir. + local real_dir + real_dir="$(readlink -f "$HOME/.pi")" + [[ -d "$real_dir" ]] && _link_skills_into "$real_dir/agent/skills" + _link_skills_into "$HOME/.agents/skills" + ;; esac } diff --git a/static/build/docker-entrypoint_test.sh b/static/build/docker-entrypoint_test.sh index 80b4707..c39398e 100644 --- a/static/build/docker-entrypoint_test.sh +++ b/static/build/docker-entrypoint_test.sh @@ -1672,6 +1672,30 @@ test_workspace_links_new_agents() { test_agent_display_name_new_agents test_workspace_links_new_agents +# ============================================================================ +# Test: link_skills wires ExitBox-managed skills into Pi's skills dir +# ============================================================================ +test_link_skills_pi() { + local base home result + base="$(mktemp -d "$TEST_TMPDIR/skillws.XXXXXX")" + home="$(mktemp -d "$TEST_TMPDIR/skillhome.XXXXXX")" + mkdir -p "$base/default/skills/my-skill" + printf -- '---\nname: my-skill\n---\n' > "$base/default/skills/my-skill/SKILL.md" + mkdir -p "$home/.pi/agent" + result="$( + export GLOBAL_WORKSPACE_ROOT="$base" + export HOME="$home" + export AGENT="pi" + export EXITBOX_WORKSPACE_NAME="default" + eval "$(extract_func link_skills)" + link_skills + [[ -L "$home/.pi/agent/skills/my-skill" ]] && echo "LINKED" + )" 2>/dev/null + assert_contains "link_skills links ExitBox skills into Pi ~/.pi/agent/skills" "$result" "LINKED" +} + +test_link_skills_pi + # ============================================================================ # Results # ============================================================================