fix: stabilize live session UI and skill publishing

Keep message navigation and progress state synchronized, and preserve
sequential split-flap count updates with a bounded queue.

Publish the Obelisk skill under skills/obelisk for npx skills, sharing
the same staging layout between CI and local releases with regression coverage.
This commit is contained in:
tommy0103
2026-07-13 22:02:44 +08:00
parent a9687ba8b7
commit f963f14b10
9 changed files with 248 additions and 30 deletions
+5 -5
View File
@@ -1,18 +1,18 @@
#!/usr/bin/env bash
set -euo pipefail
SKILL_DIR="dist/obelisk-skill"
SKILL_ARTIFACT="dist/obelisk-skill"
SKILL_REPO="dist/obelisk-skill-repo"
REMOTE="git@github.com:tommy0103/obelisk-skill.git"
if [ ! -d "$SKILL_DIR/scripts" ]; then
if [ ! -d "$SKILL_ARTIFACT/scripts" ]; then
echo "Error: run 'npm run build:skill' first" >&2
exit 1
fi
cp packaging/skill-README.md "$SKILL_DIR/README.md"
cp packaging/skill-LICENSE "$SKILL_DIR/LICENSE"
bash packaging/stage-skill-repo.sh "$SKILL_REPO" "$SKILL_ARTIFACT"
cd "$SKILL_DIR"
cd "$SKILL_REPO"
rm -rf .git
git init
git remote add origin "$REMOTE"
+34
View File
@@ -0,0 +1,34 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
TARGET_DIR="${1:-}"
ARTIFACT_DIR="${2:-$ROOT_DIR/dist/obelisk-skill}"
if [ -z "$TARGET_DIR" ]; then
echo "Usage: packaging/stage-skill-repo.sh <target-repo> [skill-artifact]" >&2
exit 1
fi
if [ "$TARGET_DIR" = "/" ] || [ "$TARGET_DIR" = "." ] || [ "$TARGET_DIR" = "$ROOT_DIR" ]; then
echo "Error: refusing to replace unsafe target directory: $TARGET_DIR" >&2
exit 1
fi
for required in SKILL.md package.json references scripts; do
if [ ! -e "$ARTIFACT_DIR/$required" ]; then
echo "Error: skill artifact missing $required at $ARTIFACT_DIR" >&2
exit 1
fi
done
mkdir -p "$TARGET_DIR"
find "$TARGET_DIR" -mindepth 1 \
! -path "$TARGET_DIR/.git" \
! -path "$TARGET_DIR/.git/*" \
-delete
mkdir -p "$TARGET_DIR/skills/obelisk"
cp -R "$ARTIFACT_DIR"/. "$TARGET_DIR/skills/obelisk/"
cp "$ROOT_DIR/packaging/skill-README.md" "$TARGET_DIR/README.md"
cp "$ROOT_DIR/packaging/skill-LICENSE" "$TARGET_DIR/LICENSE"