# Changelog

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

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

---

## [Unreleased]

---

## [0.8.0] - 2026-03-14

### Added

#### 🎨 Web UI 实现

- **暗黑主题** - 支持明暗主题切换，自动保存偏好
- **基础模板** - base.html、导航栏、侧边栏、Toast 组件
- **首页仪表盘** - 系统状态统计、最近会话列表
- **频道配置管理** - CRUD、状态显示、测试按钮
- **连接测试** - SSE 流式日志、实时测试结果
- **会话监控** - 会话列表、详情、消息查看

#### 🔧 后端 API

- **频道配置 API** - CRUD + 连接测试
- **会话监控 API** - 列表、详情、消息、关闭

#### 📦 数据模型

- **ChannelConfig** - 频道配置模型
- **ChannelTester** - 连接测试器

### Changed

- **app/__init__.py** - 注册 Web UI 蓝图

---

## [0.7.0] - 2026-03-14

### Added

- **技术方案文档** - `docs/TECHNICAL_SPEC.md` 详细记录已完成和待完成功能
- **开发进度** - README.md 添加详细进度表

### Changed

- **README.md** - 更新开发计划，明确各阶段完成状态

---

## [0.6.2] - 2026-03-14

### Changed

- **项目更名** - PIT Router / PIT 网关路由应用 → **智队中枢**

---

## [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_bp` → `gateways_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 实现

- **认证流程** - `connect` → `auth` → `authenticated`
- **心跳机制** - `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 模型** - 支持消息持久化，包含 `status`、`ack_status`、`retry_count` 等字段
- **新增 Connection 模型** - 追踪 WebSocket 连接状态，包含 `socket_id`、`ip_address`、`user_agent` 等
- **Session 模型扩展** - 添加 `user_socket_id`、`participating_agent_ids`、`unread_count` 字段
- **Agent 模型扩展** - 添加 `socket_id`、`connection_limit`、`current_sessions` 字段
- **Gateway 模型扩展** - 添加 `token_hash`、`allowed_ips`、`heartbeat_interval` 字段

#### 🟡 WebSocket 协议完善

- **新增认证流程** - `connect` → `auth` → `authenticated` / `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/messages`、`GET /api/messages/:id`、`PUT /api/messages/:id/ack`
- **新增统计 API** - `GET /api/stats`、`GET /api/stats/sessions`、`GET /api/stats/messages`
- **新增心跳接口** - `POST /api/agents/:id/heartbeat`、`POST /api/gateways/:id/heartbeat`
- **新增会话操作** - `GET /api/sessions/:id/participants`、`POST /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.py`、`connection.py`、`stats.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 | 待发布 | 完整功能实现 |

---

*维护者: 小白 🐶*
