fix: 修复19个Bug (P0-P3) — 持续性调试第7轮发现的问题

P0 (5): crypto/rand session ID, TTS fallback可达性, goroutine defer recover, adminAuth前缀修正
P1 (5): 普通用户密码验证, context传递, priority clamp, 超时重试, 自主思考速率限制
P2 (4): Briefing AI降级, 前端消息类型渲染, Docker Compose补全, PWA 192图标
P3 (5): goroutine错误处理, .gitignore完善, reminder created_at, voice Dockerfile, Go版本更新
This commit is contained in:
2026-05-20 13:30:32 +08:00
parent baaf90fc47
commit 4b35736f73
37 changed files with 556 additions and 118 deletions
+37 -5
View File
@@ -8,6 +8,8 @@ set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
DEVTOOLS_DIR="$SCRIPT_DIR/devtools"
PORT="${DEVTOOLS_PORT:-9090}"
LOG_DIR="$SCRIPT_DIR/logs"
LOG_FILE="$LOG_DIR/sh.log"
# 颜色输出
RED='\033[0;31m'
@@ -63,7 +65,7 @@ if [ ! -d "node_modules" ] || [ ! -f "node_modules/.package-lock.json" ]; then
fi
# 确保日志目录存在
mkdir -p logs
mkdir -p "$LOG_DIR"
echo ""
echo -e "${GREEN}🚀 启动 DevTools 服务器 (端口: $PORT)...${NC}"
@@ -71,8 +73,38 @@ echo -e "${CYAN} Web 控制台: http://localhost:$PORT${NC}"
echo -e "${CYAN} API: http://localhost:$PORT/api/health${NC}"
echo -e "${CYAN} WebSocket: ws://localhost:$PORT/ws${NC}"
echo ""
echo -e "${YELLOW} 按 Ctrl+C 退出 (将自动停止所有托管服务)${NC}"
echo ""
echo -e "${YELLOW}⏳ 正在后台启动所有服务...${NC}"
# 启动 DevTools
exec node src/index.js
# 后台启动 DevTools,日志写入 ./logs/sh.log
nohup node src/index.js > "$LOG_FILE" 2>&1 &
DEVTOOLS_PID=$!
# 健康检查(最多等待 30 秒)
MAX_WAIT=30
WAITED=0
while [ $WAITED -lt $MAX_WAIT ]; do
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" "http://localhost:$PORT/api/health" 2>/dev/null || true)
if [ "$HTTP_CODE" = "200" ]; then
echo ""
echo -e "${GREEN}✅ 所有服务启动完成!${NC}"
echo -e "${CYAN} PID: ${DEVTOOLS_PID}${NC}"
echo -e "${CYAN} 日志文件: ${LOG_FILE}${NC}"
echo ""
exit 0
fi
sleep 1
WAITED=$((WAITED + 1))
done
# 超时处理
if kill -0 "$DEVTOOLS_PID" 2>/dev/null; then
echo ""
echo -e "${YELLOW}⚠ 服务可能仍在启动中(已等待 ${MAX_WAIT} 秒)${NC}"
echo -e "${CYAN} PID: ${DEVTOOLS_PID}${NC}"
echo -e "${CYAN} 日志文件: ${LOG_FILE}${NC}"
echo -e "${YELLOW} 请稍后检查 http://localhost:$PORT/api/health${NC}"
else
echo ""
echo -e "${RED}❌ 服务启动失败,请检查日志: ${LOG_FILE}${NC}"
exit 1
fi