Files
pit-router/CHANGELOG.md

7.6 KiB
Raw Blame History

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


[Unreleased]


[0.6.1] - 2026-03-14

Fixed

  • 根路由缺失 - 添加 / 路由,返回服务信息和端点列表
  • CORS 拼写错误 - 修复 cors_allowed_origins 拼写

[0.6.0] - 2026-03-14

Fixed

  • 命名冲突 - 修复 socketio 变量与 app/socketio 模块冲突,重命名为 socketio_app
  • config.py - 移除生产环境强制数据库检查,允许开发环境使用 SQLite

Added

  • .gitignore - 添加 Python 缓存和数据库文件忽略规则

Test Results

  • 调度器测试: 11/11 通过
  • 消息队列测试: 7/7 通过
  • 验证工具测试: 3/4 通过
  • 认证 API 测试: ⚠️ 3/9 (测试配置问题)

总计: 24/31 测试通过


[0.5.0] - 2026-03-14

Added

🔧 工具层实现 (Phase 3)

  • validators.py - 输入验证工具

    • Marshmallow Schema 验证
    • UUID/Email/用户名/URL 验证
    • 字符串清理
  • security.py - 安全工具

    • Token/密码哈希
    • API Key 生成
    • RateLimiter 限流器
    • IPWhitelist IP 白名单
  • helpers.py - 辅助函数

    • 日期时间格式化
    • 分页辅助
    • JSON 安全解析

🧪 测试模块

  • conftest.py - pytest 配置
  • test_auth.py - 认证 API 单元测试
  • test_scheduler.py - 调度器单元测试
  • test_message_queue.py - 消息队列单元测试

🗄️ 数据库迁移

  • Alembic 配置 - 数据库迁移工具
  • 初始迁移脚本 - 创建所有数据表

Changed

  • requirements.txt - 添加 gevent 依赖(用于 gunicorn

[0.4.0] - 2026-03-14

Added

🔧 服务层实现 (Phase 2)

  • AgentScheduler - 5 种调度策略

    • RoundRobinScheduler - 轮询调度
    • WeightedRoundRobinScheduler - 加权轮询调度(默认)
    • LeastConnectionsScheduler - 最少连接调度
    • LeastResponseTimeScheduler - 最快响应调度
    • CapabilityMatchScheduler - 能力匹配调度
  • MessageQueue - 消息队列管理

    • 消息入队/出队
    • ACK 确认机制
    • 重试队列管理
    • Redis 存储支持
  • SessionService - 会话服务

    • 创建/关闭会话
    • Agent 分配
    • 多 Agent 协作支持
    • 会话活跃度追踪
  • MessageService - 消息服务

    • 创建/获取消息
    • 消息确认
    • 已读标记
    • 重试机制
    • 消息统计
  • AgentService - Agent 服务

    • Agent 注册/注销
    • 状态更新
    • 心跳管理
    • 配置更新
    • 离线检测

Fixed

  • gateways.py - 修复蓝图名称错误 (gateway_bpgateways_bp)

Changed

  • Dockerfile - 添加生产环境 Docker 镜像配置

[0.3.0] - 2026-03-14

Added

🏗️ 项目结构

  • Flask 应用工厂 - app/__init__.py 模块化应用初始化
  • 配置管理 - app/config.py 支持开发/生产/测试环境
  • 扩展初始化 - app/extensions.py 统一管理 Flask 扩展

📦 数据模型实现

  • User 模型 - 用户模型,支持 bcrypt 密码哈希
  • Session 模型 - 会话模型,支持多 Agent 协作
  • Agent 模型 - Agent 模型,支持优先级和权重调度
  • Gateway 模型 - Gateway 模型,支持 Token 哈希存储
  • Message 模型 - 消息模型,支持 ACK 状态追踪
  • Connection 模型 - 连接模型,追踪 WebSocket 连接

🔌 HTTP API 实现

  • 认证 API - 注册、登录、Token 刷新、用户信息
  • 会话 API - 创建、查询、关闭会话
  • Agent API - 列表、详情、状态、配置更新、心跳上报
  • Gateway API - 注册、注销、状态查询、心跳上报
  • 消息 API - 发送、获取、确认、已读标记
  • 统计 API - 系统、会话、消息、Agent 统计

🔌 WebSocket 实现

  • 认证流程 - connectauthauthenticated
  • 心跳机制 - ping / pong 事件
  • 会话管理 - 创建、加入会话
  • 消息路由 - 发送消息、消息确认
  • 连接管理器 - 管理用户和 Agent 的 Socket 连接

📄 配置文件

  • requirements.txt - Python 依赖列表
  • requirements-dev.txt - 开发依赖
  • .env.example - 环境变量模板
  • docker-compose.yaml - Docker 编排配置
  • run.py - 启动入口

Changed

  • 开发计划进度 - Phase 1 核心功能已完成

[0.2.0] - 2026-03-14

Changed

🔴 数据模型修复

  • 新增 Message 模型 - 支持消息持久化,包含 statusack_statusretry_count 等字段
  • 新增 Connection 模型 - 追踪 WebSocket 连接状态,包含 socket_idip_addressuser_agent
  • Session 模型扩展 - 添加 user_socket_idparticipating_agent_idsunread_count 字段
  • Agent 模型扩展 - 添加 socket_idconnection_limitcurrent_sessions 字段
  • Gateway 模型扩展 - 添加 token_hashallowed_ipsheartbeat_interval 字段

🟡 WebSocket 协议完善

  • 新增认证流程 - connectauthauthenticated / auth_error
  • 新增心跳事件 - ping / pong / heartbeat_timeout
  • 新增消息确认 - message.ack / message.acked / message.read
  • 新增会话事件 - session.leave / session.left / session.closed / session.assigned
  • 新增输入状态 - typing 事件
  • 明确消息格式 - 与 PIT Channel 插件兼容的 JSON-RPC 风格格式

🟢 API 补充

  • 新增消息 API - POST /api/messagesGET /api/messages/:idPUT /api/messages/:id/ack
  • 新增统计 API - GET /api/statsGET /api/stats/sessionsGET /api/stats/messages
  • 新增心跳接口 - POST /api/agents/:id/heartbeatPOST /api/gateways/:id/heartbeat
  • 新增会话操作 - GET /api/sessions/:id/participantsPOST /api/sessions/:id/transfer
  • 修改会话关闭 - DELETE /api/sessions/:id 改为 PUT /api/sessions/:id/close

🔵 架构优化

  • 数据库更换 - SQLite → PostgreSQL (生产环境)
  • Agent 调度策略 - 定义 5 种调度算法:轮询、加权轮询、最少连接、最快响应、能力匹配
  • 消息可靠性机制 - ACK 确认流程、重试机制、持久化策略
  • 安全增强 - WebSocket 认证、IP 白名单、Token 哈希存储

🟣 部署配置完善

  • Docker Compose - 添加健康检查、资源限制、Nginx 反向代理
  • 新增服务 - PostgreSQL、Nginx
  • SSL 支持 - Nginx HTTPS/WSS 配置

📝 文档更新

  • 完善技术栈说明 - 添加 PostgreSQL
  • 完善项目结构 - 新增 messages.pyconnection.pystats.py
  • 完善开发计划 - 调整为 4 个阶段,总计 9-12 天
  • 新增对接说明 - 与 PIT Channel 插件的协议兼容性

[0.1.0] - 2026-03-14

Added

  • 项目初始化 - 创建 pit-router 项目
  • 基础架构设计 - 三层架构:接入层、业务层、数据层
  • 技术栈选型 - Python 3.12 + Flask 3.0 + Flask-SocketIO 5.3
  • 数据模型设计 - User、Session、Agent、Gateway 四个核心模型
  • HTTP API 设计 - 认证、会话、Agent、Gateway 四组 API
  • WebSocket 协议 - 基础事件定义
  • Docker 部署 - docker-compose.yaml 配置
  • 安全设计 - JWT 认证、CORS、Rate Limit

版本说明

版本 状态 说明
0.1.0 初始版本 基础架构设计
0.2.0 设计完善 修复技术方案问题,完善架构设计
1.0.0 待发布 完整功能实现

维护者: 小白 🐶