fix: make xianyu notifications per-item with clickable links
This commit is contained in:
@@ -0,0 +1,133 @@
|
||||
# Sync local xianyu-hunter changes into the Gitea portable package (2026-05)
|
||||
|
||||
## Trigger
|
||||
|
||||
BOSS says “同步更新 gitea” after local xianyu-hunter project changes. In this setup the local working clone may still have upstream `origin=https://github.com/Disrush/xianyu-hunter.git`, while the public Gitea repo is the portable package:
|
||||
|
||||
```text
|
||||
https://gitea.chickliu.fun/Hermes/xianyu-hunter-hermes-skill
|
||||
```
|
||||
|
||||
Do **not** push the messy local working clone directly to GitHub/upstream or to a new guessed Gitea repo. Update the existing portable package repo by cloning it to a temp workdir and rsyncing sanitized contents into `project/xianyu-hunter/` plus the skill into `skill/xianyu-hunter-monitor/`.
|
||||
|
||||
## Proven workflow
|
||||
|
||||
```bash
|
||||
cd /Users/chick/.Hermes/workspace/research/xianyu-hunter
|
||||
|
||||
set -a
|
||||
source ~/.hermes/env/gitea.env
|
||||
set +a
|
||||
OWNER="${GITEA_OWNER:-Hermes}"
|
||||
REPO=xianyu-hunter-hermes-skill
|
||||
|
||||
rm -rf /tmp/xianyu-hunter-gitea-sync
|
||||
git clone "$GITEA_URL/$OWNER/$REPO.git" /tmp/xianyu-hunter-gitea-sync
|
||||
|
||||
SRC=/Users/chick/.Hermes/workspace/research/xianyu-hunter
|
||||
DST=/tmp/xianyu-hunter-gitea-sync/project/xianyu-hunter
|
||||
SKILL_SRC=/Users/chick/.hermes/skills/social-media/xianyu-hunter-monitor
|
||||
SKILL_DST=/tmp/xianyu-hunter-gitea-sync/skill/xianyu-hunter-monitor
|
||||
|
||||
rsync -a --delete \
|
||||
--exclude='.git/' \
|
||||
--exclude='node_modules/' \
|
||||
--exclude='browser-data/' \
|
||||
--exclude='.runtime/' \
|
||||
--exclude='xianyu-server.log' \
|
||||
--exclude='*.log' \
|
||||
--exclude='data/config.json' \
|
||||
--exclude='data/tasks.json' \
|
||||
--exclude='data/notify-config.json' \
|
||||
--exclude='reports/*.md' \
|
||||
"$SRC/" "$DST/"
|
||||
|
||||
mkdir -p "$DST/reports"
|
||||
touch "$DST/reports/.gitkeep"
|
||||
rsync -a --delete "$SKILL_SRC/" "$SKILL_DST/"
|
||||
```
|
||||
|
||||
Preserve/restore package examples that should remain committed even if absent locally, e.g. `project/xianyu-hunter/data/notify-config.example.json`:
|
||||
|
||||
```bash
|
||||
cat > /tmp/xianyu-hunter-gitea-sync/project/xianyu-hunter/data/notify-config.example.json <<'EOF'
|
||||
{
|
||||
"enabled": false,
|
||||
"notifyOnlyGood": true,
|
||||
"minScore": 75,
|
||||
"channels": []
|
||||
}
|
||||
EOF
|
||||
```
|
||||
|
||||
Refresh the package `.gitignore` so runtime data cannot be committed:
|
||||
|
||||
```bash
|
||||
cat > /tmp/xianyu-hunter-gitea-sync/.gitignore <<'EOF'
|
||||
.DS_Store
|
||||
node_modules/
|
||||
browser-data/
|
||||
.runtime/
|
||||
*.log
|
||||
project/xianyu-hunter/node_modules/
|
||||
project/xianyu-hunter/browser-data/
|
||||
project/xianyu-hunter/.runtime/
|
||||
project/xianyu-hunter/data/config.json
|
||||
project/xianyu-hunter/data/tasks.json
|
||||
project/xianyu-hunter/data/notify-config.json
|
||||
project/xianyu-hunter/reports/*.md
|
||||
EOF
|
||||
```
|
||||
|
||||
## Verification before commit
|
||||
|
||||
```bash
|
||||
cd /tmp/xianyu-hunter-gitea-sync
|
||||
node --check project/xianyu-hunter/server.mjs
|
||||
node --check project/xianyu-hunter/lib/login.mjs
|
||||
node --check project/xianyu-hunter/lib/hermes_optimizer.mjs
|
||||
node --check project/xianyu-hunter/public/app.js
|
||||
|
||||
git status --short --ignored
|
||||
git ls-files | grep -E 'browser-data|data/(config|tasks|notify-config)\.json|node_modules|\.runtime|reports/.*\.md' || true
|
||||
```
|
||||
|
||||
Expected sensitive-file grep output is empty. Review `git diff --stat` and representative diffs before committing.
|
||||
|
||||
## Commit and push safely
|
||||
|
||||
```bash
|
||||
cd /tmp/xianyu-hunter-gitea-sync
|
||||
git config user.name 'Hermes Agent'
|
||||
git config user.email 'Hermes@Hermes.Hermes'
|
||||
git add .
|
||||
git commit -m 'feat: update xianyu web login and Hermes optimizer'
|
||||
|
||||
git remote set-url origin "https://${GITEA_USERNAME:-Hermes}:${GITEA_TOKEN}@${GITEA_URL#https://}/$OWNER/$REPO.git"
|
||||
git push origin main
|
||||
# scrub token immediately
|
||||
git remote set-url origin "$GITEA_URL/$OWNER/$REPO.git"
|
||||
git remote -v
|
||||
```
|
||||
|
||||
## Post-push verification
|
||||
|
||||
```bash
|
||||
curl -sS -H "Authorization: token $GITEA_TOKEN" \
|
||||
-o /tmp/gitea_repo_verify.json \
|
||||
-w 'HTTP %{http_code} size=%{size_download}\n' \
|
||||
"$GITEA_URL/api/v1/repos/$OWNER/$REPO"
|
||||
|
||||
git ls-remote "$GITEA_URL/$OWNER/$REPO.git" HEAD refs/heads/main
|
||||
|
||||
for f in \
|
||||
project/xianyu-hunter/lib/hermes_optimizer.mjs \
|
||||
project/xianyu-hunter/lib/login.mjs \
|
||||
skill/xianyu-hunter-monitor/references/web-qr-source-and-hermes-optimize-2026-05.md; do
|
||||
curl -sS -L -o /tmp/gitea_raw_check \
|
||||
-w "$f HTTP %{http_code} size=%{size_download}\n" \
|
||||
"$GITEA_URL/$OWNER/$REPO/raw/branch/main/$f"
|
||||
done
|
||||
```
|
||||
|
||||
Report the repo URL, commit hash, and verification results back to BOSS in the final visible reply. Do not leave an empty response after tool calls.
|
||||
Reference in New Issue
Block a user