chore: 同步本地更改

- 新增 aio-mcp 项目框架
- 新增 .trae/skills/ OCR/SKU 设计工具
- 更新 auto-check 配置和 stress 包
- 删除 fnhelp 文档目录
- 更新 Docker 压力测试脚本
This commit is contained in:
张威33321
2026-08-27 20:38:13 +08:00
parent a172a9bb5e
commit a8fa159f0f
75 changed files with 2266 additions and 4068 deletions

View File

@@ -0,0 +1,81 @@
# fnstable.sh - fnscript 稳定性门禁(社区脚本 self_inspection.pyvendor 原样收录不改源码)
#
# 思路先用社区脚本检测硬件真实稳定性stress CPU 压测 + memtester 内存数据校验),
# 通过后自有压测工具再跑一遍出报告;不通过则 run.sh 跳过自有压测。
#
# 适配注意(不改源码的代价,已逐一规避):
# 1. self_inspection.py CLI 模式无论成败 exit code 均为 0
# 只能按 stdout 关键词判定结果("未发现问题" = 通过)。
# 2. --memory 内含两处 y/n 交互确认input()),非交互环境会 EOFError
# 用 printf 'y\ny\n' 管道喂入(两处确认都覆盖)。
# 3. 脚本内部调 sudo memtester / stress依赖已在镜像中预装root 下 sudo 直接可用)。
# 4. memtester 测试可用内存的 97%,单遍耗时 30-120 分钟(由内存大小决定),
# 可用 AUTOCHECK_FN_MEMORY=0 关闭内存校验只做 CPU 门禁。
#
# 输出遵守 auto-check 结构化协议(===TEST:fnstable=== 块),
# 并设置 GATE_PASSED 供 run.sh 决定是否继续自有压测。
echo "===TEST:fnstable==="
FN_SCRIPT="/vendor/fnscript/self_inspection.py"
FN_DURATION="${AUTOCHECK_DURATION:-30}"
FN_MEMORY="${AUTOCHECK_FN_MEMORY:-1}"
FN_ALL_PASSED=1
START_TIME=$(date +%s%N)
# ---- 1. CPU 稳定性fnscript: stress --cpu 4 --timeout N----
set +e
FN_CPU_OUT=$(python3 "$FN_SCRIPT" --cpu "$FN_DURATION" 2>&1)
set -e
if printf '%s' "$FN_CPU_OUT" | grep -q "未发现问题"; then
FN_CPU_STATUS="pass"
else
FN_CPU_STATUS="fail"
FN_ALL_PASSED=0
fi
# ---- 2. 内存稳定性fnscript: sudo memtester <可用内存97%> 1数据校验----
FN_MEM_STATUS="skip"
FN_MEM_NOTE="未启用AUTOCHECK_FN_MEMORY=0"
if [ "$FN_MEMORY" = "1" ]; then
FN_MEM_NOTE=""
set +e
FN_MEM_OUT=$(printf 'y\ny\n' | python3 "$FN_SCRIPT" --memory 2>&1)
set -e
if printf '%s' "$FN_MEM_OUT" | grep -q "未发现问题"; then
FN_MEM_STATUS="pass"
else
FN_MEM_STATUS="fail"
FN_ALL_PASSED=0
fi
fi
END_TIME=$(date +%s%N)
DURATION_MS=$(( (END_TIME - START_TIME) / 1000000 ))
# ---- 3. 汇总结果(门禁语义:任一子项失败即整体失败)----
if [ "$FN_ALL_PASSED" -eq 1 ]; then
echo 'status:pass'
else
echo 'status:fail'
fi
echo "duration:${DURATION_MS}ms"
echo "output:[CPU] ${FN_CPU_STATUS} (stress ${FN_DURATION}s)"
printf '%s\n' "$FN_CPU_OUT" | while IFS= read -r line; do
[ -n "$line" ] && echo "output: $line"
done
if [ "$FN_MEM_STATUS" = "skip" ]; then
echo "output:[MEM] skip - ${FN_MEM_NOTE}"
else
echo "output:[MEM] ${FN_MEM_STATUS} (memtester 可用内存97% 单遍校验)"
printf '%s\n' "$FN_MEM_OUT" | while IFS= read -r line; do
[ -n "$line" ] && echo "output: $line"
done
fi
echo ''
# 供 run.sh 门禁判断fnstable 失败 → 跳过自有压测)
GATE_PASSED=$FN_ALL_PASSED