docs: add plan/ directory with 2026-05-15 dev report
- ComfyUI Agent conversational interface (SSE streaming) - Metapi → BoosAPI full rebranding - Gitea CI/CD runner on Alpine (OpenRC) - Notification service architecture doc Signed-off-by: Boos4721 <boos4721@icloud.com>
This commit is contained in:
@@ -0,0 +1,160 @@
|
||||
# 2026-05-15 开发日报
|
||||
|
||||
## 概要
|
||||
|
||||
今日完成两项主要工作:**Metapi → BoosAPI 全局改名** 和 **ComfyUI Agent 对话助手开发**。
|
||||
|
||||
---
|
||||
|
||||
## 一、Metapi → BoosAPI 全局改名
|
||||
|
||||
### 变更范围
|
||||
|
||||
| 区域 | 内容 |
|
||||
|------|------|
|
||||
| UI 界面 | About 页面、侧边栏、登录页品牌名 |
|
||||
| i18n 翻译 | 所有语言文件中的 "Metapi" → "BoosAPI" |
|
||||
| 后端通知 | `notifyService.ts` 通知前缀 `[metapi]` → `[BoosAPI]` |
|
||||
| 桌面元数据 | Electron/Docker 描述信息 |
|
||||
|
||||
### 保留不变的
|
||||
|
||||
| 项 | 原因 |
|
||||
|---|------|
|
||||
| `x-metapi-*` HTTP 头 | 有线协议,向后兼容 |
|
||||
| `metapi:` 推理签名前缀 | 内部协议标识 |
|
||||
| `__metapiTruncated` 等运行时属性 | 内部运行时标记 |
|
||||
| `METAPI_*` 环境变量 | 外部契约,改了就断 |
|
||||
| localStorage key | 改了丢用户数据 |
|
||||
| DB schema 列名 | 影响持久化数据 |
|
||||
| `package.json` name | npm 包名 |
|
||||
|
||||
### 验证
|
||||
|
||||
```bash
|
||||
# 确认没有遗漏的用户可见"Metapi"
|
||||
grep -rn 'Metapi\|metapi' src/ --include='*.ts' --include='*.tsx' --include='*.html' \
|
||||
| grep -v '.test.' | grep -v node_modules | grep -iv 'boosapi'
|
||||
# 剩余应只有 x-metapi、metapi:、__metapi 等内部标识
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 二、ComfyUI Agent 对话助手
|
||||
|
||||
### 功能
|
||||
|
||||
在侧边栏新增「对话助手」入口(`/comfyui-agent`),提供与 AI 视频生成助手的对话式交互界面。
|
||||
|
||||
### 技术架构
|
||||
|
||||
```
|
||||
用户 → POST /api/comfyui-agent/chat → BoosAPI → LLM 本地 API (streaming)
|
||||
↓
|
||||
LLM 生成 SSE 事件流
|
||||
↓
|
||||
BoosAPI 转发 SSE → 浏览器
|
||||
```
|
||||
|
||||
### 后端文件
|
||||
|
||||
| 文件 | 作用 |
|
||||
|------|------|
|
||||
| `src/server/routes/api/comfyuiAgent.ts` | SSE 流式聊天接口,调用本地 LLM API |
|
||||
| `src/server/services/boosapi_comfy_nodes.py` | ComfyUI 自定义节点,默认连接本地 BoosAPI `http://127.0.0.1:4000/v1` |
|
||||
|
||||
### 前端文件
|
||||
|
||||
| 文件 | 作用 |
|
||||
|------|------|
|
||||
| `src/web/pages/ComfyUIAgent.tsx` | 对话界面组件,SSE 流式渲染 |
|
||||
| `src/web/App.tsx` | 注册路由 `/comfyui-agent` + 侧边栏项 |
|
||||
|
||||
### Agent 输出格式(SSE 事件流)
|
||||
|
||||
LLM 直接生成 SSE 格式输出,后端透明转发:
|
||||
|
||||
| type | 含义 | 前端渲染 |
|
||||
|------|------|---------|
|
||||
| `text` | 流式文本 | 追加到对话 |
|
||||
| `character_prompts` | 四角度角色提示词 | 角色卡片 |
|
||||
| `image` | 生成的角色图像 | 内联图片 |
|
||||
| `scene` | 场景提示词 | 场景块 |
|
||||
| `tts` | 语音音频 | 音频播放器 |
|
||||
| `comfyui_workflow` | 完整 ComfyUI 工作流 JSON | 下载按钮 |
|
||||
| `done` | 流结束 | 停止等待 |
|
||||
|
||||
### 验证结果
|
||||
|
||||
- `npm install` ✅
|
||||
- `npm run typecheck:web` ✅ 0 error
|
||||
|
||||
---
|
||||
|
||||
## 三、Gitea CI/CD Runner 部署
|
||||
|
||||
### 环境
|
||||
|
||||
- 系统:Alpine Linux (OpenRC)
|
||||
- 部署方式:裸机直跑(无 Docker in Docker)
|
||||
- Runner 版本:v0.1.3
|
||||
|
||||
### 关键配置
|
||||
|
||||
- 注册模式:`:host` 标签(直接宿主机运行)
|
||||
- OpenRC 服务:`/etc/init.d/gitea-runner`
|
||||
- 代理:`HTTP_PROXY=http://127.0.0.1:7890`(在 init 脚本中声明)
|
||||
- `NO_PROXY` 含 `git.boos.lat`(不经过代理连接 Gitea)
|
||||
- 持久化:`ephemeral: false`(重启不丢注册)
|
||||
|
||||
### 已知限制
|
||||
|
||||
- 不支持 Docker in Docker(CI 用 `runs-on: host`)
|
||||
- Gitea 无原生 artifact 存储,构建产物需手动备份
|
||||
- `actions/checkout` 偶尔 timeout,可重试或使用本地 git 镜像
|
||||
|
||||
---
|
||||
|
||||
## 四、Notification Service 通知服务
|
||||
|
||||
### 支持通道
|
||||
|
||||
| 通道 | 配置前缀 | 协议 |
|
||||
|------|---------|------|
|
||||
| Telegram | `telegram*` | Bot API |
|
||||
| 企业微信 | `wecom*` | Webhook |
|
||||
| 飞书 | `feishu*` | Webhook |
|
||||
| 通用 Webhook | `webhook*` | JSON POST |
|
||||
| Bark | `bark*` | HTTP (iOS) |
|
||||
| Server酱 | `serverchan*` | HTTP |
|
||||
| SMTP | `smtp*` | Email |
|
||||
|
||||
### Telegram 消息格式
|
||||
|
||||
```
|
||||
[BoosAPI][INFO] 标题
|
||||
|
||||
消息内容
|
||||
|
||||
Level: info
|
||||
Local Time: 2026-05-15 15:30:00 (Asia/Shanghai)
|
||||
UTC Time: 2026-05-15T07:30:00.000Z
|
||||
```
|
||||
|
||||
- 纯文本,不启用 HTML/Markdown 解析
|
||||
- 最大 3900 字符,超长截断加 `...(truncated)`
|
||||
- 支持 Telegram Topics(通过 `message_thread_id`)
|
||||
|
||||
### 节流机制
|
||||
|
||||
- 基于通知签名的全局冷静期(`notifyCooldownSec`)
|
||||
- 同一签名在冷静期内重复触发合并为一次
|
||||
- 冷静期是全局的,不是按通道独立
|
||||
|
||||
---
|
||||
|
||||
## 待办 / 遗留问题
|
||||
|
||||
1. **服务未运行** — CI 崩溃后 `metapi-stack` 容器和 BoosAPI 服务未启动,需决定用 Docker 还是直接 npm run dev
|
||||
2. **Telegram 消息格式待优化** — 用户要求优化,具体方向待确认(HTML/Markdown/简化)
|
||||
3. **CI pipeline 不稳定** — Docker 镜像拉取超时,需进一步排查网络问题
|
||||
Reference in New Issue
Block a user