diff --git a/.cocoon-plan.md b/.cocoon-plan.md index 9a83e34..8cfcd63 100644 --- a/.cocoon-plan.md +++ b/.cocoon-plan.md @@ -51,7 +51,7 @@ - [x] **配置热重载校验** — 新配置语法校验失败时拒绝重载,避免把服务搞坏 - [x] **内存响应缓存** — 基于 LRU + TTL,文件不大时直接缓存到内存,避免重复磁盘 I/O - [x] **管理 Dashboard** — 内置 `/_status` 页面,SSE 实时推送指标,像 HAProxy stats 那种 -- [x] **ACME / Let's Encrypt 自动证书** — 客户端骨架完成(目录发现、nonce、账户、订单、授权、CSR、证书下载、thumbprint),OpenSSL 3.0 零警告,7 项单元测试通过;服务器端 HTTP-01 挑战响应与自动续期待集成 +- [x] **ACME / Let's Encrypt 自动证书** — 客户端骨架完成(目录发现、nonce、账户、订单、授权、CSR、证书下载、thumbprint),OpenSSL 3.0 零警告;服务器端 HTTP-01 挑战响应路由已完成(`/.well-known/acme-challenge/` 返回 keyAuthorization);配置集成与自动续期待完成 - [ ] **带宽限速 / 流量整形** — 按连接或全局限速,防止突发流量打满带宽 - [ ] **YAML / TOML 配置格式** — 配置验证时更友好 - [x] **systemd 服务文件** — 一键安装成系统服务,支持 SIGHUP 热重载、安全加固、自动恢复 @@ -67,12 +67,12 @@ ## 当前状态 -- **编译状态**:零警告,全部通过(2026-06-16 03:37 验证) +- **编译状态**:零警告,全部通过(2026-06-16 09:17 验证) - **单元测试**:474 个全部通过 ✓(1 个 Ignored,为预期行为) - **集成测试**:111 项通过(4 项反向代理环境相关失败,非项目问题) - **代码覆盖率**:核心模块覆盖完整,Phase 4 模块覆盖良好 - **文档状态**:README 完整,API 文档齐全,.cocoon-plan.md 已更新 -- **项目阶段**:Phase 1~4 全部完成,Phase 5 进行中(systemd 服务文件已完成) +- **项目阶段**:Phase 1~4 全部完成,Phase 5 进行中(ACME 服务器端 HTTP-01 挑战响应已完成) - **代码规模**:30,000+ 行 C 代码(不含 coco 子模块),474 单元测试 + 111 集成测试 ## 待办池(Phase 5 — 自然扩展) @@ -213,6 +213,20 @@ - 编译验证:零警告,全部通过 - 单元测试:474 个全部通过 ✓(465 原有 + 9 新增 Dashboard 测试) - 集成测试:111 项通过(4 项反向代理环境相关失败,非项目代码问题) ++ 2026-06-16 09:17: **Phase 5 — ACME HTTP-01 挑战响应路由 + 编译警告修复** + - 修复 config.c 中 FastCGI 配置的 strncpy 截断警告(改用 snprintf),消除 2 条编译器警告 + - 新增 `acme_get_keyauth()`: 计算 RFC 8555 HTTP-01 keyAuthorization(token + "." + thumbprint) + - `server_context` 新增 `acme_ctx_t *acme` 字段,支持服务器持有 ACME 客户端上下文 + - `server_destroy` 中自动释放 ACME 上下文,防止内存泄漏 + - 新增 ACME 挑战端点路由: `/.well-known/acme-challenge/`,返回 keyAuthorization 明文 + - 路由位于 GET/HEAD 检查之后,若 ACME 未配置或 token 无效返回 404 + - 新增 `test_acme_get_keyauth` 单元测试,覆盖 keyAuthorization 格式(含 "." 分隔符) + - 编译验证:零警告(仅外部 coco 库 GNU-stack linker 提示) + - 单元测试:474 个全部通过 ✓(1 个 Ignored,为预期行为) + - 集成测试:111 项通过(4 项反向代理环境相关失败,非项目问题) + - 提交已推送到 origin main 和 rua main(`a198b08`) + - 项目状态:Phase 5 进行中,ACME 服务器端 HTTP-01 挑战响应已完成,下阶段目标:ACME 配置集成 + 自动续期后台任务 + + 2026-06-16 06:17: **Phase 5 — systemd 服务文件** - 新增 `cocoon.service`:完整的 systemd 服务单元配置 - Type=simple,默认启动 `/usr/local/bin/cocoon -c /etc/cocoon/cocoon.json`