From c2a5deec9ab35ea5c9f00c326cd511c4a280a741 Mon Sep 17 00:00:00 2001 From: xfy911 Date: Tue, 16 Jun 2026 00:29:36 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=20.cocoon-plan.md?= =?UTF-8?q?=EF=BC=8C=E6=A0=87=E8=AE=B0=E7=AE=A1=E7=90=86=20Dashboard=20?= =?UTF-8?q?=E4=B8=BA=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 单元测试 474 个,集成测试 111 项通过 - Phase 5 已完成:FastCGI 协议核心、FastCGI 服务器集成、连接池完善、 配置热重载校验、内存响应缓存、管理 Dashboard - 下阶段目标:ACME / Let's Encrypt 自动证书 --- .cocoon-plan.md | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/.cocoon-plan.md b/.cocoon-plan.md index 1c27c7e..479b73e 100644 --- a/.cocoon-plan.md +++ b/.cocoon-plan.md @@ -50,7 +50,7 @@ - [x] **反向代理连接池** — HTTP/1.1 后端连接复用,减少握手开销 - [x] **配置热重载校验** — 新配置语法校验失败时拒绝重载,避免把服务搞坏 - [x] **内存响应缓存** — 基于 LRU + TTL,文件不大时直接缓存到内存,避免重复磁盘 I/O -- [ ] **管理 Dashboard** — 内置 `/_status` 页面,SSE 实时推送指标,像 HAProxy stats 那种 +- [x] **管理 Dashboard** — 内置 `/_status` 页面,SSE 实时推送指标,像 HAProxy stats 那种 - [ ] **ACME / Let's Encrypt 自动证书** — 无需手动配置,自动签发续期 - [ ] **带宽限速 / 流量整形** — 按连接或全局限速,防止突发流量打满带宽 - [ ] **YAML / TOML 配置格式** — 配置验证时更友好 @@ -68,12 +68,12 @@ ## 当前状态 - **编译状态**:零警告,全部通过(2026-06-15 21:17 验证) -- **单元测试**:465 个全部通过 ✓(1 个 Ignored,为预期行为) -- **集成测试**:115 项(4 项反向代理环境相关失败,非项目问题) +- **单元测试**:474 个全部通过 ✓(1 个 Ignored,为预期行为) +- **集成测试**:111 项通过(4 项反向代理环境相关失败,非项目问题) - **代码覆盖率**:核心模块覆盖完整,Phase 4 模块覆盖良好 - **文档状态**:README 完整,API 文档齐全,.cocoon-plan.md 已更新 -- **项目阶段**:Phase 1~4 全部完成,Phase 5 进行中(内存缓存已完成) -- **代码规模**:28,000+ 行 C 代码(不含 coco 子模块),465 单元测试 + 115 集成测试 +- **项目阶段**:Phase 1~4 全部完成,Phase 5 进行中(管理 Dashboard 已完成) +- **代码规模**:29,000+ 行 C 代码(不含 coco 子模块),474 单元测试 + 111 集成测试 ## 待办池(Phase 5 — 自然扩展) @@ -176,3 +176,19 @@ - 集成测试:115 项中 4 项反向代理失败(Python 后端 404 环境问题,非项目代码问题) - 更新 `.cocoon-plan.md`:标记内存响应缓存为已完成,更新当前状态 - 项目状态:Phase 5 进行中,内存响应缓存已完成,下阶段目标:管理 Dashboard + ++ 2026-06-16 00:17: **Phase 5 — 管理 Dashboard 实现完成** + - 新增 `dashboard.h` / `dashboard.c`:自包含 HTML 管理面板 + SSE 实时指标推送 + - `/_status`:返回内联 HTML/CSS/JS 的完整管理页面,无需外部静态文件 + - `/_status/events`:SSE 端点,每 2 秒推送 JSON 指标(uptime/connections/requests/2xx/3xx/4xx/5xx),每 6 秒心跳注释 + - 复用现有 `sse.c`/`sse.h` 的 SSE 发送基础设施 + - 路由集成:在 `server.c` 的 `handle_request` 中,将 Dashboard 端点置于通用 `/_sse` 检查之前,确保路径优先匹配 + - 统计变量:将 `server.c` 中此前 `static` 的全局指标变量改为全局可见,供 `dashboard.c` 通过 `dashboard.h` 访问 + - 边界处理:对非 GET 请求返回 405 Method Not Allowed;SSE 客户端断开时正常关闭连接 + - 新增 `tests/unit/test_dashboard.c`:9 项单元测试 + - 覆盖 `/_status` GET 请求、POST 405 错误、HTML 内容完整性、SSE 端点 GET/POST 边界、SSE 事件格式(id/event/data)、JSON 指标字段、心跳注释、事件 id 递增、多次事件循环 + - 编译验证:零警告,全部通过 + - 单元测试:474 个全部通过 ✓(465 原有 + 9 新增 Dashboard 测试) + - 集成测试:111 项通过(4 项反向代理环境相关失败,非项目代码问题) + - 提交已推送到 origin main 和 rua main(`d01a5d7`) + - 项目状态:Phase 5 进行中,管理 Dashboard 已完成,下阶段目标:ACME / Let's Encrypt 自动证书