mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-20 03:12:28 +08:00
Merge origin/main, resolve CHANGELOG conflict, bump to v0.13.6.0
Main landed v0.13.5.0 (Factory Droid Compatibility) while this branch also had v0.13.5.0 (Community Wave). Resolved by keeping both entries and bumping this branch to v0.13.6.0. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
20
bin/gstack-platform-detect
Executable file
20
bin/gstack-platform-detect
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# gstack-platform-detect: show which AI coding agents are installed and gstack status
|
||||
printf "%-16s %-10s %-40s %s\n" "Agent" "Version" "Skill Path" "gstack"
|
||||
printf "%-16s %-10s %-40s %s\n" "-----" "-------" "----------" "------"
|
||||
for entry in "claude:claude" "codex:codex" "droid:factory" "kiro-cli:kiro"; do
|
||||
bin="${entry%%:*}"; label="${entry##*:}"
|
||||
if command -v "$bin" >/dev/null 2>&1; then
|
||||
ver=$("$bin" --version 2>/dev/null | head -1 || echo "unknown")
|
||||
case "$label" in
|
||||
claude) spath="$HOME/.claude/skills/gstack" ;;
|
||||
codex) spath="$HOME/.codex/skills/gstack" ;;
|
||||
factory) spath="$HOME/.factory/skills/gstack" ;;
|
||||
kiro) spath="$HOME/.kiro/skills/gstack" ;;
|
||||
esac
|
||||
status=$([ -d "$spath" ] && echo "INSTALLED" || echo "NOT INSTALLED")
|
||||
printf "%-16s %-10s %-40s %s\n" "$label" "$ver" "$spath" "$status"
|
||||
fi
|
||||
done
|
||||
@@ -10,6 +10,7 @@
|
||||
# ~/.claude/skills/gstack — global Claude skill install (git clone or vendored)
|
||||
# ~/.claude/skills/{skill} — per-skill symlinks created by setup
|
||||
# ~/.codex/skills/gstack* — Codex skill install + per-skill symlinks
|
||||
# ~/.factory/skills/gstack* — Factory Droid skill install + per-skill symlinks
|
||||
# ~/.kiro/skills/gstack* — Kiro skill install + per-skill symlinks
|
||||
# ~/.gstack/ — global state (config, analytics, sessions, projects,
|
||||
# repos, installation-id, browse error logs)
|
||||
@@ -63,6 +64,7 @@ if [ "$FORCE" -eq 0 ]; then
|
||||
echo "This will remove gstack from your system:"
|
||||
{ [ -d "$HOME/.claude/skills/gstack" ] || [ -L "$HOME/.claude/skills/gstack" ]; } && echo " ~/.claude/skills/gstack (+ per-skill symlinks)"
|
||||
[ -d "$HOME/.codex/skills" ] && echo " ~/.codex/skills/gstack*"
|
||||
[ -d "$HOME/.factory/skills" ] && echo " ~/.factory/skills/gstack*"
|
||||
[ -d "$HOME/.kiro/skills" ] && echo " ~/.kiro/skills/gstack*"
|
||||
[ "$KEEP_STATE" -eq 0 ] && [ -d "$STATE_DIR" ] && echo " $STATE_DIR"
|
||||
|
||||
@@ -169,6 +171,16 @@ if [ -d "$CODEX_SKILLS" ]; then
|
||||
done
|
||||
fi
|
||||
|
||||
# ─── Remove Factory Droid skills ────────────────────────────
|
||||
FACTORY_SKILLS="$HOME/.factory/skills"
|
||||
if [ -d "$FACTORY_SKILLS" ]; then
|
||||
for _ITEM in "$FACTORY_SKILLS"/gstack*; do
|
||||
[ -e "$_ITEM" ] || [ -L "$_ITEM" ] || continue
|
||||
rm -rf "$_ITEM"
|
||||
REMOVED+=("factory/$(basename "$_ITEM")")
|
||||
done
|
||||
fi
|
||||
|
||||
# ─── Remove Kiro skills ─────────────────────────────────────
|
||||
KIRO_SKILLS="$HOME/.kiro/skills"
|
||||
if [ -d "$KIRO_SKILLS" ]; then
|
||||
@@ -191,6 +203,18 @@ if [ -n "$_GIT_ROOT" ] && [ -d "$_GIT_ROOT/.agents/skills" ]; then
|
||||
rmdir "$_GIT_ROOT/.agents" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# ─── Remove per-project .factory/ sidecar ────────────────────
|
||||
if [ -n "$_GIT_ROOT" ] && [ -d "$_GIT_ROOT/.factory/skills" ]; then
|
||||
for _ITEM in "$_GIT_ROOT/.factory/skills"/gstack*; do
|
||||
[ -e "$_ITEM" ] || [ -L "$_ITEM" ] || continue
|
||||
rm -rf "$_ITEM"
|
||||
REMOVED+=("factory/$(basename "$_ITEM")")
|
||||
done
|
||||
|
||||
rmdir "$_GIT_ROOT/.factory/skills" 2>/dev/null || true
|
||||
rmdir "$_GIT_ROOT/.factory" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# ─── Remove per-project state ───────────────────────────────
|
||||
if [ -n "$_GIT_ROOT" ]; then
|
||||
if [ -d "$_GIT_ROOT/.gstack" ]; then
|
||||
|
||||
Reference in New Issue
Block a user