mirror of
https://github.com/tradecatlabs/vibe-coding-cn.git
synced 2026-08-22 15:28:05 +00:00
feat: skills - add auto-tmux swarm metrics
This commit is contained in:
@@ -57,6 +57,7 @@ skills/auto-tmux/scripts/swarm-state.sh lock-prune --older-than 3600 --dry-run -
|
||||
skills/auto-tmux/scripts/swarm-state.sh task-block --id task-001 --owner "$target" --reason "等待输入" --dir /tmp/ai_swarm
|
||||
skills/auto-tmux/scripts/swarm-state.sh task-fail --id task-001 --owner "$target" --reason "测试失败" --dir /tmp/ai_swarm
|
||||
skills/auto-tmux/scripts/swarm-state.sh task-list --status FAIL --dir /tmp/ai_swarm
|
||||
skills/auto-tmux/scripts/swarm-state.sh metrics --dir /tmp/ai_swarm
|
||||
skills/auto-tmux/scripts/swarm-state.sh task-reopen --id task-001 --owner "$target" --reason "重新执行" --dir /tmp/ai_swarm
|
||||
skills/auto-tmux/scripts/swarm-state.sh validate --dir /tmp/ai_swarm
|
||||
skills/auto-tmux/scripts/swarm-state.sh report --dir /tmp/ai_swarm
|
||||
|
||||
@@ -72,6 +72,8 @@ grep -q 'imported-001' /tmp/auto-tmux-smoke-task-next.txt
|
||||
"$SWARM_STATE" task-fail --dir "$SWARM_DIR" --id smoke-fail --owner "$worker_target" --reason "expected failure"
|
||||
"$SWARM_STATE" task-list --dir "$SWARM_DIR" --status FAIL >/tmp/auto-tmux-smoke-task-list-fail.txt
|
||||
grep -q 'smoke-fail' /tmp/auto-tmux-smoke-task-list-fail.txt
|
||||
"$SWARM_STATE" metrics --dir "$SWARM_DIR" >/tmp/auto-tmux-smoke-metrics.txt
|
||||
grep -q 'FAIL' /tmp/auto-tmux-smoke-metrics.txt
|
||||
"$SWARM_STATE" report --dir "$SWARM_DIR" >/tmp/auto-tmux-smoke-report.txt
|
||||
"$SWARM_STATE" validate --dir "$SWARM_DIR" >/tmp/auto-tmux-smoke-state-validate.txt
|
||||
grep -q 'smoke-task' /tmp/auto-tmux-smoke-report.txt
|
||||
|
||||
@@ -31,6 +31,7 @@ Usage:
|
||||
swarm-state.sh lock-list [--dir DIR]
|
||||
swarm-state.sh lock-prune --older-than SEC [--dir DIR] [--dry-run]
|
||||
swarm-state.sh report [--dir DIR]
|
||||
swarm-state.sh metrics [--dir DIR]
|
||||
swarm-state.sh validate [--dir DIR]
|
||||
|
||||
Environment:
|
||||
@@ -467,6 +468,27 @@ cmd_report() {
|
||||
cmd_status -n 20
|
||||
}
|
||||
|
||||
cmd_metrics() {
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--dir) set_dir "${2:-}"; shift 2 ;;
|
||||
*) die "unknown metrics option: $1" ;;
|
||||
esac
|
||||
done
|
||||
ensure_init
|
||||
printf '# swarm metrics\n\n'
|
||||
printf 'dir: %s\n\n' "$SWARM_DIR"
|
||||
printf '## by status\n\n'
|
||||
awk -F '\t' 'NR > 1 {count[$2]++} END {for (status in count) print status "\t" count[status]}' "$TASKS_TSV" |
|
||||
sort | column -t -s $'\t' 2>/dev/null || true
|
||||
printf '\n## by owner\n\n'
|
||||
awk -F '\t' 'NR > 1 {count[$3]++} END {for (owner in count) print owner "\t" count[owner]}' "$TASKS_TSV" |
|
||||
sort | column -t -s $'\t' 2>/dev/null || true
|
||||
printf '\n## locks\n\n'
|
||||
find "$LOCKS_DIR" -mindepth 1 -maxdepth 1 -type d -name '*.lock.d' | wc -l | awk '{print "active_locks\t" $1}' |
|
||||
column -t -s $'\t' 2>/dev/null || true
|
||||
}
|
||||
|
||||
cmd_validate() {
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
@@ -560,6 +582,7 @@ main() {
|
||||
lock-list) cmd_lock_list "$@" ;;
|
||||
lock-prune) cmd_lock_prune "$@" ;;
|
||||
report) cmd_report "$@" ;;
|
||||
metrics) cmd_metrics "$@" ;;
|
||||
validate) cmd_validate "$@" ;;
|
||||
*) die "unknown command: $cmd" ;;
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user